#iphone #audio #audiounit #mpmusicplayercontroller
#iPhone #Аудио #аудиоустройство #mpmusicplayercontroller
Вопрос:
Мое приложение использует AudioUnit
функциональность для создания коротких звуков для приложения metronome. Все работает нормально.
Теперь я хочу воспроизвести MP3 из библиотеки iTunes на устройстве, и я использую MPMusicPlayerController
для этого.
Пока проблем нет, MP3 воспроизводится нормально. Но после этого я больше никогда не смогу вызывать свои AudioUnit
звуки. Я отладил это так далеко, что обратный вызов для аудиобуферов больше никогда не появляется, поэтому я думаю, что AUGraph
был остановлен, но это сигнализирует о том, что он все еще работает.
У кого-нибудь есть идея? MPMusicPlayerController
Просто остановил график? И как это предотвратить?
Спасибо за любую подсказку, Андреас
Ответ №1:
Из этого документа, «Музыкальные проигрыватели (экземпляры класса MPMusicPlayerController) всегда используют системный аудиосеанс». Насколько я знаю, ваше приложение не может получить доступ к системным аудиосессиям. Следовательно, одновременное воспроизведение звука MPMusicPlayerController и вашего приложения невозможно.
Для одновременного воспроизведения MP3 из библиотеки iPod и вашего метронома выполните следующие действия:
- Настройте AUGraph с собственной аудиосессией
- Прочитайте образцы MP3 с помощью AVAssetReader
- Передавайте сэмплы на ваш AUGraph по одному каналу
- Микшируйте звук метронома на другом канале