iOS - программно отменить все звуки/музыку?

Я разрабатываю игру для iPhone, используя набор спрайтов Xcode, и мне было интересно, существует ли простой или передовой метод программной отмены всех звуковых эффектов/музыки? Самый очевидный метод для меня - создать некоторую логическую переменную "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, но они одного типа)?


person user3797886    schedule 31.07.2014    source источник


Ответы (1)


Мое решение до сих пор таково, но я уверен, что это лучше/компактнее:

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

}
person user3797886    schedule 31.07.2014