2012-01-20 5 views
3

С моей точки зрения, Audio Queue Services - это API более высокого уровня, чем аудиоустройства, в которых используются аудиоустройства. OpenAL также использует аудиоустройства. Таким образом, Audio Units является самым низким уровнем аудио API в iOS.Нужно ли мне иметь дело с аудиоустройствами, когда мне нужны пользовательские звуковые эффекты или я могу полагаться на службы очереди аудио?

Мне нужно записать звук, а затем применить специальный фильтр к аудиопотоку и воспроизвести его. Службы Audio Queue, похоже, хороши для записи, и их также можно использовать для воспроизведения. Но я все еще не уверен в том, что они могут использовать собственные алгоритмы для аудиопотока, например, аудиоустройство AURemoteIO.

ответ

5

Из моего личного, а иногда и болезненного опыта, я бы сказал, используя AudioQueue для приложений с потоковым типом. Для чего угодно, используйте AudioUnit. Последний, возможно, более низкий уровень, но я не видел большой разницы в сложности.

Чтобы быть честным, AudioUnit казался намного более простым для работы.

Теоретически, с помощью AudioUnit вы можете использовать другие плагины для применения эффектов. Однако до тех пор, пока IOS 5 AURemoteIO не станет единственным доступным AudioUnit. Видимо, с iOS 5 больше. У меня еще не было возможности проверить.

Если вы делаете это вручную, запустив алгоритм против буферов, вы сможете найти довольно много кода DSP с открытым исходным кодом. Есть также коммерческие приложения. Одна действительно хорошая библиотека - это Dirac DSP lib для изменения высоты тона и растяжения времени.

Вот отличный учебник по использованию AURemoteIO в ответ на это другой вопрос:

Stopping and Quickly Replaying an AudioQueue

+1

+1. Я пользуюсь AudioUnit довольно счастливо. После того, как вы установили код настройки CAD-схемы, вам больше не нужно смотреть на него. Почти все происходит в методе обратного вызова, который полностью находится под вашим контролем. –

1

Если вы записываете и сохраняете несжатый звук, вы можете применять свои собственные аудиоэффекты непосредственно к захваченному звуковому буферу или файлу за пределами использования любого аудио API. Затем воспроизведите результат с использованием любого API аудио iOS.

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

  • Нет связанных вопросов^_^