Ich habe ein Projekt für Android lesen ein short[]
Array mit PCM-Daten von Mikrofon-Puffer für Live-Analyse. Ich muss diese Funktionalität in iOS Swift konvertieren. In Android ist es sehr einfach und sieht wie folgt aus ..IOS Swift PCM-Puffer lesen
import android.media.AudioFormat;
import android.media.AudioRecord;
...
AudioRecord recorder = new AudioRecord(MediaRecorder.AudioSource.DEFAULT, someSampleRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, AudioRecord.getMinBufferSize(...));
recorder.startRecording();
später las ich den Puffer mit
recorder.read(data, offset, length); //data is short[]
(Das ist, was ich suche)
Dokumentation: https://developer.android.com/reference/android/media/AudioRecord.html
Ich bin sehr neu in Swift und iOS. Ich habe eine Menge Dokumentation über AudioToolkit gelesen, ... Core und was auch immer. Alles, was ich gefunden habe, ist C++/Obj-C und Bridging Swift Header-Lösungen. Das ist viel zu fortgeschritten und für mich veraltet.
Vorerst kann ich PCM-Daten in eine CAF-Datei mit AVFoundation
settings = [
AVLinearPCMBitDepthKey: 16 as NSNumber,
AVFormatIDKey: Int(kAudioFormatLinearPCM),
AVLinearPCMIsBigEndianKey: 0 as NSNumber,
AVLinearPCMIsFloatKey: 0 as NSNumber,
AVSampleRateKey: 12000.0,
AVNumberOfChannelsKey: 1 as NSNumber,
]
...
recorder = try AVAudioRecorder(URL: someURL, settings: settings)
recorder.delegate = self
recorder.record()
lesen Aber das ist nicht das, was ich suche (oder?). Gibt es eine elegante Möglichkeit, die oben beschriebene Android read
Funktionalität zu erreichen? Ich brauche ein Sample-Array aus dem Mikrofonpuffer. Oder muss ich die aufgezeichnete CAF-Datei lesen?
Vielen Dank! Bitte helfen Sie mir mit einfachen Erklärungen oder Codebeispielen. iOS Terminologie ist meins noch nicht ;-)
ich beim Lesen eines kurzen Kern geschrieben Audio Samples mit der RemoteIO Audio Unit in Swift 2 hier: https://gist.github.com/hotpaw2/ba815fc23b5d642705f2b1dedfaf0107 – hotpaw2