当我同时播放许多声音(许多AdvancePlayer)时(我正在尝试制作钢琴演奏器应用),会有“流行”声音。
我的代码没什么特别的,一个音乐背景播放器,一个16音符播放器。它在程序开始时加载。并在需要时播放。就像来自SDK的CrossExample一样,但添加更多播放器,就这些。
搜索许多资源,查看其代码,大部分与我的代码没有什么不同。我什至尝试将声音文件编辑为32位.wav,并在文件开始时减少静音,但是我仍然无法解决此问题。
bool AudioSuper :: process(short int * output,unsigned int numberOfSamples) {
bool haveSound = false;
// musicPlayer and player is created exactly like in CrossExample
if (musicPlayer->process(stereoBuffer, haveSound, numberOfSamples, musicVolume))
{
haveSound = true;
}
for (int i = 0; i < players.size(); i++)
{
if (players[i]->process(stereoBuffer, haveSound, numberOfSamples, volumes[i]))
{
haveSound = true;
}
}
if (haveSound) {
SuperpoweredFloatToShortInt(stereoBuffer, output, numberOfSamples);
}
return haveSound;
}