我的游戏有几个不同的同时QSoundEffects(主要是枪声),我这样简单地玩它们:

effect.setVolume(0.5f);
effect.play();

初始化应用程序时,声音数据已预先加载。

在我的Ubuntu桌面上,它可以完美运行,但是在Android上,某些声音无法播放。每次重新启动应用程序之前,有问题的声音可能会有所不同。

可能是什么原因造成的?

最佳答案

自我回答:

似乎同时存在QSoundEffects的最大数量。这是预料之中的,但它似乎可以正常工作,因此只有前N个音效按其创建顺序播放。其余的将被忽略。如果您先停止其他正在播放的声音,则无济于事。这使我相信QSoundEffects永久映射到免费音频流。

我试图在需要时动态设置一些源,但是它不稳定并且PulseAudio随机崩溃。所以...现在看来,我将采用OpenAL Soft路线,因为它很容易为Android编译。

10-05 17:54