如何为UAP的mediaelement的当前帧创建快照(Windows 10)

时间:2015-10-31 17:01:50

标签: c# windows-runtime windows-10 win-universal-app uwp

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

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

2 个答案:

答案 0 :(得分:0)

如果您有一个连接到Media Extensions视频管道的Component,则可以参与与MediaElement关联的任何数据操作方式。

示例在以下链接中给出:

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

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

答案 1 :(得分:0)

您好我回答了一个类似的问题here,因为我遇到了类似的问题,我遇到了编写UWP应用程序的问题。在我的情况下,我需要一个UI的快照,其中可能有多个MediaElement,其中包含一堆其他元素(图像,文本,......)。 我提出的解决方案不是那么线性但仍在工作。当我需要快照时:

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

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