我正在使用SystemSoundID
类在我的游戏中播放声音效果,结果有些奇怪。我的一些声音,包括下面的landed1
,根据音量按钮改变音量,但其他声音(如deathsound
)总是以全音量播放。以下是与两种声音相关的所有代码。
SystemSoundID deathsound;
SystemSoundID landed1;
...
NSURL * soundURL;
soundURL = [[NSBundle mainBundle] URLForResource:@"SMPKLanded1" withExtension:@"mp3"];
AudioServicesCreateSystemSoundID ((__bridge CFURLRef) soundURL, &landed1);
soundURL = [[NSBundle mainBundle] URLForResource:@"SMPKDeathSound" withExtension:@"mp3"];
AudioServicesCreateSystemSoundID ((__bridge CFURLRef) soundURL, &deathsound);
...
AudioServicesPlaySystemSound(landed1);
...
AudioServicesPlaySystemSound(deathsound);
如果代码和文件类型基本相同,为什么两者的行为如此不同?没有意义!
答案 0 :(得分:0)
好吧,经过过多的时间让自己发疯,我终于想通了。其中一些与AVAudioPlayer
同时播放,由于某种原因使它们符合音量按钮,有些则没有。我明显的下一步是做一个沉默的AVAudioPlayer
,我现在已经完成了,程序按照我的预期运作。
作为后续问题,是否有人知道为什么AVAudioPlayer
会影响SystemSoundIDs
?