IMediaControl::StopWhenReady 方法 (control.h)
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法 StopWhenReady
暂停筛选器图,允许筛选器对数据进行排队,然后停止筛选器图。
语法
HRESULT StopWhenReady();
返回值
返回 HRESULT 值。 可能的值包括以下值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
方法返回时,图形仍在转换为暂停状态。 |
注解
如果要在停止关系图时查找筛选器图,此方法非常有用。 只要筛选器图停止,当前位置的更改就不会使用新帧重新绘制视频窗口。 因此,调用 IMediaSeeking::SetPositions 不会更新视频窗口。 若要在查找操作后更新窗口,请调用 StopWhenReady
。 此方法将图形转换为暂停状态,等待暂停操作完成,然后将图形转换回停止状态。 暂停操作会将图形中的数据排入队列,以便视频呈现器接收并显示新帧。
此方法是异步方法。 它会在单独的线程上等待暂停完成。 调用线程不会阻止,这使应用程序能够响应用户输入。 当方法返回时,即使在暂停操作完成之前,图形的逻辑状态也会停止。 如果此时调用 IMediaControl::GetState 方法,它将返回State_Stopped。
如果应用程序在暂停操作完成之前发出另一个状态更改命令 ((例如暂停、运行或查找) ),则新命令将取消挂起的停止命令。 暂停操作完成,但图形不会停止。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | control.h (包括 Dshow.h) |
Library | Strmiids.lib |