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


Приемники мультимедиа ASF

Приемник мультимедиа ASF является последним компонентом в конвейере кодирования, который позволяет приложению записывать ASF-файл.

Media Foundation предоставляет два типа приемников мультимедиа ASF:

  • Приемник файлов ASF используется для архивации данных мультимедиа ASF в файл.
  • Приемник потоковой передачи ASF используется для записи содержимого ASF в поток байтов, который может передаваться по сети.

Приемники мультимедиа ASF содержат один или несколько приемников потоков, которые представляют данные для записи для каждого потока в выходном ASF-файле. Для приложений кодирования, работающих в Windows Vista, необходимо вручную настроить топологию кодирования, создав и настроив приемник мультимедиа ASF, а затем добавив его в топологию. В Windows 7 при использовании объектов быстрого перекодирования для создания топологии не требуется напрямую создавать приемник мультимедиа и приложение не вызывает методы в приемнике мультимедиа или приемниках потоков. Объекты быстрого перекодирования создают экземпляры необходимых приемников мультимедиа и добавляют их в топологию, прежде чем возвращать ссылку на вызывающее приложение. Однако для объектов быстрого перекодирования существуют некоторые ограничения, которые применяются в зависимости от типа кодирования.

Объектная модель приемника мультимедиа ASF

Приемники мультимедиа ASF реализуют интерфейс IMFMediaSink и предоставляют следующие интерфейсы. Приложение может получить ссылку на эти интерфейсы, вызвав QueryInterface в приемнике мультимедиа ASF, который используется для создания выходных примеров.

Интерфейс Описание
IMFMediaSink Требуется для всех приемников мультимедиа.
IMFFinalizableMediaSink Реализуется приемником файлов ASF, который записывает созданное содержимое мультимедиа в файл. Методы в этом интерфейсе можно использовать для очистки данных и обновления объекта заголовка ASF конечного выходного файла.
IMFClockStateSink Получает уведомления об изменении состояния от часов презентации.
IMFASFContentInfo Объект ASF ContentInfo — это объект уровня WMContainer, в котором в основном хранятся сведения об объекте заголовка ASF. Используется для создания приемников мультимедиа ASF.
IMFMetadata Используется для описания метаданных файла ASF.
IMFMetadataProvider Извлекает коллекцию метаданных для всей презентации или для одного потока в презентации.

 

Приемник файлов ASF

Приемник файлов ASF — это реализация IMFMediaSink , предоставляемая Media Foundation, которую приложение может использовать для архивации данных мультимедиа ASF в файл.

Необходимо создать, настроить и вызвать методы в приемнике файлов или любом из его приемников потоков, если вы используете объекты уровня конвейера для записи нового ASF-файла. После настройки приемника файлов его можно добавить в конвейер кодирования.

Ниже приведены общие шаги по использованию приемника файлов ASF.

  1. Создайте приемник файлов в процессе или вне процесса.
  2. Настройте приемник файлов со всеми потоками, свойствами кодирования и метаданными.
  3. Свяжите приемник файла с узлом выходной топологии путем перечисления приемников потоков или путем отслеживания номеров потоков в приемнике.

В следующих разделах содержатся подробные сведения о работе с приемником файлов ASF.

Компоненты ASF уровня конвейера

Поддержка ASF в Media Foundation