Использование расширений мультимедиа (HTML)
[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. В случае разработки приложений для Windows 10 см. раздел последняя документация]
В этом разделе описываются расширения мультимедиа и их применение в приложении среды выполнения Windows.
Введение
Расширения мультимедиа добавляют дополнительные возможности в конвейер мультимедиа вашего приложения среды выполнения Windows. Такими расширениями могут быть звуковые и видеоэффекты, эффекты при выполнении захвата мультимедиа, перекодировка, управление цифровыми правами (DRM), поддержка новых кодировщиков и декодеров, пользовательский приемник для захвата мультимедиа и т. д. Некоторые расширения входят в состав системы — в частности, это эффект VideoStabilization и DRM MediaProtectionManager. Возможности, которые не содержатся в системе, можно добавить с помощью пользовательских расширений мультимедиа.
Образец применения пользовательских расширений мультимедиа см. в разделе Образец расширения мультимедиа. В этом образце показано, как создать и включить пользовательский эффект преобразования в оттенки серого и пользовательский декодер, а также как использовать встроенный эффект VideoStabilization.
Еще один образец использования расширений мультимедиа — образец связи в реальном времени.
Конвейер мультимедиа и добавление/удаление эффектов и расширений
В конвейер Media Foundation входят источники мультимедиа, фильтры Media Foundation Transform (например, видеоэффекты, кодировщики и декодеры) и приемники мультимедиа. Существуют различные способы добавления эффектов и расширений в приложение Магазина Windows. MediaExtensionManager позволяет производить замену источников мультимедиа, а также кодировщиков и декодеров. Методы объектов воспроизведения, захвата и перекодировки позволяют добавлять и убирать эффекты. Класс MediaCapture позволяет добавить пользовательский приемник.
Способ добавления и удаления эффектов в объектах воспроизведения звука и видео зависит от используемого вами языка программирования.
В приложениях среды выполнения Windows на JavaScript применяйте методы msInsertVideoEffect, msInsertAudioEffect и msClearEffects. Эти методы доступны для вызова из тегов HTML5 audio и video.
В приложениях среды выполнения Windows на C# или Visual Basic применяйте методы MediaElement.AddAudioEffect, MediaElement.AddVideoEffect и RemoveAllEffects.
Для добавления и удаления эффектов при перекодировке используйте методы MediaTranscoder.AddVideoEffect, MediaTranscoder.AddAudioEffect и MediaTranscoder.ClearEffects.
Для добавления и удаления эффектов при захвате мультимедиа используйте методы MediaCapture.AddEffectAsync и MediaCapture.ClearEffectsAsync.
Для регистрации обработчиков схем, обработчиков байтовых потоков, кодировщиков и декодеров звука, кодировщиков и декодеров видео используйте класс MediaExtensionManager.
Для добавления пользовательского приемника для захвата мультимедиа используйте методы MediaCapture.StartRecordToCustomSinkAsync и MediaCapture.StartPreviewToCustomSinkAsync.
Поддержка DRM осуществляется в классе MediaProtectionManager.
Встроенное расширение
В среде выполнения Windows имеется встроенный эффект стабилизации дрожащего видео (например, видео, которое захватывается с ручной камеры).
В разделе Как добавить стабилизацию видео описывается, как применять эффект VideoStabilization в приложении среды выполнения Windows на JavaScript. В примере расширения мультимедиа также показывается, как применять эффект VideoStabilization.
Пользовательские расширения
Добавлять в конвейер мультимедиа новые функциональные возможности можно с помощью пользовательских расширений мультимедиа. Например, вы можете создать пользовательский видеоэффект, который будет преобразовывать видео в оттенки серого, как в образце расширения мультимедиа. Также можно создать пользовательское расширение для поддержки звуковых и видеоформатов, которые изначально не поддерживаются системой.
Создание пользовательского расширения состоит из двух этапов. Сначала нужно написать компонент Media Foundation, а затем использовать в качестве его оболочки объект расширения мультимедиа среды выполнения Windows. Образец создания нескольких различных пользовательских расширений мультимедиа см. в разделе Образец расширения мультимедиа.
Расширение мультимедиа представляет собой гибридный объект, который реализует интерфейсы и модели COM, и среды выполнения Windows. Интерфейсы COM взаимодействуют с конвейером Microsoft Media Foundation. Интерфейсы среды выполнения Windows активируют компонент и взаимодействуют с приложением Магазина Windows.
В большинстве случаев для взаимодействия со средой выполнения Windows рекомендуется использовать Visual C++ с расширениями компонентов (C++/CX). Но для гибридных компонентов, реализующих интерфейсы и COM, и среды выполнения Windows (таких как расширения мультимедиа) это невозможно. В C++/CX поддерживается создание только объектов среды выполнения Windows. Поэтому в случае гибридных объектов взаимодействие со средой выполнения Windows рекомендуется воплощать с помощью библиотеки шаблонов C++ для среды выполнения Windows. Имейте в виду, что библиотека шаблонов C++ для среды выполнения Windows имеет лишь ограниченную поддержку интерфейсов COM.
Учтите, что пользовательские расширения доступны только для приложения, в котором они созданы и зарегистрированы. Для других приложений они недоступны.
Общие инструкции по созданию пользовательского эффекта.
- Создайте собственное расширение Media Foundation и реализуйте в нем интерфейс IMediaExtension.
- Зарегистрируйте и активируйте расширение.
- Добавьте расширение в конвейер мультимедиа в своем приложении.
Подробнее о создании расширения мультимедиа Media Foundation в приложении среды выполнения Windows см. в разделе о создании приложения Магазина Windows с использованием WRL и Media Foundation, а также в примере расширения мультимедиа.
Связанные разделы
Пример перекодировки файла мультимедиа
Пример связи в реальном времени
Создание приложения Магазина Windows с использованием WRL и Media Foundation
Преобразования Media Foundation