Как получить объем данных с устройства ввода в Core-Audio? - PullRequest
1 голос
/ 09 июля 2010

Я пытаюсь получить громкость звука, слышимого устройством ввода, использующим Core-Audio.

До сих пор я использовал AudioDeviceAddIOProc и AudioDeviceStart с моей функцией AudioDeviceIOProc для получения входных данных в виде AudioBufferList, содержащего AudioBuffer s.

Как получить объем данных из AudioBuffer? Или я поступаю совершенно неправильно?

1 Ответ

1 голос
/ 28 июля 2010

В Mac OS X 10.5 упомянутые вами API устарели, и вам следует прочитать Техническую записку TN2223.

В любом случае, предполагая, что вы получаете буферы линейных данных выборки PCM в 32-битном формате с плавающей запятой, вам просто нужно написать цикл for, который определяет fabs (y) каждой выборки, а затем принимает максимумвсе эти ценности.Затем вы можете сохранить это значение или преобразовать его в децибелы.

...