静音按钮不会静音 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的主要内容,如果未能解决你的问题,请参考以下文章