Функция MFCreateSinkWriterFromURL (mfreadwrite.h)

Создает модуль записи приемника из URL-адреса или потока байтов.

Синтаксис

HRESULT MFCreateSinkWriterFromURL(
  [in]  LPCWSTR       pwszOutputURL,
  [in]  IMFByteStream *pByteStream,
  [in]  IMFAttributes *pAttributes,
  [out] IMFSinkWriter **ppSinkWriter
);

Параметры

[in] pwszOutputURL

Строка, завершающаяся нулевым значением, которая содержит URL-адрес выходного файла. Этот параметр может принимать значение NULL.

[in] pByteStream

Указатель на интерфейс IMFByteStream потока байтов. Этот параметр может принимать значение NULL.

Если этот параметр является допустимым указателем, модуль записи приемника выполняет запись в предоставленный поток байтов. (Поток байтов должен быть записываемым.) В противном случае, если pByteStream имеет значение NULL, модуль записи приемника создает новый файл с именем pwszOutputURL.

[in] pAttributes

Указатель на интерфейс IMFAttributes . Этот параметр можно использовать для настройки модуля записи приемника. Дополнительные сведения см. в разделе Атрибуты модуля записи приемника. Этот параметр может принимать значение NULL.

[out] ppSinkWriter

Получает указатель на интерфейс IMFSinkWriter . Вызывающий объект должен освободить интерфейс .

Возвращаемое значение

Эта функция может возвращать одно из этих значений.

Код возврата Описание
S_OK
Успешно.
MF_E_NOT_FOUND
Указанный URL-адрес не найден.

Комментарии

Вызовите CoInitialize(Ex) и MFStartup перед вызовом этой функции.

Первые три параметра для этой функции могут иметь значение NULL; однако допустимы только определенные сочетания:

Описание pwszOutputURL pByteStream pAttributes
Укажите поток байтов без URL-адреса. NULL отличное от NULL Обязательный параметр (не должен иметь значение NULL).
Укажите URL-адрес без потока байтов. не NULL NULL Необязательный (может иметь значение NULL).
Укажите URL-адрес и поток байтов. отличное от NULL отличное от NULL Необязательный (может иметь значение NULL).
 

Параметр pAttributes является обязательным в первом случае и необязательным в других случаях.

  • Вариант 1. Укажите поток байтов без URL-адреса. Параметр pAttributes должен указывать на хранилище атрибутов, содержащее атрибут MF_TRANSCODE_CONTAINERTYPE . Модуль записи приемника использует атрибут MF_TRANSCODE_CONTAINERTYPE для определения типа контейнера файлов для записи, например ASF или MP4.
  • Вариант 2. Укажите URL-адрес без потока байтов. Модуль записи приемника создает новый файл с именем pwszOutputURL. Если pAttributes указывает хранилище атрибутов с атрибутом MF_TRANSCODE_CONTAINERTYPE , модуль записи приемника использует этот атрибут для определения типа контейнера файлов. В противном случае, если атрибут MF_TRANSCODE_CONTAINERTYPE отсутствует или pAttributes имеет значение NULL, модуль записи приемника использует расширение имени файла для выбора типа контейнера. Например, ".asf" для ASF-файла.
  • Вариант 3. Укажите URL-адрес и поток байтов. Модуль записи приемника выполняет запись в поток байтов. URL-адрес, указанный в pwszOutputURL , является информационным; модуль записи приемника не создает новый файл. Если pAttributes указывает хранилище атрибутов с атрибутом MF_TRANSCODE_CONTAINERTYPE , модуль записи приемника использует этот атрибут для определения типа контейнера файлов. В противном случае модуль записи приемника использует расширение имени файла для выбора типа контейнера. В этом случае атрибут MF_TRANSCODE_CONTAINERTYPE переопределяет расширение имени ФАЙЛА URL-адреса.
Эта функция доступна в Windows Vista, если установлено дополнение к обновлению платформы для Windows Vista.

Требования

Требование Значение
Минимальная версия клиента Windows 7, Windows Vista и дополнение к обновлению платформы для Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header mfreadwrite.h
Библиотека Mfreadwrite.lib
DLL Mfreadwrite.dll

См. также раздел

Функции Media Foundation