AudioUnits и MPMusicPlayerController - PullRequest
2 голосов
/ 05 ноября 2011

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

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

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

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

Спасибо за любую подсказку, Andreas

1 Ответ

2 голосов
/ 28 ноября 2011

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

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

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