Выберите аудиоустройство на iPhone - PullRequest
8 голосов
/ 07 июля 2010

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

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

  • kAudioSessionOverrideAudioRoute_None или
  • kAudioSessionOverrideAudioRoute_Speaker

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

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

  • Bluetooth-гарнитура
  • iPhone
  • Громкоговоритель

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

Ответы [ 3 ]

13 голосов
/ 14 июля 2010

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

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

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

1 голос
/ 02 апреля 2013

Самый простой способ - это добавить элемент управления MPVolume ( ссылка на документацию ) в ваш пользовательский интерфейс и установить showsVolumeSlider = NO и showsRouteButton = YES.

У пользователя будет кнопка маршрутизации для направления звука на выбранное устройство.

0 голосов
/ 15 июля 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...