静音按钮不会静音 AVAudioPlayer

Posted

技术标签:

【中文标题】静音按钮不会静音 AVAudioPlayer【英文标题】:The Mute Button Won't Mute AVAudioPlayer 【发布时间】:2012-02-19 03:24:37 【问题描述】:

我需要在我的 iPhone 应用中循环播放一个 .caf 文件。

AVAudioPlayer 看起来很有前途。但是有一个问题。即使我按下 iPhone 上的静音按钮,它也不会停止或静音。

而且我知道在 ios 5 中无法以编程方式确定静音按钮是否被按下。

所以,我需要知道的可能是关于 AVAudioPlayer 或 AVAudioSession 的一些属性。或者,我可能需要考虑使用其他库来循环播放我的 .caf 文件。

有什么想法吗?

【问题讨论】:

【参考方案1】:

我意识到这是因为我有这行代码

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];

然后我改成

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: nil];

然后静音按钮将起作用并停止我的 AVAudioPlayer...

【讨论】:

【参考方案2】:

来自docs:

所以基本上你只需要弄清楚哪个音频会话类别适合你的需要。

【讨论】:

【参考方案3】:

swift 3.0 我的 2 美分:

let sharedSession = AVAudioSession.sharedInstance()

do 
    try sharedSession.setCategory(AVAudioSessionCategoryAmbient)
 catch _
    return false

或更简单:

try? sharedSession.setCategory(AVAudioSessionCategoryAmbient)

【讨论】:

以上是关于静音按钮不会静音 AVAudioPlayer的主要内容,如果未能解决你的问题,请参考以下文章

如何快速制作静音和取消静音按钮?

背景声音的静音/取消静音按钮

html中的音频静音和取消静音按钮

工具栏上的 xcoded 静音按钮可将应用程序的声音静音

想要为全屏视频背景上的音频创建自定义静音/取消静音按钮

自定义静音/取消静音按钮 Youtube API