IAMExtTransport::GetStatus 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media 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:如果传输的控件链接到筛选器图的 Run、 Stop 和 Pause 方法,则返回 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:指示媒体的哪一侧处于活动状态。
一直 | 说明 |
---|---|
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 |