[英]AVAudioSession setCategory return alway error
我正在開發僅從應用程序播放歌曲的音樂應用程序。 現在我正在連接藍牙揚聲器播放。 所以我正在設置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
的didFinishLaunchingWithOptions
中調用這個 function 。
但是,如果我將setCategory
更改為audioSession.setCategory(AVAudioSessionCategoryPlayback)
它的工作正常。
有誰知道這段代碼有什么問題?
謝謝
僅當音頻會話類別為playAndRecord或record時,才可以設置此選項。
使用allowBluetooth,您無法使用AVAudioSessionCategoryPlayback
希望它有所幫助
您不能將所有類別與所有選項混合使用。 正如提到這里 ,你可以只使用.allowBluetooth
與類別playAndRecord
或record
。 所以我建議你試試
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord,
with: [.allowBluetooth,
.allowBluetoothA2DP])
代替。
雖然上面的答案在這種特殊情況下是正確的(由於.allowBluetooth
選項),但出現“什么”錯誤還有另一個可能的原因:
AVAudioSession
在調用setCategory
時可能正在播放或錄音。 在設置類別之前,請確保 session 已停止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.