我正在开发的音乐应用程序,只是播放歌曲的应用程序。现在我连接蓝牙扬声器播放。所以我设置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")
}
}
我在AppDelegate
中调用这个函数。
但是如果我把setCategory
改成audioSession.setCategory(AVAudioSessionCategoryPlayback)
,它的工作就很好了。
有人知道这个代码有什么问题吗?
谢谢
3条答案
按热度按时间58wvjzkj1#
根据文件https://developer.apple.com/documentation/avfoundation/avaudiosession/categoryoptions/1616518-allowbluetooth
仅当音频会话类别为playAndRecord或record时,才可以设置此选项。
如果使用allowBluetooth,则无法使用
AVAudioSessionCategoryPlayback
希望对大家有帮助
wbgh16ku2#
您不能将所有类别与所有选项混合使用。如here所述,您只能将
.allowBluetooth
与playAndRecord
或record
类别一起使用。因此,我建议您尝试得双曲余切值.
sshcrbum3#
虽然answer above在此特定情况下是正确的(由于
.allowBluetooth
选项),但出现'what'错误还有另一个可能的原因:呼叫
setCategory
时,AVAudioSession
可能正在播放或录制。请确定工作阶段已停止,然后再设定类别。