我正在使用QT的Phonon组件为C ++中的用户交互播放声音。经过大量测试后,我可以确认排队的声音只会在主线程返回主消息循环时才开始播放。对于长处理代码,这会引起声音播放的延迟。我需要找到一种方法来避免这种延迟。
我尝试在单独的线程中执行声音,但Phonon中的defect会阻止在该线程中创建某些对象。因此,一些信号总是卡在主线程中。
由于以下几个原因,简单地快速返回事件循环不是一种选择:
我只想介绍声音API的最基本用例:当用户执行某些操作时播放声音(例如单击按钮)并立即播放该声音。当然,必须以某种方式在Phonon中进行报道?
答案 0 :(得分:1)
我没有看过qt 4.7中的声子是否有所改进,但我考虑将它用于类似目的(在qt 4.6中)并拒绝它,因为它无法同时播放/混合两种声音。我甚至没有进行任何运行时测试。我使用了SDL Audio,特别是SDL Mixer它在播放时具有低延迟,你可以同时播放多个声音。