Выберите Аудиоустройство на iPhone

Существует ли способ позволить пользователю выбрать, какое устройство они используют для аудиовыхода?

В документах я нашел, что можно выбрать который маршрут использовать путем установки kAudioSessionProperty_OverrideAudioRoute к также:

  • kAudioSessionOverrideAudioRoute_None, или
  • kAudioSessionOverrideAudioRoute_Speaker

Однако я хотел бы позволить пользователю для использования их гарнитуры Bluetooth для слушания аудио.

Если Вы смотрите в собственном приложении 'Голосовых заметок' Apple, в меню воспроизведения существует кнопка в верхнем левом, которое позволяет Вам выбрать который аудиоустройство использовать. Когда гарнитура Bluetooth присоединяется, нажимание кнопки поднимает меню, которое позволяет выбрать между:

  • Гарнитура Bluetooth
  • iPhone
  • Динамик

Существует ли способ достигнуть этой функциональности с помощью стандартных API Apple в моем собственном приложении?

8
задан pheelicks 7 July 2010 в 09:45
поделиться

2 ответа

В версии 3.1 есть два протокола, которые поддерживают передачу звука на устройства bluetooth, и их использование зависит от аксессуара. Первый - A2DP, который используется с аксессуарами, поддерживающими прием стерео музыки, а второй - hands free для всех аксессуаров handsfree. Чтобы активировать первый вариант, вам нужно использовать класс MPVolumeView, который имеет ползунок громкости и кнопку выбора аудиоустройства, когда это представление добавляется к любому представлению в приложении, оно предоставляет пользователю возможность установить громкость и выбрать BT-устройство, если оно подключено (это единственный способ, который я нашел). С другой стороны, второй вариант может быть активирован с помощью вызова

 UInt32 bt = TRUE;
 result = AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryEnableBluetoothInput , sizeof(UInt32), &bt);

Приложение должно инициализировать аудио сессию и использовать corect catagory (оно должно поддерживать перекодирование, чтобы это работало). После установки EnableBluetoothInput все входные и выходные аудиосигналы будут направляться через устройство громкой связи (если оно подключено, конечно :))

.
13
ответ дан 5 December 2019 в 12:54
поделиться