2012-04-01 3 views
0

У меня есть приложение, которое использует RemoteIO для обработки ввода-вывода (категория PlayAndRecord), а также включает MPMusicPlayerController.MPMusicPlayerController убивает RemoteIO на iPhone Динамик маршрут

Странная вещь: только на iPhone, когда RemoteIO запущен, а спикер iPhone - это аудиоприложение, запуск воспроизведения в MPMusicPlayerController приведет к событию kAudioSessionBeginInterruption, и мой RemoteIO будет выключен. Музыка iPod (MPMusicPlayerController) продолжает воспроизводиться.

Кажется, что на iPhone, со спикером, RemoteIO и MPMusicPlayerController не могут играть одновременно? На iPad у меня не было проблем работать с RemoteIO и MPMusicPlayerController. На iPhone, если я подключу что-то (наушники, динамики и т. Д.) В гнездо гарнитуры, все будет работать нормально, и оба потока будут работать. Кажется, это только проблема на iPhone, если спикер - это место назначения.

Я переопределяю выход AudioSession на iPhone-динамик (kAudioSessionSetperty_OverrideCategoryDefaultToSpeaker) при обнаружении выхода приемника, это делается для более естественного ожидания для пользователя. Возможно, iPod-плеер тоже делает это.

Я также установил свойство kAudioSessionProperty_OverrideCategoryMixWithOthers в true. Это позволяет проигрывателю iPod (предположительно) играть вместе.

Я написал несколько тестовых кодов для перезапуска моего сеанса RemoteIO позже, и это, в свою очередь, заставит MPMusicPlayerController прекратить воспроизведение. Таким образом, указывает, что назначение говорящего может быть исключительным?

Я также пробовал как с «iPodMusicPlayer», так и с «applicationMusicPlayer» членами MPMusicPlayerController, не было различий в вышеупомянутых результатах между ними.

Любой совет, безусловно, оценили

+0

После дальнейшего тестирования и нахождения этого места для iPhone Speaker будет единственным случайным случаем (iPad отлично работает, гарнитуры работают нормально), я подал ошибку с Apple. – MOK9

ответ

0

Я буду идти вперед и ответить на мой собственный вопрос, так как я думаю, что я понял это. Тем не менее, я не доволен результатами.

Похоже, что MPMusicPlayerController (iPod Player) изменяет Audio Route, независимо от того, какой маршрут использует приложение, которое уже используется для RemoteIO. Как оказалось, это происходит как на iPhone, так и на iPad.

Это может быть легко продемонстрировано:

  • PlugIn USB Audio Input Device
  • Connect BlueTooth Динамики
  • Установка системы IPOD плеер использовать BlueTooth Колонки
  • Launch приложение, которое делает PlayRecord используя RemoteIO с встроенный MPMusicPlayerController
  • Аудиовход/вход (PlayRecord) будет обрабатываться с USB-входа на выход приемника
  • Engage воспроизведения на встроенном MPMusicPlayerController

Результат:

  • маршрут аудио изменится BlueTooth Input/Output
  • песня будет играть на BlueTooth динамиков
  • RemoteIO получит kAudioSessionBeginInterruption
  • Перезапуск RemoteIO поток приведет к остановке MPMusicPlayerController.

Что я хотел бы случиться:

  • MPMusicPlayerController будет просто играть в любой аудио назначения уже используется приложением.

Я добавил свою ошибку Apple с приведенной выше информацией.

Смежные вопросы