Проблемы с динамиками и Bluetooth с расширением ReplayKit Broadcast - PullRequest
0 голосов
/ 04 июля 2019

У меня проблемы с динамиком, использующим iOS ReplayKit Broadcast Extension для записи всего пользовательского интерфейса системы.

Слова Apple: Динамик = громкоговоритель, Приемник = удержание телефонана ухо.

В соответствии со стандартом Apple, вы объявляете свое аудио сеанс, используя AVAudioSession.В нашем случае мы делаем видеочат, в котором по умолчанию используется громкая связь, когда гарнитура отсутствует (например, поддержка сеанса записи всего пользовательского интерфейса во время чата).

Если мы не задаем категорию с помощью defaultToSpeaker,по умолчанию используется приемник.

AVAudioSession.sharedInstance().setCategory(
    .playAndRecord,
    mode: .videoChat,
    policy: .default,
    options: [.defaultToSpeaker, .mixWithOthers]

Но когда я это делаю, гарнитуры Bluetooth перестают работать.Если я начну использовать динамик, а затем подключу свои AirPods, Broadcast Extension продолжит использовать динамик.(Проводные гарнитуры всегда работают)

Если я этого не сделаю setCategory, идет сеанс по умолчанию, но по умолчанию используется только приемник.

Похоже, это ошибка Apple.Фактически это означает, что мы должны выбрать либо поддержку Bluetooth-гарнитур , либо , чтобы иметь динамик при отключении гарнитуры.

Я пытался вручную использовать AVAudioSession.sharedInstance().overrideOutputAudioPort(.speaker), но этот вызов, похоже, ничего не делаетв контексте Broadcast Extension.

Кто-нибудь нашел обходной путь для этого?

Редактировать: Ошибка файла с яблоком: FB6485225 (openradar пока не может обработать помощник по обратной связи)

...