12

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

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

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

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

任何想法?

4

3 回答 3

26

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

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

然后我把它改成

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

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

于 2012-02-19T03:46:37.807 回答
1

来自文档

在此处输入图像描述

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

于 2019-05-24T21:15:55.473 回答
0

swift 3.0 我的 2 美分:

let sharedSession = AVAudioSession.sharedInstance()

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

或更简单:

try? sharedSession.setCategory(AVAudioSessionCategoryAmbient)
于 2017-02-05T11:35:55.573 回答