在App声音中禁用

时间:2010-08-09 15:19:19

标签: iphone cocoa-touch avaudioplayer

我对我的应用中的声音有疑问。我需要用户能够将来自我游戏的所有声音静音,例如,如果他们只是想在播放时听ipod。这里有一个类似的问题Disable all program sounds但似乎没有答案。目前我将AVAudioSession设置为AVAudioSessionCategoryAmbient,允许ipod播放,但也允许我的应用程序播放游戏声音。实现我的目标是设置一个布尔值的最佳方法,然后单击一个静音按钮并在每次播放声音时检查它?这看起来有点尴尬,虽然它会起作用......有什么想法吗?

非常感谢

2 个答案:

答案 0 :(得分:0)

如果在游戏开始时正在播放iPod,您可以自动静音。

如,

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

然后,如果userMusicPlaying为YES,则不要播放声音。 (考虑还添加一个开关,即使iPod播放,声音播放。)否则,我认为没有办法在没有你或用户禁用声音的情况下禁用声音。

答案 1 :(得分:0)

将isMuted放在用户默认值

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

静音:

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

如果您调用以下内容,它会将设置写入磁盘并记住用户上次执行的操作:

[[NSUserDefaults standardUserDefaults] synchronize];
相关问题