我正在开发音乐应用程序,该应用程序仅播放应用程序中的歌曲。现在我正在连接蓝牙扬声器播放。因此,我正在设置AVAudioSession
类别,但它将始终返回错误。
代码:
func setupSessionForPlaying() {
let audioSession = AVAudioSession.sharedInstance()
do {
try audioSession.setCategory(AVAudioSessionCategoryPlayback, with: [.allowBluetooth])
try audioSession.setActive(true)
} catch {
fatalError("Error Setting Up Audio Session")
}
}
我在didFinishLaunchingWithOptions
的{{1}}中调用此函数。
但是如果我将AppDelegate
更改为setCategory
,则可以正常工作。
有人知道这段代码有什么问题吗?
谢谢
答案 0 :(得分:4)
仅当音频会话类别为playAndRecord或record时,您才可以设置此选项。
使用 allowBluetooth 不能使用AVAudioSessionCategoryPlayback
希望这会有所帮助
答案 1 :(得分:2)
您不能将所有类别与所有选项混合使用。如上所述,here只能将.allowBluetooth
用于类别playAndRecord
或record
。所以我建议您尝试
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord,
with: [.allowBluetooth,
.allowBluetoothA2DP])
相反。