处理Sprite Kit中的中断 - 无法通过[SKAction playSoundFileNamed:中断后工作 - 获得声音效果

时间:2014-04-10 04:17:51

标签: ios audio sprite-kit avaudioplayer

处理Sprite Kit中的中断 - 无法通过[SKAction playSoundFileNamed:中断后工作(如电话)获得声音效果

通过将AVAudioPlayerDelegate添加到我的GameScene.h然后添加到我的GameScene.m

,能够在中断后重启背景音乐
-(void)audioPlayerBeginInterruption:(AVAudioPlayer *)player
{
        [_backgroundAudioPlayer pause];

}

-(void)audioPlayerEndInterruption:(AVAudioPlayer *)player
{
    [_backgroundAudioPlayer prepareToPlay];
    [_backgroundAudioPlayer play];

}

我已尝试添加

[[AVAudioSession sharedInstance] setActive:NO error:nil];

当中断开始时AppDelegate和GameScene以及setActive:当中断以没有运气结束时为YES,声音效果在中断结束后不会发出声音

1 个答案:

答案 0 :(得分:0)

从各种讨论中,这似乎是一个可以偶尔显示出来的错误。缺点是,如果您遇到这些问题,而且看起来就是这样,那就是跳过SKAction playSoundFileName并纯粹使用AVAudioPlayer。

你必须:

  1. 仅对您的所有音频使用AVAudioPlayer,因为它经过设计和测试可以处理中断。
  2. 使用NSData作为与AVAudioPlayer一起使用的声音容器
  3. 每个声音都应该有自己的临时AVAudioPlayer实例,仅用于声音生命周期。
  4. 有关如何在http://iknowsomething.com/ios-sdk-spritekit-sound/

    上执行此操作的详细说明