Функция 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 . Вызывающий объект должен освободить интерфейс .
Возвращаемое значение
Эта функция может возвращать одно из этих значений.
Код возврата | Описание |
---|---|
|
Успешно. |
|
Указанный 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 7, Windows Vista и дополнение к обновлению платформы для Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 R2 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | mfreadwrite.h |
Библиотека | Mfreadwrite.lib |
DLL | Mfreadwrite.dll |