Интерфейс IMediaDet

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

Примечание

[Не рекомендуется. Этот API можно удалить из будущих выпусков Windows.]

 

Интерфейс IMediaDet извлекает сведения о файле мультимедиа, такие как количество потоков, тип, длительность и частота кадров каждого потока. Он также содержит методы извлечения отдельных кадров из видеопотока. Объект Media Detector (MediaDet) предоставляет этот интерфейс.

Чтобы получить сведения о файле с помощью этого интерфейса, выполните следующие действия.

  1. Создайте экземпляр объекта MediaDet, вызвав CoCreateInstance. Идентификатор класса CLSID_MediaDet.
  2. Вызовите метод IMediaDet::p ut_Filename , чтобы указать имя исходного файла.
  3. Вызовите метод IMediaDet::get_OutputStreams , чтобы получить количество выходных потоков в источнике.
  4. Вызовите IMediaDet::p ut_CurrentStream , чтобы указать конкретный поток.
  5. Вызовите любой из следующих методов:

Чтобы получить видеокадр, вызовите IMediaDet::GetBitmapBits или IMediaDet::WriteBitmapBits. Возвращаемый кадр всегда имеет 24-разрядный формат RGB.

Примечание

Не используйте один и тот же объект MediaDet с несколькими файлами. Чтобы получить сведения или видеокадры из нескольких файлов, используйте отдельные экземпляры MediaDet.

 

Интерфейс IMediaDet не поддерживает форматы VIDEOINFOHEADER2 , поэтому вы не можете использовать этот интерфейс для получения чередующихся полей или сведений о переплетении. Кроме того, если декодер вышестоящий поддерживает только VIDEOINFOHEADER2, нельзя использовать IMediaDet. Это может быть, например, с декодером MPEG-2. Кроме того, IMediaDet интерфейс игнорирует все потоки в файле, которые не являются видео или аудио. Например, если файл содержит аудиопоток, поток данных и видеопоток, метод get_OutputStreams будет сообщать только о двух потоках (аудио и видео).

Элементы

Интерфейс IMediaDet наследуется от интерфейса IUnknown . IMediaDet также имеет следующие типы элементов:

Методы

Интерфейс IMediaDet содержит следующие методы.

Метод Описание
EnterBitmapGrabMode Переключает детектор мультимедиа в режим захвата точечных рисунков и ищет граф фильтра на указанное время.
get_CurrentStream Извлекает номер потока, используемый в настоящее время детектором мультимедиа.
get_Filename Извлекает имя исходного файла, используемого в настоящее время детектором мультимедиа.
get_Filter Извлекает указатель на фильтр источника, используемый в настоящее время детектором мультимедиа.
get_FrameRate Извлекает частоту кадров текущего потока.
get_OutputStreams Извлекает количество аудио- и видеопотоков, содержащихся в источнике мультимедиа.
get_StreamLength Извлекает длительность текущего потока.
get_StreamMediaType Извлекает тип носителя текущего потока.
get_StreamType Извлекает глобальный уникальный идентификатор (GUID) для типа носителя текущего потока.
get_StreamTypeB Извлекает строку, представляющую GUID типа носителя для текущего потока.
GetBitmapBits Извлекает видеокадр в указанное время мультимедиа.
GetSampleGrabber Извлекает указатель на интерфейс ISampleGrabber .
put_CurrentStream Указывает номер потока для используемого детектора мультимедиа.
put_Filename Указывает имя исходного файла, используемого детектором мультимедиа.
put_Filter Указывает фильтр источника для используемого детектора мультимедиа.
WriteBitmapBits Извлекает видеокадр в указанное время мультимедиа и записывает его в файл.

 

Комментарии

Примечание

Файл заголовка Qedit.h несовместим с заголовками Direct3D более поздней версии 7.

 

Примечание

Чтобы получить Qedit.h, скачайте обновление Microsoft Windows SDK для Windows Vista и платформа .NET Framework 3.0. Qedit.h недоступен в Microsoft Windows SDK для Windows 7 и платформа .NET Framework 3.5 с пакетом обновления 1 (SP1).

 

Требования

Требование Значение
Заголовок
Qedit.h
Библиотека
Strmiids.lib