Аудиоустройства и MPMusicPlayerController

#iphone #audio #audiounit #mpmusicplayercontroller

#iPhone #Аудио #аудиоустройство #mpmusicplayercontroller

Вопрос:

Мое приложение использует AudioUnit функциональность для создания коротких звуков для приложения metronome. Все работает нормально.

Теперь я хочу воспроизвести MP3 из библиотеки iTunes на устройстве, и я использую MPMusicPlayerController для этого.

Пока проблем нет, MP3 воспроизводится нормально. Но после этого я больше никогда не смогу вызывать свои AudioUnit звуки. Я отладил это так далеко, что обратный вызов для аудиобуферов больше никогда не появляется, поэтому я думаю, что AUGraph был остановлен, но это сигнализирует о том, что он все еще работает.

У кого-нибудь есть идея? MPMusicPlayerController Просто остановил график? И как это предотвратить?

Спасибо за любую подсказку, Андреас

Ответ №1:

Из этого документа, «Музыкальные проигрыватели (экземпляры класса MPMusicPlayerController) всегда используют системный аудиосеанс». Насколько я знаю, ваше приложение не может получить доступ к системным аудиосессиям. Следовательно, одновременное воспроизведение звука MPMusicPlayerController и вашего приложения невозможно.

Для одновременного воспроизведения MP3 из библиотеки iPod и вашего метронома выполните следующие действия:

  1. Настройте AUGraph с собственной аудиосессией
  2. Прочитайте образцы MP3 с помощью AVAssetReader
  3. Передавайте сэмплы на ваш AUGraph по одному каналу
  4. Микшируйте звук метронома на другом канале