我正在编写一个小小的SpriteKit游戏,我想添加一个静音按钮,以便您在玩游戏时可以听到自己的音乐。目前我只是停止静音按钮所在场景的音频播放(主菜单)。但是,即使音频播放停止,我的游戏仍会自动停止用户音乐。我该如何防止这种情况?
另外,我想将按下静音按钮(位于主菜单中)的信息传递给我的游戏场景,这样我也可以将音乐静音,我该怎么做? 基本上我如何将变量值从一个场景传递到另一个场景?
答案 0 :(得分:1)
我刚才做的是检查iPod播放器是否正常工作并优先考虑游戏音乐。 (即检查iPod是否正在播放以实际启动游戏音乐,因为如果您使用AVAudioPlayer,iPod音乐播放器通常会覆盖您的游戏音乐。
+ (bool) IsIpodPlaying{
if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying
|| [[MPMusicPlayerController applicationMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying){
NSLog(@"iPod IS playing");
return true;
}else{
NSLog(@"iPod NOT playing");
return false;
}
}
显然你可以为你的静音按钮做同样的事情。如果正在播放iPod,请忽略任何操作,否则请停止播放您的游戏音乐。
要在按下静音按钮时传递信息,您可以(按个人喜好的顺序):
userDidEnableSound:
)NSNotificationCenter
发送通知,然后在菜单中等待。