Ich arbeite mit Android. Wie kann ich eine Audiodatei über das Mikrofon aufnehmen und wie kann ich die aufgenommene Datei im Emulator speichern?
Antworten
Zu viele Anzeigen?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();
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.
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.
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.