2016-07-07 4 views
3

Это две части вопрос:Аудио визуализации сигнала в быстрой

Использование AVAudioRecorder возможно иметь сигнал реагировать на входящее аудио в реальное время подобно тому, что происходит, когда вы активируете Siri на Iphone. Возможно, используя averagePowerForChannel?

Кроме того, есть ли способ собрать звуковые образцы записи, чтобы отобразить форму волны?

Я знаю, что новокаин существует, но я надеялся не использовать рамки.

ответ

1

Не представляется возможным использовать AVAudioRecorder сам по себе.

Альтернативой может быть использование AVCaptureSession с AVCaptureAudioDataOutput, который обеспечивает доступ к необработанному звуковому буферу, из которого можно считывать волновую форму.

Большая часть обработки будет сделано в делегат:

func captureOutput(AVCaptureOutput!, didOutputSampleBuffer: CMSampleBuffer!, from: AVCaptureConnection!) 

Вы, вероятно, потребуется реализовать какую-то дросселирования только процесс каждый N-ый образец, чтобы ваш код визуализатор не мешает аудио ,

AVCaptureSession гораздо более рудиментарный по сравнению с AVAudioRecorder - это не дает каких-либо записи объектов сам по себе, например, и поэтому, если вы хотите записывать звук, который вы должны были бы использовать AVAssetWriter для сохранения образцов.

Этот вопрос SO показывает, как получить доступ к буферам выборки. Он использует AVAssetReader для загрузки файла, но делегат точно так же, как можно было бы использовать для обработки в реальном времени: Reading audio samples via AVAssetReader

+0

Можно ли использовать 'AVAudioRecorder' для записи и' 'AVCaptureSession' с AVCaptureAudioDataOutput' для аудио обработки? – Brosef

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