23 Stimmen

Aufnehmen von Audiodateien in Android

Ich arbeite mit Android. Wie kann ich eine Audiodatei über das Mikrofon aufnehmen und wie kann ich die aufgenommene Datei im Emulator speichern?

25voto

krupa parekh Punkte 500

Es ist einfach, unter Android Audio aufzunehmen. Was Sie tun müssen, ist:

1) Erstellen Sie das Objekt für die Klasse "Mediensatz": MediaRecorder recorder = new MediaRecorder();

2) Im Emulator können Sie die aufgezeichneten Daten nicht im Speicher ablegen, sondern müssen sie auf der SD-Karte speichern. Prüfen Sie also zunächst, ob die SD-Karte verfügbar ist, und starten Sie dann die Aufzeichnung mit dem folgenden Code.

String status = Environment.getExternalStorageState();
if(status.equals("mounted")){
   String path = your path;
}

recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(path);
recorder.prepare();
recorder.start();

3) Um zu stoppen, überschreiben Sie die Stoppmethode der Aktivität

 recorder.stop();
 recorder.release();

5voto

Satch3000 Punkte 44766

Hier ist ein gutes Tutorial mit Beispielcode.

Audioaufzeichnung bei Android Developer

Sie umfasst diese Schritte:

  • Erstellen Sie eine neue Instanz von Android.media.MediaRecorder.
  • Legen Sie die Audioquelle mit MediaRecorder.setAudioSource() fest. Sie werden wahrscheinlich MediaRecorder.AudioSource.MIC verwenden wollen.
  • Setzen Sie das Format der Ausgabedatei mit MediaRecorder.setOutputFormat().
  • Setzen Sie den Namen der Ausgabedatei mit MediaRecorder.setOutputFile().
  • Stellen Sie den Audio-Encoder mit MediaRecorder.setAudioEncoder() ein.
  • Rufen Sie MediaRecorder.prepare() für die MediaRecorder-Instanz auf.
  • Um die Audioaufnahme zu starten, rufen Sie MediaRecorder.start() auf.
  • Um die Audioaufnahme zu beenden, rufen Sie MediaRecorder.stop() auf.
  • Wenn Sie mit der MediaRecorder-Instanz fertig sind, rufen Sie MediaRecorder.release() auf. Der Aufruf von MediaRecorder.release() wird immer empfohlen, um die Ressource sofort freizugeben.

2voto

inazaruk Punkte 73187

Im Grunde gibt es keine einfache Möglichkeit, Audiodateien als einfache WAV-Dateien zu schreiben. AudioRecorder erzeugt Daten im linearen PCM-Rohformat. Und die API von Android bietet nur Audiodatenpuffer.

Sie müssen die WAV-Datei selbst erstellen. Das bedeutet für Sie, dass Sie alle Chunks selbst hinzufügen müssen: RIFF-Header, FMT- und DATA-Blöcke.

1voto

User 1531343 Punkte 8386

Ich hatte versucht, die WAV-Datei in Android aufzunehmen. Aber irgendwie, es ist nur die Aufnahme der. WAV-Datei nur in Stereo auf, und Sie sollten den Audiorecorder mit dem folgenden Parameter verwenden

recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
                        RECORDER_SAMPLERATE, AudioFormat.CHANNEL_IN_MONO,RECORDER_AUDIO_ENCODING, bufferSize);

        recorder.startRecording();

und vom Rekorder müssen Sie alle Daten in eine Datei schreiben und auch die Kopfdaten angeben

dann tun Sie einfach

recorder.stopRecording();

aber ich habe nur ein Problem in diesem ist, auch wenn ich geben AudioFormat.CHANNEL_IN_MONO..es immer noch in Stereo-Format aufnehmen. Ich hoffe, meine Antwort hilft Ihnen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X