Чтение веб-камеры с MediaCapture на рабочем столе Windows
Мне нужно обрабатывать кадры с веб-камеры на телефонах, планшетах и компьютерах с Windows 8.1. У меня уже есть реализация для телефонов и планшетов (= магазин приложений), в которой для доступа к фреймам используется настраиваемое преобразование медиафайлов. Сейчас я работаю над настольной версией.
MSDN сообщает, что класс MediaCapture поддерживается как в приложениях для магазинов, так и в приложениях для настольных компьютеров. Сторонний MediaCaptureWPF работает нормально вместо отсутствующего CaptureElement.
Однако в документации MediaCapture.AddEffectAsync говорится: " effectActivationID: идентификатор класса активируемого класса среды выполнения, который реализует эффект. "И я не могу использовать пользовательский компонент WinRT в настольном приложении.
Существует также еще один вариант добавления эффекта, MediaCapture.AddVideoEffectAsync, который принимает аргумент IVideoEffectDefinition вместо идентификатора класса. Однако этот интерфейс поддерживается только на телефонах.
Итак, мой вопрос. Могу ли я использовать MediaCapture class + custom MF transform на платформе Windows 8 для настольных ПК? Как?
Или мне нужно разработать MF-ридер только для поддержки настольной платформы? Есть лучший способ?
Заранее спасибо.
1 ответ
Похоже, MediaCapture не совместима с пользовательскими MFT при работе на рабочем столе.
Вместо этого я реализовал медиа-сток, основываясь на коде из этой статьи.
К сожалению, соответствующие части среды Media Foundation помечены как "[только для настольных приложений]". Похоже, мне придется поддерживать 2 разных версии фрейм-граббера, одну для настольного компьютера, другую для магазина + телефон.