我使用DirectShow在我的应用程序中播放音频/视频文件。我使用IGraphBuilder::RenderFile()来构建过滤器图形和IMediaControl接口来播放/暂停/停止媒体。这适用于本地媒体文件,但会对现场mms流造成问题。DirectShow停止/恢复实时流
如果我在实时流上拨打IMediaControl::Stop(),该流将按预期停止播放。但是,如果我拨打IMediaControl::Run()恢复流,则不会发生任何事情。该图形生成一个EC_COMPLETE事件,但该视频不再播放。
调用IMediaControl::Pause()后面接着IMediaControl::Run()将恢复它停止的流,但最终会停止。它似乎只是在调用IMediaControl::Pause()时播放缓冲区中的数据,而不是与实时流重新同步。
有没有人知道如何恢复播放直播流而不破坏和重建过滤器图?
你知道图中要添加哪些过滤器吗? – heavyd 2009-06-26 20:18:14
GraphEdit为视频显示“ASF ACM Handler”+“WMAudio Decoder DMO”滤镜,“ASF ICM Handler”+“WMVideo Decoder DMO”滤镜。我遇到同样的问题,在GraphEdit中使用“渲染URL”选项来停止和恢复流。我正在使用天空新闻实时馈送进行测试(mms://live1.wm.skynews.servecast.net/skynews_wmlz_live300k) – flashk 2009-06-26 20:35:47