iphone - 在应用程序声音中禁用

标签 iphone cocoa-touch avaudioplayer

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

非常感谢

朱尔斯

最佳答案

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

例如,

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

然后如果 userMusicPlaying 为 YES,则不要播放声音。 (还可以考虑添加一个开关,让 即使在播放 iPod 时也能播放声音。)否则,我认为如果您或用户不禁用声音,就没有办法禁用它们。

关于iphone - 在应用程序声音中禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3441504/

相关文章:

cocoa - 只有在没有关系的情况下才正确处理对象的删除?

ios - AVAudioPlayer 实例的过度释放

ios - 无法在 iOS 中播放 amr 音频文件

ios - 如何解决xcode中的循环依赖错误

iphone - 两个不同的 ManagedObjects 和一个 SQLite 数据库?

ios - VoiceOver 的双指滑动手势不起作用

iphone - 如何将 MPMusicPlayerController 与 AVAudioPlayer 一起使用

iphone - AVCaptureStillImageOutput 中的 UIImage 方向不正确

ios - 我如何向 CoreData 指示对象已更改?

iphone - 更改 TableView 标题文本颜色