Интерфейс IMediaDet
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Примечание
[Не рекомендуется. Этот API можно удалить из будущих выпусков Windows.]
Интерфейс IMediaDet
извлекает сведения о файле мультимедиа, такие как количество потоков, тип, длительность и частота кадров каждого потока. Он также содержит методы извлечения отдельных кадров из видеопотока. Объект Media Detector (MediaDet) предоставляет этот интерфейс.
Чтобы получить сведения о файле с помощью этого интерфейса, выполните следующие действия.
- Создайте экземпляр объекта MediaDet, вызвав CoCreateInstance. Идентификатор класса CLSID_MediaDet.
- Вызовите метод IMediaDet::p ut_Filename , чтобы указать имя исходного файла.
- Вызовите метод IMediaDet::get_OutputStreams , чтобы получить количество выходных потоков в источнике.
- Вызовите IMediaDet::p ut_CurrentStream , чтобы указать конкретный поток.
- Вызовите любой из следующих методов:
Чтобы получить видеокадр, вызовите 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).
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|