AudioRecord - wie bekomme ich Daten in den Puffer?

Ich' m haben einige Probleme mit AudioRecord-Klasse. Ich möchte zum speichern von aufgezeichneten Daten in einem Puffer, aber ich' m nicht sicher was ist der richtige Weg, das zu erreichen. Ich ging durch die große Anzahl der Beispiele, aber die meisten von Ihnen wurden dadurch erschwert und für viele verschiedene Ansätze. Ich' m auf der Suche für einfache oder zu einfache Erklärung.

Hier meine audio-Einstellungen 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' m versuchen, um eine Aufnahme-Funktion:

public void Recording() {
    audioRecorder.startRecording();
    ...
    audioRecorder.stop();
    audioRecorder.release();
}

Ich weiß, dass ich' m nutzen soll .Lesen(short[] von Audiodateien, int offsetInShorts, int sizeInShorts) - Funktion. Und hier meine Probleme starten. Ich' m nicht sicher, wie Sie Sie von Audiodateien Puffer funktioniert - ich nehme an, die Funktion setzt den gespeicherten samples in das von Audiodateien. Was passiert, wenn es vollständig mit Daten gefüllt? Es beginnt das umschreiben von den frühesten position? Wenn es nicht, ich glaube, ich habe das kopieren aller gesammelten Proben irgendwo sonst. Es wirft eine weitere Frage - wie kann ich überprüfen, ob .Lesen (...) - Funktion Puffer bereits voll ist? Brauche ich, um die Zeit zu Messen und kopieren von Puffer-Inhalten oder gibt es einen anderen Weg, um zu erreichen, dass? Auch brauche ich zum erstellen von einem thread für die ganze Aufnahme-Betrieb?

Sorry für die Fragen, so viele Fragen in einem Thema 🙂

InformationsquelleAutor Arxas | 2012-11-21
Schreibe einen Kommentar