IMediaDet 接口

注意

[已弃用。 可以从Windows的未来版本中删除此 API。]

 

IMediaDet 接口检索有关媒体文件的信息,例如流数,以及每个流的媒体类型、持续时间和帧速率。 它还包含从视频流检索单个帧的方法。 媒体检测器 (MediaDet) 对象公开此接口。

若要使用此接口获取有关文件的信息,请执行以下步骤:

  1. 通过调用 CoCreateInstance 创建 MediaDet 对象的实例。 类 ID 为CLSID_MediaDet。
  2. 调用 IMediaDet::p ut_Filename 以指定源文件的名称。
  3. 调用 IMediaDet::get_OutputStreams 以获取源中的输出流数。
  4. 调用 IMediaDet::p ut_CurrentStream 以指定特定流。
  5. 调用以下任一方法:

若要检索视频帧,请调用 IMediaDet::GetBitmapBitsIMediaDet::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 与低于版本 7 的 Direct3D 标头不兼容。

 

注意

若要获取 Qedit.h,请下载适用于 Windows Vista 和 .NET Framework 3.0 的 Microsoft Windows SDK 更新。 Qedit.h 在 Windows 7 和 .NET Framework 3.5 Service Pack 1 的Microsoft Windows SDK中不可用。

 

要求

要求 Value
标头
Qedit.h

Strmiids.lib