簡體   English   中英

AVAudioSession setCategory 總是返回錯誤

[英]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")
    }
}

我在AppDelegatedidFinishLaunchingWithOptions中調用這個 function 。

但是,如果我將setCategory更改為audioSession.setCategory(AVAudioSessionCategoryPlayback)它的工作正常。

有誰知道這段代碼有什么問題?

謝謝

根據文檔https://developer.apple.com/documentation/avfoundation/avaudiosession/categoryoptions/1616518-allowbluetooth

僅當音頻會話類別為playAndRecord或record時,才可以設置此選項。

使用allowBluetooth,您無法使用AVAudioSessionCategoryPlayback

希望它有所幫助

您不能將所有類別與所有選項混合使用。 正如提到這里 ,你可以只使用.allowBluetooth與類別playAndRecordrecord 所以我建議你試試

try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord,
                                                        with: [.allowBluetooth,
                                                               .allowBluetoothA2DP])

代替。

雖然上面的答案在這種特殊情況下是正確的(由於.allowBluetooth選項),但出現“什么”錯誤還有另一個可能的原因:

AVAudioSession在調用setCategory時可能正在播放或錄音。 在設置類別之前,請確保 session 已停止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM