SystemSoundID有时随设备卷更改

时间:2013-05-20 00:30:16

标签: iphone ios audio system volume

我正在使用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);

如果代码和文件类型基本相同,为什么两者的行为如此不同?没有意义!

1 个答案:

答案 0 :(得分:0)

好吧,经过过多的时间让自己发疯,我终于想通了。其中一些与AVAudioPlayer同时播放,由于某种原因使它们符合音量按钮,有些则没有。我明显的下一步是做一个沉默的AVAudioPlayer,我现在已经完成了,程序按照我的预期运作。

作为后续问题,是否有人知道为什么AVAudioPlayer会影响SystemSoundIDs