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


Метод CMediaSample.GetMediaType

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

Метод GetMediaType извлекает тип носителя, если он отличается от предыдущего примера. Этот метод реализует метод IMediaSample::GetMediaType .

Синтаксис

HRESULT GetMediaType(
   AM_MEDIA_TYPE **ppMediaType
);

Параметры

ppMediaType

Адрес переменной, получающей указатель на структуру AM_MEDIA_TYPE . Если тип носителя не изменился по сравнению с предыдущим примером, параметру *ppMediaType присваивается значение NULL.

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

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

Код возврата Описание
S_FALSE
Тип носителя не изменился по сравнению с предыдущим примером.
S_OK
Успешно.
E_OUTOFMEMORY
Недостаточно памяти.

Комментарии

Завершив работу с типом носителя, освободите блок памяти, вызвав служебную функцию DeleteMediaType .

Переменная-член CMediaSample::m_pMediaType указывает тип носителя. Переменная-член CMediaSample::m_dwFlags указывает, изменился ли тип носителя.

Требования

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

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

Класс CMediaSample