Ich habe einige Probleme mit AudioRecord Klasse. Ich möchte aufgezeichnete Daten in einem Puffer speichern, aber ich bin mir nicht sicher, was der richtige Weg ist, um das zu erreichen. Ich habe eine große Anzahl von Beispielen durchgespielt, aber die meisten waren kompliziert und repräsentierten viele verschiedene Ansätze. Ich suche nach einer einfachen oder einfachen Erklärung.AudioRecord - Wie bekomme ich Daten in den Puffer?
Hier sind meine Audioeinstellungen für mein Projekt:
int audioSource = AudioSource.MIC;
int sampleRateInHz = 8000;
int channelConfig = AudioFormat.CHANNEL_IN_MONO;
int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
int bufferSizeInBytes = AudioRecord.getMinBufferSize(sampleRateInHz, channelConfig, audioFormat);
short[] buffer = new short[bufferSizeInBytes];
AudioRecord audioRecorder = new AudioRecord(audioSource,
sampleRateInHz,
channelConfig,
audioFormat,
bufferSizeInBytes);
Ich bin versucht, eine Aufnahmefunktion zu erstellen:
public void Recording() {
audioRecorder.startRecording();
...
audioRecorder.stop();
audioRecorder.release();
}
Ich weiß, dass Ich soll (kurz verwenden .mehr [] Funktion audioData, int offsetInShorts, int sizeInShorts). Und hier fangen meine Probleme an. Ich bin mir nicht sicher, wie AudioData Buffer funktioniert - ich nehme an, Funktion legt aufgezeichnete Samples in die AudioData. Was passiert, wenn es vollständig mit Daten gefüllt ist? Es fängt an, von der frühesten Position neu zu schreiben? Wenn es das tut, glaube ich, dass ich alle gesammelten Samples irgendwo anders kopieren muss. Es wirft eine andere Frage auf - wie kann ich überprüfen, ob .read (...) Funktionspuffer bereits voll ist? Muss ich die Zeit messen und Pufferinhalte kopieren, oder gibt es eine andere Möglichkeit, das zu erreichen? Muss ich auch einen Thread für den gesamten Aufzeichnungsvorgang erstellen?
Sorry für so viele Fragen in einem Thema zu fragen :)
Was ist ** qArray ** hier? – OnePunchMan
könnte die Arraylist. Ich konnte mich nicht erinnern. Besser, dieses Beispiel zu verweisen http://stackoverflow.com/questions/8499042/android-audioorecord-example/13487250#13487250 –