AVAudioSession setCategory всегда возвращать ошибку - PullRequest
0 голосов
/ 29 сентября 2018

Я занимаюсь разработкой музыкального приложения, которое просто воспроизводит песню из приложения.Теперь я подключаю Bluetooth-динамик, чтобы играть.поэтому я устанавливаю категорию 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 в AppDelegate.

Но если я изменю setCategory до audioSession.setCategory(AVAudioSessionCategoryPlayback) все работает нормально.

Кто-нибудь знает, что не так с этим кодом?

Спасибо

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018

Вы не можете смешивать все категории со всеми вариантами.Как уже упоминалось здесь , вы можете использовать .allowBluetooth только с категориями playAndRecord или record.Поэтому я предлагаю вам попробовать

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

.

0 голосов
/ 29 сентября 2018

В соответствии с документами https://developer.apple.com/documentation/avfoundation/avaudiosession/categoryoptions/1616518-allowbluetooth

Вы можете установить эту опцию, только если категория аудио-сеанса - playAndRecord или запись.

с allowBluetooth Вы не можете использовать AVAudioSessionCategoryPlayback

Надеюсь, что это полезно

...