Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Приемник файлов ASF — это реализация IMFMediaSink, предоставляемая Media Foundation, которую приложение может использовать для архивации данных мультимедиа ASF в файл. Сведения об объектной модели приемников мультимедиа ASF и общем использовании см. в приемниках мультимедиа ASF.
Существует два способа создания экземпляра приемника файлов ASF. Можно вызвать MFCreateASFMediaSink или MFCreateASFMediaSinkActivate.
При вызове MFCreateASFMediaSinkнеобходимо указать поток байтов для выходного файла, в который приемник будет записывать содержимое ASF во время сеанса кодирования. Указанный поток байтов должен иметь возможности поиска и записи в противном случае вызов MFCreateASFMediaSink завершается ошибкой с кодом ошибки E_FAIL. Этот вызов создает объект приемника файлов в процессе и возвращает указатель на интерфейс IMFMediaSink приемника файлов.
При вызове MFCreateASFMediaSinkActivateнеобходимо указать URL-адрес выходного файла, в который приемник файлов будет записывать данные мультимедиа. В этом случае приемник файлов внутренне создает поток байтов. Функция возвращает указатель на интерфейс IMFActivate приемника файлов. Кому
Рассмотрим MFCreateASFMediaSinkActivate вместо MFCreateASFMediaSink, если топология кодирования разработана следующим образом:
Топология кодирования предназначена для пути защищенного носителя (PMP), а приемник файлов используется в внепроцессорном режиме.
Выходной узел топологии создается с помощью возвращаемого указателя на объект активации приемника файлов, и приложение отслеживает потоки в приемнике файлов по номерам потоков.
Заметка
Можно активировать приемник файлов, вызвав IMFActivate::ActivateObject. Однако не нужно активировать объект эксплицитно. Сеанс мультимедиа отслеживает объект активации и автоматически активирует приемник файлов во время сеанса кодирования.
Сведения о потоке настраиваются в объекте ContentInfo. Обсуждается в следующем подразделе.
После создания приемника файлов ASF его необходимо настроить перед созданием топологии. Приемник файлов должен знать следующие сведения, чтобы создать выходной файл.
- Основные сведения о потоке
- Сведения о режиме кодирования
- Метаданные
Приемник файлов реализует объект ASF ContentInfo и предоставляет интерфейс IMFASFContentInfo, чтобы приложение могло его использовать для задания информации, связанной с потоками и кодировкой. В зависимости от вызываемой функции для создания приемника файлов существует два способа получения ссылки на интерфейс IMFASFContentInfo.
- При вызове функции MFCreateASFMediaSink приложение должно запрашивать интерфейс IMFASFContentInfo через вызов IMFMediaSink::QueryInterface на возвращенном приемнике файлов.
- Если вы решили вызвать MFCreateASFMediaSinkActivate, эта функция ожидает, что перед вызовом есть полностью настроенный объект ContentInfo. Для этого необходимо создать пустой объект ContentInfo, вызвав MFCreateASFContentInfo, а затем настроить его со всеми необходимыми сведениями. Передайте настроенный объект ContentInfo в MFCreateASFMediaSinkActivate, чтобы получить указатель на объект активации приемника. Невозможно активировать приемник файлов с помощью возвращаемого объекта активации, а затем изменить любую информацию о потоке или кодировке.
Сведения о настройке потоков приемника и конкретных свойств см. в следующих разделах:
- Добавление сведений о потоке в приемник данных ASF
- Установка свойств в хранилище файлов
- Добавление метаданных в файловый приемник
Связанные разделы