Нужно ли мне иметь дело с аудиоустройствами, когда мне нужны настраиваемые звуковые эффекты, или я могу положиться на Audio Queue Services?

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

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


person Proud Member    schedule 20.01.2012    source источник


Ответы (2)


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

Если честно, работать с AudioUnit было намного проще.

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

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

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

Остановка и быстрое воспроизведение AudioQueue

person Max MacLeod    schedule 20.01.2012
comment
+1. Довольно успешно использую AudioUnit. Как только у вас будет готовый шаблонный код настройки AU, вам больше не нужно его смотреть. Практически все происходит в методе обратного вызова, который полностью находится под вашим контролем. - person Tim; 20.01.2012

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

person hotpaw2    schedule 20.01.2012