Не представляется возможным использовать AVAudioRecorder
сам по себе.
Альтернативой может быть использование AVCaptureSession
с AVCaptureAudioDataOutput
, который обеспечивает доступ к необработанному звуковому буферу, из которого можно считывать волновую форму.
Большая часть обработки будет сделано в делегат:
func captureOutput(AVCaptureOutput!, didOutputSampleBuffer: CMSampleBuffer!, from: AVCaptureConnection!)
Вы, вероятно, потребуется реализовать какую-то дросселирования только процесс каждый N-ый образец, чтобы ваш код визуализатор не мешает аудио ,
AVCaptureSession
гораздо более рудиментарный по сравнению с AVAudioRecorder
- это не дает каких-либо записи объектов сам по себе, например, и поэтому, если вы хотите записывать звук, который вы должны были бы использовать AVAssetWriter
для сохранения образцов.
Этот вопрос SO показывает, как получить доступ к буферам выборки. Он использует AVAssetReader
для загрузки файла, но делегат точно так же, как можно было бы использовать для обработки в реальном времени: Reading audio samples via AVAssetReader
Можно ли использовать 'AVAudioRecorder' для записи и' 'AVCaptureSession' с AVCaptureAudioDataOutput' для аудио обработки? – Brosef