Микширование и выравнивание нескольких потоков сжатого звука на iOS

То, что я пытаюсь сделать, это точно так же, как говорится в заголовке, декодировать несколько сжатых аудиопотоков / файлов - они будут извлечены из модифицированного файла MP4 - и одновременно выполнять эквалайзер для них в реальном времени.

Я прочитал большую часть документации Apple.

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

Audio Units, похоже, не имеет компонентов для обработки декомпрессии AAC и MP3 - если я прав, его конвертер обрабатывает только преобразование из одного формата LPCM в другой.

Я пытался найти решение время от времени около полутора месяцев.

Теперь я думаю, использовать сторонний декодер (боже, помоги мне; я понятия не имею, как их использовать, исходный код греческий; о, и есть какие-либо рекомендации? :x), затем загрузите декодированный в LPCM в AudioQueues выполняет эквализацию при обратном вызове.

Может быть, я что-то упускаю здесь. Предложения? :(


person WanderingInLimbo    schedule 11.08.2011    source источник


Ответы (1)


Я все еще пытаюсь понять Core Audio для своих нужд, но насколько я понимаю, вы хотите использовать Расширенные службы аудиофайлов, которые выполняют чтение и сжатие для вас, создавая данные PCM, которые вы затем можете передать в буфер. Пример проекта MixerHost содержит пример использования ExtAudioFileOpenURL. сделать это.

person VictorB    schedule 25.08.2011
comment
Спасибо. Я думаю, что более или менее решил эту проблему с помощью автономного рендеринга Audio Queue. Пробовал сервис аудиоконвертера, но не смог его запустить (получил очень информативную ошибку -50). Теперь мне нужно выяснить, как передать информацию из пользовательского интерфейса в обратный вызов, не сталкиваясь с проблемами из-за того, что они вызывают разные потоки. Я действительно должен обновить этот мой вопрос с ответом. - person WanderingInLimbo; 26.08.2011