启动AVAudioPlayer时,系统声音会变大

时间:2016-05-25 12:17:27

标签: objective-c avaudioplayer avaudiosession

我在SO上发现了一个关于同一问题的问题,但仍然没有答案。 AVAudioPlayer affects system sounds

AVAudioSessionCategoryAmbient不是答案,因为它只允许应用程序与其他应用程序的音频同时播放音频,不是这样。

我使用SystemSound播放按钮点击声音等声音效果,使用AVAudioPlayer播放背景音乐。当AVAudioPlayer在播放SystemSound时启动时,该特定系统声音突然变得大5倍。还有其他人经历过吗?可能有什么问题?

这些是在SoundControl.m中,我在转换后正在玩gameBG。

-(void)gameBG {

self.sharedSoundControl = [SoundControl sharedSoundControl];
if (self.sharedSoundControl.musicOff == NO) {
    self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"bgm" withExtension:@"mp3"] error:nil];
    self.audioPlayer.numberOfLoops = -1;
    self.audioPlayer.volume = 0.3f;
        [self.audioPlayer play];
}}

-(void)transition {

if (self.sharedSoundControl.effectOff == NO) {

NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"transition" ofType:@"caf"];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:soundPath], &soundID);
AudioServicesPlaySystemSound(soundID);
}}

修改

刚刚意识到如果AVAudioPlayer的另一个实例已经在任何地方播放,则不会发生此类行为。它发生在没有活动的AVAudioPlayer并且您播放系统声音后接着AVAudioPlayer然后瞧,您刚播放的系统声音突然变得非常响亮。

我在想,如果我没有得到答案,我就必须在播放系统声音之前播放一些随机静音的AVAudioPlayer,这样就不会发生但是我希望得到一些“真正的”修复这个。 请不要建议在播放系统声音之前播放一些随机静音的AVAudioPlayer,因为这就是我刚才所说的..

0 个答案:

没有答案