Grabber在UWP中分裂

时间:2016-04-18 15:26:31

标签: c++ windows microsoft-metro win-universal-app samplegrabber

我需要你的建议。我想开发使用Metro界面进行音频/视频分割的应用程序。

通常我使用DirectShow使用以下架构:创建一个抓取器,将其添加到DS图形,通过它捕获音频/视频流并将它们传递给我的AVstream驱动程序进行拆分。但是在新程序中,我想使用Media Foundation并将其插入UWP。

我如何看待我的新应用。它必须具有Metro接口以进行通用控制:选择源,添加参数,更改模式等。我想使用MediaCapture类捕获流并渲染它们。在这里我没有看到任何问题,MSDN有很多样本。但我不知道如何在源和渲染之间插入一个抓取器。

抓取器将执行哪些操作:

  1. 从MediaCapture接收输入流。
  2. 流转换:YUV - > RGB,添加效果等。
  3. 发送用于渲染的输出流(MediaCapture)和我的AVstream驱动程序,以便与任何应用程序(Skype,Adobe Flash Player,Edge,....)进行拆分。
  4. 如何制作抓取器。在MSDN中,我找到了三种方法:

    1. Sample Grabber Sink(https://msdn.microsoft.com/en-us/library/windows/desktop/hh184779(v=vs.85).aspx)。在MF dll中接收/控制/发送流没问题。但我不知道如何将该dll与MediaCapture联系起来?
    2. 来源阅读器(https://msdn.microsoft.com/en-us/library/windows/desktop/dd940436(v=vs.85).aspx)。同样的问题,加上源阅读器无法播放。
    3. 自定义MFT?任何情况下MediaCapture都允许通过AddEffectAsync()连接到MFT。
    4. 我的环境:MS Windows 10,MS Visual Studio Community 2015.

      感谢您的任何想法。

1 个答案:

答案 0 :(得分:0)

这个问题和UWP根本不适用于我。我找到了以下内容:

“某些应用可以在后台密集使用,例如视频转换,在线财务数据处理等等。 现在UWP应用程序将在屏幕外停止。“

https://wpdev.uservoice.com/forums/110705-universal-windows-platform/suggestions/9950598-exclude-suspending-in-desktop

因此,如果用户最小化程序窗口,则程序停止视频流。