我用 C 语言开发了一个应用程序,可以在后台显示 4 个视频和 1 个声音文件。
该视频使用了微软在 WMP SDK 中提供的 C++ 类中的 WMP 对象。音频使用发送命令字符串的 Windows 的 MCI(媒体控制接口)。
为了能够播放许多不同的格式,我安装了windows.7.codec.pack。
我遇到一个问题,当播放超过 3 个媒体文件(视频或音频)时,媒体停顿。要开始的视频不断地从状态 3(正在播放)循环到状态 9(准备新媒体)再到状态 10(准备开始播放 - 没有任何事情发生),依此类推。这被视为视频的闪烁(状态 3),然后是几秒钟的空白(黑色或桌面背景,状态 9)。一旦视频开始播放,它就会一直播放到最后。
将要播放的媒体文件数量减少到 2 个视频和 1 个音频,让它可以正常播放;增加到 3 个或更多视频和 1 个音频,就会发生这种情况。任务管理器显示 CPU 负载低于 25%,因此 CPU 不是问题。
似乎 MCI 和 WMP 在后台共享内容,因为不仅视频停顿,而且音频停止而不报告错误(查询 MCI 返回它正在播放,但没有声音)。
我升级到windows.7.codec.pack.v4.2.6
. 这有一个糟糕的表现
我恢复到windows.7.codec.pack.v4.1.6
. 这具有更好的性能,但仍然不完美。
我的问题:
有什么方法可以配置 Windows 或编解码器包以无缝处理 5 个流?
我如何向开发人员报告此问题?
是否有其他编解码器包没有这个问题?
还有什么建议吗?
系统信息:Intel i7-3520M X64 双核,2.9Ghz,8GB 物理内存和 NVIDIA Quatro K1000M 显示适配器。