IAMExtTransport::GetStatus 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

方法 GetStatus 返回有关传输状态的信息。

语法

HRESULT GetStatus(
  [in]      long StatusItem,
  [in, out] long *pValue
);

参数

[in] StatusItem

指定要检索的状态信息。 有关更多信息,请参见备注。

[in, out] pValue

指向变量的指针,该变量指定或接收一个 整数,其含义取决于 StatusItem 的值。 有关更多信息,请参见备注。

返回值

此方法成功后,将返回S_OK。 否则,它将返回 HRESULT 错误代码。

注解

StatusItem 参数是指定要检索的状态信息的标志。 方法返回 pValue 参数中的信息。 并非每个设备都支持每个状态标志。 定义了以下标志:

  • ED_MODE:返回当前传输模式,例如暂停或播放。 有关定义传输模式的常量列表,请参阅 IAMExtTransport::p ut_Mode 。 作为替代方法,可以将 StatusItem 设置为这些常量之一,如果传输当前处于该模式, pValue 将接收值 OATRUE,否则将接收 OAFALSE 值。
  • ED_MEDIA_TYPE:指示此传输的媒体格式。 返回以下常量之一。
    一直 说明
    ED_MEDIA_VHS Vhs
    ED_MEDIA_SVHS S-VHS
    ED_MEDIA_HI8 Hi-8
    ED_MEDIA_UMATIC Umatic
    ED_MEDIA_DVC DV 磁带 (DVC)
    ED_MEDIA_1_INCH 1 英寸磁带
    ED_MEDIA_D1 D1 格式
    ED_MEDIA_D2 D2 格式
    ED_MEDIA_D3 D3 格式
    ED_MEDIA_D5 D5 格式
    ED_MEDIA_DBETA 数字 Betacam
    ED_MEDIA_BETA Betacam
    ED_MEDIA_8MM 8 毫米
    ED_MEDIA_DDR 数字磁盘记录器
    ED_MEDIA_SX Betacam SX
    ED_MEDIA_OTHER 其他
    ED_MEDIA_CLV CLV (恒定线性速度,或“标准播放”) 激光盘
    ED_MEDIA_CAV CAV (恒定Angular速度,或“扩展播放”) 激光磁盘
     
  • ED_LINK_MODE:如果传输的控件链接到筛选器图的 RunStopPause 方法,则返回 OATRUE,否则返回 OAFALSE。 有关详细信息,请参阅 IAMExtTransport::p ut_Mode
  • ED_MEDIA_PRESENT:如果传输的媒体存在,则返回 OATRUE,否则返回 OAFALSE。
  • ED_MEDIA_LENGTH:返回媒体的长度,以当前时间格式 (请参阅 IAMExtTransport::SetTransportBasicParameters) 。
  • ED_MEDIA_TRACK_COUNT:返回跟踪计数。
  • ED_MEDIA_TRACK_LENGTH:以当前时间格式单位返回轨道长度。
  • ED_MEDIA_SIDE:指示媒体的哪一侧处于活动状态。
在 Windows XP Service Pack 2 及更高版本中,为ED_MODE定义了以下附加播放模式。
一直 说明
ED_MODE_PLAY_SLOW_FWD_X 播放未指定的慢进。 (以供应商特定的速度慢进游戏。)
ED_MODE_PLAY_FAST_FWD_X 玩未指定的快进。 (快进以供应商特定的速度播放。)
ED_MODE_PLAY_SLOW_REV_X 播放未指定缓慢的反向播放。 (以供应商特定的速度进行缓慢的反向播放。)
ED_MODE_PLAY_FAST_REV_X 播放未指定的快速反向播放。 (以供应商特定的速度快速反向播放。)
ED_MODE_STOP_START 在磁带 (或其他传输介质) 的开头停止传输。
ED_MODE_STOP_END 在磁带 (或其他传输介质) 的末尾停止传输。
ED_MODE_STOP_EMERGENCY 由于意外情况或避免传输可能损坏,传输已停止。
 

若要使用这些常量,请包含Windows SDK中的头文件 Xprtdefs.h。

DV 实现

MSDV 支持以下状态标志:

  • ED_MODE:请参阅前面的备注。
  • ED_MEDIA_TYPE:返回以下值之一。
    一直 说明
    ED_MEDIA_VHS VHS 磁带。
    ED_MEDIA_DVC DV 磁带。
    ED_MEDIA_UNKNOWN 未知类型。
    ED_MEDIA_NOT_PRESENT 传输为空。
     
  • ED_DEV_REMOVED_HEVENT_GET。 返回事件的句柄。 如果以物理方式将设备从系统中删除,驱动程序将发出事件信号。
  • ED_DEV_REMOVED_HEVENT_RELEASE。 释放通过 ED_DEV_REMOVED_HEVENT_GET 标志获取的事件句柄。 在 pValue 参数中指定句柄的地址。
  • ED_MODE_CHANGE_NOTIFY。 以 pValue 返回设备状态。 如果该方法返回E_PENDING,则状态更改处于挂起状态。 可以使用 ED_NOTIFY_HEVENT_GET 标志在状态更改完成时获取通知。
  • ED_NOTIFY_HEVENT_GET。 返回事件的句柄。 当设备完成模式更改时,驱动程序会发出事件信号。
  • ED_NOTIFY_HEVENT_RELEASE。 释放通过 ED_NOTIFY_HEVENT_GET 标志获取的事件句柄。 在 pValue 参数中指定句柄的地址。

MPEG 摄像机实现

MSTape 支持ED_MEDIA_TYPE标志的其他媒体格式。

一直 说明
ED_MEDIA_NEO 用于 MPEG-2 传输流的微型数字磁带 (D-VHS) 。
 

其中一些标志在头文件 Xptrdefs.h 中定义。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

错误和成功代码

IAMExtTransport 接口