我正在使用 DirectShow 在我的应用程序中播放音频/视频文件。我使用IGraphBuilder::RenderFile()来构建过滤器图和IMediaControl接口来播放/暂停/停止媒体。这适用于本地媒体文件,但会导致实时彩信流出现问题。
如果我在实时流上调用IMediaControl::Stop(),则流将按预期停止播放。但是,如果我调用IMediaControl::Run()来恢复流,则不会发生任何事情。该图生成一个 EC_COMPLETE 事件,但视频不再播放。
调用IMediaControl::Pause()后跟IMediaControl::Run()将恢复它停止的流,但最终会停止。似乎只是在调用IMediaControl::Pause()时播放缓冲区中的数据,而不是与实时流重新同步。
有人知道如何在不破坏和重建过滤器图的情况下恢复播放直播吗?