静音按钮不会使AVAudioPlayer静音

时间:2012-02-19 03:24:38

标签: ios iphone avaudioplayer avaudiosession

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

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

我知道在iOS 5中无法以编程方式找出是否按下了静音按钮。

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

有什么想法吗?

3 个答案:

答案 0 :(得分:25)

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

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
然后我将其改为

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

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

答案 1 :(得分:0)

swift 3.0的2美分:

let sharedSession = AVAudioSession.sharedInstance()

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

或更简单:

try? sharedSession.setCategory(AVAudioSessionCategoryAmbient)

答案 2 :(得分:0)

来自docs

enter image description here

因此,基本上,您只需要找出适合您的音频会话类别即可。