IMediaControl::Run 方法 (control.h)
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法 Run
运行筛选器图中的所有筛选器。 在图形运行时,数据在图形中移动并呈现。
语法
HRESULT Run();
返回值
返回 HRESULT 值。 可能的值包括以下值。
返回代码 | 说明 |
---|---|
|
该图正在准备运行,但某些筛选器尚未完成到运行状态的转换。 |
|
图中的所有筛选器都完成了到运行状态的转换。 |
备注
如果筛选器图已停止,此方法会在运行前暂停该图。 如果图形已在运行,则方法返回S_OK但不起作用。
该图一直运行,直到应用程序调用 IMediaControl::P ause 或 IMediaControl::Stop 方法。 当播放到达流的末尾时,图形将继续运行,但筛选器不再流式传输数据。 此时,应用程序可以暂停或停止图形。 有关流结束事件的信息,请参阅 IMediaControl::P ause 和 EC_COMPLETE。
此方法不查找流的开头。 因此,如果运行图形,暂停它,然后再次运行它,播放将从暂停的位置恢复。 如果在关系图到达流的末尾后运行该图,则不会呈现任何内容。 若要查找图形,请使用 IMediaSeeking 接口。
如果方法返回 S_FALSE,则表示该方法在所有筛选器切换到运行状态之前已返回。 筛选器将在 方法返回后完成转换。 (可选)可以通过使用超时值调用 IMediaControl::GetState 方法来等待转换完成。 不过,这不是必需的。
如果 Run 方法返回错误代码,则表示一个或多个筛选器无法运行。 但是,某些筛选器可能处于运行状态。 在多流图中,整个流可能正在成功播放。 在这种情况下,应用程序通常会断开图形并报告错误。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | control.h (包括 Dshow.h) |
Library | Strmiids.lib |