2011-12-29 2 views
0

Я создаю приложение, которое включает в себя измеритель уровня звука (пользователь носит контактный или горловой микрофон). Я использую (устаревшее) пользовательский класс SCListener который использует AudioQueue и извлекает значение kAudioQueueProperty_CurrentLevelMeter, которое представляет собой значение в диапазоне от 0 до 1.Настройка усиления/чувствительности аудиофона iPhone

Моя проблема заключается в том, что при нормальном уровне использования, значение kAudioQueueProperty_CurrentLevelMeter уже достиг 1,0 - то, что я надеюсь сделать, - dampen или уменьшить чувствительность входного микрофона, чтобы крик или действительно громкий крик регистрировались как 1.0 вместо обычного разговора.

Через мой поиск Я видел некоторое обсуждение аудио единиц, но не нашел никакой документации или примеров, которые я смог понять.

Есть ли способ уменьшить чувствительность или усиление или линию ввода в приложении? Любая помощь очень ценится!

ответ

0

В настоящее время нет открытого API для ручной настройки усиления микрофонного входа на устройствах iOS.

В качестве альтернативы вы можете настроить звуковую очередность или аудиоустройство RemoteIO, проанализировать образцы PCM, которые вы найдете в буферах обратного вызова, и вычислить собственные амплитудные огибающие (или спектрально взвешенные амплитуды и т. Д.) И масштабировать, как вы пожелаете. Но это после выборки микрофонного ввода.

+0

Это позволило бы мне измерить больший объем ввода, чем max, используя kAudioQueueProperty_CurrentLevelMeter или AVAudioRecorder peakValue, или это будет эффективно одинаково? (то есть будет ли уровень ввода уже превышен, прежде чем анализировать образцы PCM)? – chrisgilpin

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

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