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

3
基本思想是这样的。我正在一个暂停的视频顶部编写文本,并希望对其进行快照。但是RenderTargetBitmap API不适用于视频内容,只会用黑色背景渲染文本。而Screencapture API仅适用于移动设备系列,只会呈现视频而不是文本。
是否有其他方式可以使用纯C#实现此目的?非常简单。在暂停的媒体元素上方绘制文本,然后将其截屏并保存到文件中,为什么这么难呢?

在许多最近的微软客户端平台技术中,这并不是一项容易的任务(这是由于视频渲染方式所致)。但是,这里有一个样例可以帮助您入门,它是为Win 8.1设计的:https://code.msdn.microsoft.com/windowsapps/Media-extensions-sample-7b466096 - WiredPrairie
据我所知,这是不可能的,因为有两个原因:1)MediaElement的实际渲染视频不是可视树的一部分,2)DRM。 - Tamás Deme
2个回答

0

0

嗨,我在写一个UWP应用程序时遇到了类似的问题,我在这里回答了一个类似的问题。在我的情况下,我需要对UI进行快照,其中可能会动态加载多个MediaElement和其他元素(图片、文本等)。

  • 我提取视频帧并将其保存在磁盘上,以备后用(你可以在我写的另一个答案中找到如何做到这一点);
  • 我创建一个新的动态图像,并将其放在UI中的MediaElement上方;
  • 在这里,你可以创建另一个带有文本的“层”

此时,你可以使用RenderTargetBitmap来获取快照,并在UI上删除图像。不要忘记像我第一次那样从磁盘中删除文件....


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接