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


Метод CSourceStream.GetMediaType (Source.h)

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

Метод GetMediaType извлекает предпочтительный тип мультимедиа.

Синтаксис

virtual HRESULT GetMediaType(
   CMediaType *pMediaType
);

Параметры

pMediaType

Указатель на объект CMediaType , который получает тип мультимедиа.

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

Возвращает одно из значений HRESULT , показанных в следующей таблице.

Код возврата Описание
S_OK
Успешно.
VFW_S_NO_MORE_ITEMS
Индекс вне диапазона.
E_INVALIDARG
Индекс меньше нуля.
E_UNEXPECTED
Непредвиденная ошибка.

Комментарии

Существует две версии этого метода. Одна версия переопределяет метод CBasePin::GetMediaType и принимает значение индекса в качестве параметра. Другая версия предназначена для извлечения одного типа носителя, поэтому в ней отсутствует параметр index.

Метод с одним параметром возвращает E_UNEXPECTED. Метод с двумя параметрами проверяет, что параметр iPosition равен нулю, а затем вызывает версию с одним параметром. В зависимости от количества типов носителей, поддерживаемых закреплением, необходимо переопределить один из следующих методов:

  • Если закрепление поддерживает только один тип носителя, переопределите версию с одним параметром. Укажите тип носителя, поддерживаемый закреплением.
  • Если закрепление поддерживает несколько типов носителей, переопределите версию с двумя параметрами. Также переопределите метод CSourceStream::CheckMediaType .

Требования

Требование Значение
Заголовок
Source.h (включая Streams.h)
Библиотека
Strmbase.lib (розничные сборки);
Strmbasd.lib (отладочные сборки)

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

Класс CSourceStream