当前位置: 代码迷 >> 多媒体/流媒体开发 >> IGraphBuilder RenderFile不返回,该怎么解决
  详细解决方案

IGraphBuilder RenderFile不返回,该怎么解决

热度:7331   发布时间:2013-02-26 00:00:00.0
IGraphBuilder RenderFile不返回
在播放某些网络音乐文件时,会一直堵塞。我查过资料,这类问题原因还是有多种的。像http://topic.csdn.net/u/20090821/09/EF52BE8B-45AA-4575-95FE-9DB5F957BC3D
和http://topic.csdn.net/u/20071123/22/e3699ac3-b31b-44c4-8e47-575032ba0680
我的情况与上面又有不同。

我调试了下。例如当文件路径为http:/xx.xx.xx.xx/file.mp3,用IE打开后路径会变成http://xx.xx.xx.xx/name.mp3,用IE是可以下载,用media player也是可以直接播放http:/xx.xx.xx.xx/file.mp3。但RenderFile就会一直堵塞。

针对以上的每个问题有不同的解决方法。但最好的方法还是让RenderFile有个超时机制,当然可以函数实现测试RenderFile多久没返回就强制terminate,但代码不优美了。高手指点下有何更好更通用的方式。

------解决方案--------------------------------------------------------
我觉得RenderFile是阻塞的,因为在Debug调试某些文件时,可以明显看到在成功/失败返回前,Graph在不停的尝试加载/释放各种Filter。可能没有其他方法可以解决这个问题了。
------解决方案--------------------------------------------------------
等一个小时倒还真没遇到过...可以找台干净的机器做测试,也许是有些filter的问题。
------解决方案--------------------------------------------------------
微软对Abort的函数功能描述为:Requests that the graph builder return as soon as possible from its current task.
应该是可以用来取消的。