iOS - 以编程方式取消所有声音/音乐?

时间:2014-07-31 01:09:32

标签: ios audio sprite-kit

我正在使用Xcode的精灵套件开发iPhone游戏,并想知道是否有一种简单或最佳实践方法以编程方式取消所有声音效果/音乐?对我来说最明显的方法是创建一些布尔变量“isSoundAllowed”并在用户在我的游戏中打开/关闭声音时将其设置为true / false,但我想学习更好的技术(如果可用)。谢谢!

P.S:以下是1)声音和2)音乐:

1)

_ActionExplodeSound = [SKAction playSoundFileNamed:@"explosion.wav" waitForCompletion:NO];

2)

-(void)playBackgroundMusic
{
NSError *error;
NSURL *backgroundMusicURL = [[NSBundle mainBundle] URLForResource:@"backgroundMusic.mp3" withExtension:nil];
_backgroundMusicPlayer=[[AVAudioPlayer alloc] initWithContentsOfURL:backgroundMusicURL error:&error];
_backgroundMusicPlayer.numberOfLoops = -1;
[_backgroundMusicPlayer play];
}

编辑:实际上我可以使用[_backgroundMusicPlayer stop];停止音乐,但有一个简单的方法来禁用所有声音效果(我有超过我在#1中列出但它们属于同一类型)?

1 个答案:

答案 0 :(得分:0)

到目前为止我的解决方案是这样的,但我相信这样做更好/更紧凑:

-(void)toggleSound
{
BoolSoundEnabled=!BoolSoundEnabled;
if (BoolSoundEnabled==TRUE) {
    _ActionExplodeSound = [SKAction playSoundFileNamed:@"explosion.wav" waitForCompletion:NO];
    [_backgroundMusicPlayer play];
} else if (BoolSoundEnabled==FALSE) {
    _ActionExplodeSound=Nil ;
    [_backgroundMusicPlayer stop];
}

}