我正在尝试对我正在移植到Metro的WPF应用程序的mediacapture流应用效果。在WPF应用程序中,我使用像素着色器来修改其源被设置为网络摄像头流的位图,但由于Metro的效果已被删除,我正在寻找替代解决方案。
我发现最好的,也是最符合Metro标准的方法是构建我自己的MFT并通过MediaCapture
方法将它们添加到我的addEffectAsync()
元素中。我已经下载了MFTGrayscale和MediaExtension示例,这些示例展示了如何将这些效果应用于MediaCapture
元素,但我在理解实际的C ++ MFT代码时遇到了问题。有人可以指点我或者给我一个体面的演练/解释我将如何从头开始构建我自己的MFT效果?我不太了解C / C ++,只是足以理解一些示例代码。我真的遇到了MFT的概念和架构方面的问题,因此对源代码非常困惑。
非常感谢您的帮助。
编辑:
我考虑的另一个选择是使用SharpDX。但是我在获取要在xaml图像元素上显示的MediaCapture
对象的流时遇到问题。任何帮助,将不胜感激。感谢。
答案 0 :(得分:1)
你应该看看下面的git repo:https://github.com/mmaitre314/VideoEffect
它展示了如何将Lumia Imaging SDK,Win2D和DirectX HLSL像素着色器中的图像效果应用于适用于Windows Phone 8.1和Windows 8.1的Universal Store Apps中的视频。
可以通过MediaTranscoder,MediaComposition,MediaCapture或MediaElement应用效果。二进制文件可以通过NuGet获得。
答案 1 :(得分:0)
我最终在MSDN论坛上得到答案。这不是一个理想的答案,但这是我一直担心的事情。
答案 2 :(得分:0)
这是完全可行的......我刚刚从样本中重写了一个MF变换,以使用诺基亚成像SDK并实时过滤网络摄像头视频。您可以在下面的链接中看到我是如何做到的(加上下载一些源代码)。这不完全是您需要做的,但在维基页面中,我解释了您需要从MS提供的样板样本中更改的内容。