如何为UAP(windows 10)快照媒体元素的当前帧

本文关键字:元素 媒体 快照 UAP windows | 更新日期: 2023-09-27 18:19:58

基本思想是这样的。我正在暂停的视频顶部写一段文字,我想拍下它的快照但是RenderTargetBitmap api不适用于视频内容,只使用黑色背景渲染文本。Screencapture api只适用于移动设备系列,只渲染视频而不渲染文本。

使用纯c#还有其他方法吗?这很简单。在暂停的媒体元素上绘制一个文本,然后截图并保存到文件中,为什么这么难做到这一点?

如何为UAP(windows 10)快照媒体元素的当前帧

只要您有一个连接到媒体扩展视频管道的组件,就可以参与与MediaElement相关的任何方式的数据操作。

以下链接中给出了示例:

https://github.com/mmaitre314/MediaReaderhttps://code.msdn.microsoft.com/windowsapps/media-extensions-sample-7b466096

第一个链接提供了一个功能齐全的解决方案。

嗨,我在这里回答了一个类似的问题,因为我在编写UWP应用程序时遇到了类似的问题。在我的案例中,我需要一个UI的快照,其中可能有多个MediaElement,通常加载了一堆其他元素(图像、文本…)。我提出的解决方案不是线性的,但仍然有效。当我需要快照时:

  • 我提取了视频帧并保存在磁盘上,以备我需要(你可以在我写的另一个答案中找到)
  • 我创建了一个新的动态图像,将保存的框架e放在UI中的MediaElement顶部
  • 在这里,您可以用文本创建另一个"层"

此时,您可以使用RenderTargetBitmap拍摄快照并在UI上处理图像。别忘了像我第一次那样从磁盘上删除文件。。。。