Используйте пользовательский видеоэффект в UWP

Прежде всего — мой родной язык не английский, извините за возможные ошибки.

Мне нужно использовать свой собственный видеоэффект для 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-universal-samples/tree/master/Samples/CameraVideoStabilization/cpp (извините за неправильную ссылку, недостаточно репутации), и я не понимаю, почему, но я не могу добавить ссылку на этот проект в мой компонент, как правило, у меня есть этот, поэтому я изменяю файл проекта в текстовом редакторе с этим

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

Я думаю, что это может быть связано.

Пожалуйста, помогите мне решить эту проблему
использовать язык C ++, Visual Studio 2015, Win 10

4

Решение

не уверен, если это все еще интересно для вас .. но, возможно, кому-то еще.
Нашел это здесь:
https://english.r2d2rigo.es/2016/03/10/creating-custom-video-effects-in-uwp-apps/

TLDR:

  • использовать библиотеку компонентов времени выполнения (не любой другой тип проекта)
  • сделай свой эффект запечатанным
  • вам больше не нужно менять манифест

веселит,

0

Другие решения

Других решений пока нет …