Отключить в приложении звуки - PullRequest
1 голос
/ 09 августа 2010

У меня есть вопрос относительно звуков в моем приложении.Мне нужно, чтобы пользователь мог отключить все звуки, исходящие из моей игры, например, если он просто хочет слушать ipod во время игры.Здесь есть похожий вопрос Отключить все звуки программы , но, похоже, нет ответа.На данный момент у меня AVAudioSession установлен в AVAudioSessionCategoryAmbient, который позволяет ipod играть, а также позволяет моему приложению воспроизводить игровые звуки.Является ли лучший способ достичь моей цели - просто установить логическое значение при нажатии кнопки отключения звука и проверять это каждый раз при воспроизведении звука?Это кажется немного неловким, хотя это сработало бы ... есть идеи, пожалуйста?

Большое спасибо

Жюль

Ответы [ 2 ]

0 голосов
/ 09 августа 2010

Put isMuted в пользовательских значениях по умолчанию

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isMuted"]) {
    playSound()....
}

для отключения звука:

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isMuted"];

Если вы позвоните по следующему номеру, он запишет настройки на диск и запомнит, что пользователь делал в прошлый раз:

[[NSUserDefaults standardUserDefaults] synchronize];
0 голосов
/ 09 августа 2010

Если iPod запускается в начале игры, вы можете отключить звук автоматически.

Например,

UInt32 userPlayback;
UInt32 propertySize = sizeof(userPlayback);
AudioSessionGetProperty(
    kAudioSessionProperty_OtherAudioIsPlaying,
    &propertySize, &userPlayback);
BOOL userMusicPlaying = (userPlayback != 0);

Тогда, если userMusicPlaying имеет значение YES, не позволяйте звукам воспроизводиться.,(Также можно добавить переключатель, который позволяет воспроизводить звуки даже при воспроизведении на iPod.) В противном случае, я не думаю, что есть способ отключить звуки без вас или без их отключения пользователем.

...