Android - MediaRecorder start() throw IllegalStateException

Arbeite ich an einer App, die erfordert, dass Sie ein video aufnehmen

Hier ist meine teilweise code

mRecorder = new MediaRecorder();
mRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
String mFileName = Environment.getExternalStorageDirectory()
            .getAbsolutePath();
mFileName += "/youraudiofile.3gp";
mSurfaceHolder.getSurface();
mRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
mRecorder.setOutputFile(mFileName);
mRecorder.setVideoSize(320, 240);
mRecorder.setVideoFrameRate(15);
mRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder.setMaxDuration(30000);
try {
mRecorder.prepare();
mRecorder.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

Den oben genannten code, warf IllegalStateException. Ich habe jedem die Erlaubnis eingegeben AndroidManifest.xml ich bin sehr sicher, es ist nichts falsch in AndroidManifest.xml.

Habe ich gelesen, mehrere Lösung, aber keiner von Ihnen arbeiten. Wie kann ich dieses problem lösen?

log-cat unten

- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): FATAL EXCEPTION: main 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): java.lang.IllegalStateException: could not execute-Methode der activity 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): at android.Blick.Ansicht$1.onClick(View.java:3624) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): at android.Blick.Blick.performClick ("Ansicht".java:4117) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): at android.Blick.View$PerformClick.run ("Ansicht".java:17052) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): at android.os.Handler.handleCallback(Handler.java:615) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): at android.os.Handler.dispatchMessage(Handler.java:92) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): at android.os.Looper.Loops(Looper.java:137) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): at android.app.ActivityThread.main(ActivityThread.java:4812) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): bei java.lang.reflektieren.Methode.invokeNative(Native-Methode) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): bei java.lang.reflektieren.Methode.invoke(Method.java:511) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): an com.android.intern.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): an com.android.intern.os.ZygoteInit.main(ZygoteInit.java:556) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): bei dalvik.system.NativeStart.main(Native-Methode) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): Verursacht durch: java.lang.reflektieren.InvocationTargetException 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): bei java.lang.reflektieren.Methode.invokeNative(Native-Methode) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): bei java.lang.reflektieren.Methode.invoke(Method.java:511) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): at android.Blick.Ansicht$1.onClick(View.java:3619) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): 11 mehr ... 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): Verursacht durch: java.lang.RuntimeException: starten fehlgeschlagen. 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): at android.media.MediaRecorder.start(Native-Methode) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): an com.Beispiel.Kamera2.CameraView.startRecording(CameraView.java:149) 
- Dokumentation 11-09 20:47:39.787: E/AndroidRuntime(29000): 14 mehr ... 

Den geänderten code, wie folgt, auch wenn die setOutputFormat(), setVideoSource(), setAudioSource() erscheint nur oben der if {} , setProfile() wirft eine RunTimeException.
Der folgende code wirft eine IllegalStateException gleiche wie die vorherigen log -

    mRecorder = new MediaRecorder();

    mRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
    mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    String mFileName = Environment.getExternalStorageDirectory()
            .getAbsolutePath();
    mFileName += "/youraudiofile.3gp";
    mRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());

    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
        mRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
        mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
        mRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
    } else {

        if (! isFrontCamera) {
            CamcorderProfile camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
            mRecorder.setProfile(camcorderProfile);

        } else {
            CamcorderProfile camcorderProfile = CamcorderProfile.get(findFrontFacingCamera(), CamcorderProfile.QUALITY_LOW);
            mRecorder.setProfile(camcorderProfile);
        }

        mRecorder.setVideoSize(720, 480);
    }
    mRecorder.setVideoFrameRate(15);
    mRecorder.setOutputFile(mFileName);
    mRecorder.setMaxDuration(30000);

    try {
        mRecorder.prepare();
        mRecorder.start();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
  • posten Sie Ihre logcat..
  • Gepostet nur jetzt
  • ok..ich werde es abwarten..
  • Aktualisiert, wenn ich einige der Optionen, die ich in den bisherigen code ein, bevor Sie die Wenn, die setProfile nicht funktionieren, warum?
  • es ist später Hinzugefügt..
  • prüfen Sie einfach, das beste Beispiel für recordng..stackoverflow.com/questions/1817742/...
  • Nach der Prüfung und nach Ihrer Lösung gearbeitet, für die Kamera zurück, jedoch funktioniert es nicht für die front. Einige codes geändert, nach deinem Beispiel, aber das ist eine andere Frage, ich werde versuchen, es zu lösen.
  • Hallo, kann u bitte helfen Sie bei diesem Thema, wenn u gelöst.

Schreibe einen Kommentar