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

时间:2016-01-12 18:21:08

标签: c++ windows-runtime uwp cordova-win10

首先 - 我的母语不是英语,对于可能出现的错误感到抱歉。

我需要将自己的视频效果用于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>

应用已与this消息

崩溃

这个崩溃似乎是因为使用了ActivatableClass构造函数,所以断点不会帮助我。

另外我应该告诉我的应用程序我从github.com/Microsoft/Windows-universal-samples/tree/master/Samples/CameraVideoStabilization/cpp中取样的视频效果(抱歉链接不正确,信誉不足) ,我不明白为什么但是我不能将这个项目的参考添加到我的组件通常我已经this,所以我用文本redactor修改项目文件

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

我认为这件事可以联系起来。

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

1 个答案:

答案 0 :(得分:0)

不确定这对你来说是否仍然有趣......但也许对其他人有用。 在这里找到: https://english.r2d2rigo.es/2016/03/10/creating-custom-video-effects-in-uwp-apps/

TLDR:

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

欢呼声,