Обзор архитектуры Media Foundation
В этом разделе описывается общий дизайн Microsoft Media Foundation. Сведения об использовании Media Foundation для конкретных задач программирования см. в руководстве по программированию Media Foundation .
На следующей схеме показано высокоуровневое представление архитектуры Media Foundation.
Media Foundation предоставляет две разные модели программирования. Первая модель, показанная слева от схемы, использует сквозной конвейер для данных мультимедиа. Приложение инициализирует конвейер ( например, предоставляя URL-адрес файла для воспроизведения), а затем вызывает методы для управления потоковой передачей. Во второй модели, показанной справа от схемы, приложение либо извлекает данные из источника, либо отправляет его в место назначения (или оба). Эта модель особенно полезна, если необходимо обработать данные, так как приложение имеет прямой доступ к потоку данных.
Примитивы и платформа
Начиная с нижней части схемы, примитивы являются вспомогательными объектами, используемыми в API Media Foundation:
- атрибуты являются универсальным способом хранения информации внутри объекта в виде списка пар "ключ-значение".
- Типы мультимедиа описывают формат потока данных мультимедиа.
- буферы мультимедиа хранят фрагменты данных мультимедиа, такие как видеокадры и аудиосэмплы, и используются для передачи данных между объектами.
- Образцы мультимедиа являются контейнерами для буферов мультимедиа. Они также содержат метаданные о буферах, таких как метки времени.
API-интерфейсы платформы Media Foundation предоставляют некоторые основные функциональные возможности, используемые конвейером Media Foundation, например асинхронные обратные вызовы и рабочие очереди. Некоторым приложениям может потребоваться вызывать эти API напрямую; Кроме того, вам потребуется их, если вы реализуете пользовательский источник, преобразование или приемник для Media Foundation.
Конвейер мультимедиа
Конвейер мультимедиа содержит три типа объектов, которые создают или обрабатывают данные мультимедиа:
- источники мультимедиа вводят данные в конвейер. Источник мультимедиа может получить данные из локального файла, например видеофайла; из сетевого потока; или с устройства захвата оборудования.
- Media Foundation Transforms (MFTs) обрабатывают данные из потока. Кодировщики и декодеры реализуются как MFT.
- приемники мультимедиа используют данные; например, демонстрируют видео на экране, воспроизводят звук или записывают данные в медиафайл.
Третьи стороны могут реализовать собственные пользовательские источники, приемники и преобразователи MFT, например, для поддержки новых форматов файлов мультимедиа.
медиа-сеанс осуществляет управление потоком данных через конвейер и выполняет такие задачи, как контроль качества, синхронизация аудио/видео и реакция на изменение форматов.
Средство чтения исходного кода и средство записи приемника
Средство чтения источника и записывающее устройство предоставляют альтернативный способ использования основных компонентов Media Foundation (источников мультимедиа, преобразований и приемников мультимедиа). Средство чтения источника размещает источник мультимедиа и ноль или больше декодеров, а модуль записи приемника размещает приемник мультимедиа и ноль или больше кодировщиков. С помощью средства чтения источника можно получить сжатые или несжатые данные из источника мультимедиа и использовать модуль записи приемника для кодирования данных и отправки данных в приемник мультимедиа.
Заметка
Средство чтения источника и модуль записи приемников доступны в Windows 7.
Эта модель программирования дает приложению больше контроля над потоком данных, а также дает приложению прямой доступ к данным из источника.
Связанные разделы