[ios]声音继续播放Sprite工具包游戏

发布时间: 2017/3/31 20:56:35
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

用于此代码在我Sprite工具包游戏循环一首歌,但当我走出应用程序/游戏继续播放这首歌,我不知道如何停止这首歌,当你取下这场比赛︰

    url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"deep-blue-sea" ofType:@"wav"]];
    _sound = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
    _sound.delegate = self;
    _sound.numberOfLoops = -1;
    [_sound play];

请有人可以帮助我怎么办呢?

解决方法 1:

UIApplicationDelegateProtocol有一种方法被称为 applicationWillResignActive:文件说︰

调用此方法来让你知道,它是即将从主动移动到非活动状态的应用程序。这可能发生某些类型的临时中断 (如电话来电或短信) 或当用户退出应用程序,它就开始过渡到背景状态。在非活动状态的应用程序继续运行,但是不发送传入的事件,为抢险救援人员。

应使用此方法来暂停正在进行的任务,禁用计时器,并放慢 OpenGL ES 的帧速率。游戏应该使用此方法来暂停游戏。处于非活动状态的应用程序应该做最小工作,并等待过渡到任一活动或背景状态。

完美的时间来停止音乐 ! AVAudioPlayerstop 方法来停止播放,就像 play 方法开始播放。 你在你音频注释中提到的球员是在 SKScene。 所以我会在你停止音乐的场景上创建一种方法︰

-(void)stopMusic {
    [_player stop];
}

然后调用方法, AppDelegate

-(void)applicationWillResignActive:(UIApplication *)application {
    [scene stopMusic];    //scene is your SKScene subclass
}
官方微信
官方QQ群
31647020