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


Метод IGraphBuilder::RenderFile (strmif.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Метод RenderFile создает граф фильтра, который отображает указанный файл.

Синтаксис

HRESULT RenderFile(
  [in] LPCWSTR lpcwstrFile,
  [in] LPCWSTR lpcwstrPlayList
);

Параметры

[in] lpcwstrFile

Задает строку с расширенными символами, содержащую имя файла мультимедиа.

[in] lpcwstrPlayList

Зарезервировано. Должен иметь значение NULL.

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

Возвращает HRESULT. Ниже приведены возможные значения.

Код возврата Описание
S_OK
Успешно.
VFW_S_AUDIO_NOT_RENDERED
Частичный успех; звук не был отрисован.
VFW_S_DUPLICATE_NAME
Успех; Диспетчер графов фильтров изменил имя фильтра, чтобы избежать дублирования.
VFW_S_PARTIAL_RENDER
Некоторые потоки в этом фильме имеют неподдерживаемый формат.
VFW_S_VIDEO_NOT_RENDERED
Частичный успех; некоторые потоки в этом фильме имеют неподдерживаемый формат.
E_ABORT
Операция аварийно завершена.
E_FAIL
Ошибка.
E_INVALIDARG
Аргумент недопустим.
E_OUTOFMEMORY
Недостаточно памяти.
E_POINTER
Аргумент указателя NULL.
VFW_E_CANNOT_CONNECT
Не удалось найти сочетание промежуточных фильтров, чтобы установить соединение.
VFW_E_CANNOT_LOAD_SOURCE_FILTER
Не удалось загрузить исходный фильтр для этого файла.
VFW_E_CANNOT_RENDER
Не удалось найти сочетание фильтров для отрисовки потока.
VFW_E_INVALID_FILE_FORMAT
Недопустимый формат файла.
VFW_E_NOT_FOUND
Объект или имя не найдены.
VFW_E_UNKNOWN_FILE_TYPE
Тип носителя этого файла не распознается.
VFW_E_UNSUPPORTED_STREAM
Не удается воспроизвести файл: формат не поддерживается.

Комментарии

Если параметр lpwstrFile указывает файл мультимедиа, метод создает граф фильтра для воспроизведения по умолчанию. Сначала добавляется исходный фильтр, который может считывать файл, используя тот же процесс, что и метод IGraphBuilder::AddSourceFilter . Затем он отрисовывает выходные контакты в исходном фильтре, добавляя промежуточные фильтры при необходимости. Он пытается выполнить фильтры в том же порядке, что и метод IGraphBuilder::Connect .

В процессе подключения диспетчер графов фильтров игнорирует контакты на промежуточных фильтрах, если имя контакта начинается с тильды (~). Дополнительные сведения см. в разделе PIN_INFO.

Обратите внимание, что RenderFile метод не удаляет фильтры из графа. При двойном вызове RenderFile второй вызов просто добавит дополнительные фильтры в граф. При запуске графа оба источника будут воспроизводиться одновременно.

Примеры

В следующем примере показан AVI-файл для воспроизведения по умолчанию:

C++
hr = pGraph->RenderFile(L"C:\\Media\\Example.avi", 0);
В следующем примере AVI-файл скачивается по протоколу HTTP с помощью фильтра Источник файлов (URL-адрес):
C++
hr = pGraph->RenderFile(L"http://example.microsoft.com/Example.avi", 0);

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header strmif.h (включая Dshow.h)
Библиотека Strmiids.lib

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

Коды ошибок и успешного выполнения

Интерфейс IGraphBuilder