Scheint nicht möglich mit AVAudioRecorder
von selbst.
Eine Alternative wäre AVCaptureSession
mit einer AVCaptureAudioDataOutput
, die Zugriff auf den Raw-Audio-Puffer bietet, von dem die Wellenform gelesen werden kann.
Der größte Teil der Verarbeitung würde in dem Delegierten erfolgen:
func captureOutput(AVCaptureOutput!, didOutputSampleBuffer: CMSampleBuffer!, from: AVCaptureConnection!)
Sie wahrscheinlich brauchen würde, eine Art Drosselung nur Prozess jeden N-ten Probe zu implementieren, so dass Ihre visualiser Code nicht mit dem Audio nicht stört .
AVCaptureSession
ist weit mehr rudimentär im Vergleich zu AVAudioRecorder
- es keine Aufnahmeeinrichtungen zum Beispiel selbst liefert, und so, wenn Sie den Ton auch aufzeichnen wollten würden Sie ein AVAssetWriter
verwenden müssen, um die Proben zu speichern.
Diese SO-Frage zeigt, wie auf die Beispielpuffer zugegriffen wird. Es verwendet AVAssetReader
eine Datei zu laden, aber die Delegierten ist genau das gleiche, wie es für Echtzeit-Verarbeitung verwendet werden: Reading audio samples via AVAssetReader
Wäre es möglich, 'AVAudioRecorder' für die Aufnahme zu verwenden und' AVCaptureSession' mit 'AVCaptureAudioDataOutput' für die Audio-Verarbeitung? – Brosef