Поделиться через


Использование расширений мультимедиа (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.

Учтите, что пользовательские расширения доступны только для приложения, в котором они созданы и зарегистрированы. Для других приложений они недоступны.

Hh700365.wedge(ru-ru,WIN.10).gifОбщие инструкции по созданию пользовательского эффекта.

  1. Создайте собственное расширение Media Foundation и реализуйте в нем интерфейс IMediaExtension.
  2. Зарегистрируйте и активируйте расширение.
  3. Добавьте расширение в конвейер мультимедиа в своем приложении.

Подробнее о создании расширения мультимедиа Media Foundation в приложении среды выполнения Windows см. в разделе о создании приложения Магазина Windows с использованием WRL и Media Foundation, а также в примере расширения мультимедиа.

Связанные разделы

Пример расширения мультимедиа

Пример перекодировки файла мультимедиа

Пример связи в реальном времени

Создание приложения Магазина Windows с использованием WRL и Media Foundation

Преобразования Media Foundation

Активация эффектов в теге video

Добавление стабилизации видео