Probleme mit der Einstellung der MediaRecorder-Klasse Audioquelle - setAudioSource () - nicht unterstützter Parameter

Ich bin neu in der Android-Entwicklung und habe die nächste Frage / das nächste Problem.

Ich spiele mit der MediaRecorder-Klasse, um nur Audio vom Mikrofon aufzunehmen. Ich folge den auf der offiziellen Website angegebenen Schritten:http: //developer.android.com/reference/android/media/MediaRecorder.htm

So habe ich eine Methode, die das MediaRecorder-Objekt initialisiert und konfiguriert, um die Aufnahme zu starten. Hier hast du den Code:


        this.mr = new MediaRecorder();
        this.mr.setAudioSource(MediaRecorder.AudioSource.MIC);
        this.mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        this.mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        this.mr.setOutputFile(this.path + this.fileName);
        try {
            this.mr.prepare();
        } catch (IllegalStateException e) {
            Log.d("Syso", e.toString());
            e.printStackTrace();
        } catch (IOException e) {
            Log.d("Syso", e.toString());
            e.printStackTrace();
        }

Wenn ich diesen Code im Simulator ausführe, kann ich dank logcat sehen, dass die Methode setAudioSource (MediaRecorder.AudioSource.MIC) den nächsten Fehler (mit dem Tag audio_ipunt) ausgibt, wenn sie aufgerufen wird:


ERROR/audio_input(34): unsupported parameter: x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value
ERROR/audio_input(34): VerifyAndSetParameter failed

Und wenn dann die Methode prepare () aufgerufen wird, bekomme ich wieder den anderen Fehler:


ERROR/PVOMXEncNode(34): PVMFOMXEncNode-Audio_AMRNB::DoPrepare(): Got Component OMX.PV.amrencnb handle 

Wenn ich mit der Aufzeichnung beginne, indem ich die Methode start () aufrufe ... erhalte ich viele Meldungen mit den Worten:


AudioFlinger(34):RecordThread: buffer overflow

Then ... nach dem Anhalten und Loslassen, .... Ich kann sehen, dass eine Datei erstellt wurde, aber es scheint, dass sie nicht gut aufgenommen wurde. Auf jeden Fall kann ich, wenn ich das in einem echten Gerät versuche, ohne Probleme aufnehmen, aber ich KANN NICHT wiedergeben, was ich gerade aufgenommen habe.

Ich vermute, dass der Schlüssel in diesen Fehlern liegt, die ich zuvor erwähnt habe. Wie kann ich sie beheben? Irgendwelche Vorschläge oder Hilfe?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage