在UWP中使用自定义视频效果

Use custom video effect in UWP

本文关键字:视频 自定义 UWP      更新时间:2023-10-16

首先,我的母语不是英语,很抱歉可能出现错误。

我需要为MediaCapture使用我自己的视频效果,这是为WS 8.1和WP 8.1制作的,而不是我现在开始将其移植到Win 10。我的视频效果作为运行时组件(dll),在这个模块中我有ActivatableClass,它正在工作!对于win 8.1,我修改了清单并添加了我的组件的引用,AddEffectAsync方法,我使用了这个参数

m_mediaCaptureMgr->AddEffectAsync(Windows::Media::Capture::MediaStreamType::VideoPreview,"OcvComponent.SmileDetector",nullptr)

在Win 10中,我在类似代码中崩溃

_mediaCapture->AddVideoEffectAsync(ref new Effects::VideoEffectDefinition("OcvComponent.SmileDetector"), Capture::MediaStreamType::VideoPreview)

我已经在尝试这种老的、好的工作方法了,结果也是崩溃

_mediaCapture->AddEffectAsync(Capture::MediaStreamType::VideoPreview,"OcvComponent.SmileDetector", nullptr)

这两种情况下的清单我都用这个修改

<Extensions>
<Extension Category="windows.activatableClass.inProcessServer">
  <InProcessServer>
    <Path>OcvComponent.dll</Path>
    <ActivatableClass ActivatableClassId="OcvComponent.SmileDetector" ThreadingModel="both" />
  </InProcessServer>
</Extension>

应用程序崩溃,出现此消息

这个崩溃出现在ActivatableClass构造函数使用之前,所以断点对我没有帮助。

此外,我应该告诉大家,我称之为视频效果的应用程序是从github.com/Microsoft/Windows-universals-samples/tree/master/samples/cameraVideoStabilitation/cpp上获取的样本(很抱歉链接不正确,声誉不够),我不明白为什么,但我通常无法将该项目的参考添加到我的组件中,所以我用这个修改了文本编校器中的项目文件

<ItemGroup>
<ProjectReference Include="..OcvComponentOcvComponent.vcxproj">
  <Project>{E84D5530-529F-49B4-811C-3D7FE0902B7E}</Project>
</ProjectReference>

我认为这些事情是可以联系在一起的。

请帮我解决这个问题使用C++语言,Visual Studio 2015,Win 10

不确定您是否仍然对此感兴趣。。但也许是对其他人。在此处找到此:https://english.r2d2rigo.es/2016/03/10/creating-custom-video-effects-in-uwp-apps/

TLDR:

  • 使用运行时组件库(而不是任何其他项目类型)
  • 使你的效果密封
  • 你不需要再更改清单了

欢呼,