Вход AudioSession с выхода Bluetooth на линейный выход или динамик

После настройки аудио сеанса следующий код разрешает ввод через Bluetooth.

UInt32 allowBluetoothInput = 1;
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryEnableBluetoothInput, sizeof (allowBluetoothInput), &allowBluetoothInput);

Этот код выглядит так, как будто он позволяет только ввод через Bluetooth, однако этот код также направляет вывод звука на устройство Bluetooth (в случае гарнитуры Bluetooth). Я хотел бы направить аудиовыход из линейного выхода или динамика, когда вход поступает от устройства Bluetooth. Я просто хочу получить аудио вход от устройства Bluetooth, я не хочу выводить звук через Bluetooth.

Возможно ли такое поведение?

1 ответ

Решение

С iOS 5 такое поведение невозможно, цитируя Apple техподдержка

Устройства Bluetooth не являются устройствами "Jacked In" и, следовательно, любая другая аудио-маршрутизация должна быть выбрана пользователем и не может быть изменена в коде. Для этого вы можете использовать функциональность MPVolumeView, которая будет иметь дополнительный видимый виджет маршрутизации, позволяющий пользователю указать маршрутизацию вывода.

В списке рассылки Core Audio есть более старая тема, касающаяся этой функции, но поведение не изменилось:

http://lists.apple.com/archives/coreaudio-api/2009/Oct/msg00030.html

MPVolumeView ссылка:

http://developer.apple.com/library/ios/#documentation/mediaplayer/reference/MPVolumeView_Class/Reference/Reference.html

Однако MPVolumeView не позволяет вам направлять ввод и вывод независимо.

Другие вопросы по тегам