Обзор архитектуры 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 (MFT) обрабатывает данные из потока. Кодировщики и декодеры реализуются в виде MFT.
- Приемники мультимедиа потребляют данные; например, путем отображения видео на дисплее, воспроизведения звука или записи данных в файл мультимедиа.
Сторонние разработчики могут реализовать собственные пользовательские источники, приемники и MFT; например, для поддержки новых форматов файлов мультимедиа.
Сеанс мультимедиа управляет потоком данных через конвейер и обрабатывает такие задачи, как контроль качества, синхронизация звука и видео и реагирование на изменения формата.
Средство чтения источника и модуль записи приемника
Средство чтения исходного кода и модуль записи приемников предоставляют альтернативный способ использования базовых компонентов Media Foundation (источники мультимедиа, преобразования и приемники мультимедиа). Средство чтения исходного кода размещает источник мультимедиа и ноль или более декодеров, а модуль записи приемника — приемник мультимедиа и ноль или несколько кодировщиков. Средство чтения источника можно использовать для получения сжатых или несжатых данных из источника мультимедиа, а модуль записи приемника — для кодирования данных и отправки данных в приемник мультимедиа.
Примечание
Средство чтения исходного кода и модуль записи приемника доступны в Windows 7.
Эта модель программирования дает приложению больший контроль над потоком данных, а также предоставляет приложению прямой доступ к данным из источника.
Связанные темы