MediaRecorder.stop () stop fehlgeschlagen: -1007

Ich bin Videoaufnahme mit MediaRecorder. Mein code funktioniert auf 2.3.3 aber schlägt auf 4.0.3.

Das Problem ist Folgendes: der code mediaRecorder.stop() wird die RuntimeExeption

java.lang.RuntimeException: stop failed.
    at android.media.MediaRecorder.stop(Native Method)

mit LogCat Meldung

04-05 15:10:51.815: E/MediaRecorder(15709): stop failed: -1007

UPDATE

Habe ich festgestellt, dass MediaPlayer einen Fehler meldet (via MediaPlayer.OnErrorListener) fast sofort nach dem start. Fehlercode 100 (media-server gestorben ist), extra -1007.

UPDATE 2
Code zur Vorbereitung der MediaRecorder

            c = Camera.open();

    ...

    //Step 1: Unlock and set camera to MediaRecorder
    camera.unlock();
    mediaRecorder.setCamera(camera);

    //Step 2: Set sources
    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
    mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

    //Step 3: Set a CamcorderProfile (requires API Level 8 or higher)
    CamcorderProfile profile = CamcorderProfile
            .get(CamcorderProfile.QUALITY_HIGH);

    //manual set up!

    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

    mediaRecorder.setVideoEncodingBitRate(profile.videoBitRate);
    mediaRecorder.setVideoFrameRate(profile.videoFrameRate);
    mediaRecorder.setVideoSize(profile.videoFrameWidth,
            profile.videoFrameHeight);

    mediaRecorder.setAudioChannels(profile.audioChannels);
    mediaRecorder.setAudioEncodingBitRate(profile.audioBitRate);
    mediaRecorder.setAudioSamplingRate(profile.audioSampleRate);

    mediaRecorder.setAudioEncoder(profile.audioCodec);
    //mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
    mediaRecorder.setVideoEncoder(profile.videoCodec);

    //mediaRecorder.setProfile(profile);

    //Step 4: Set output file
    mediaRecorder.setOutputFile("somefile.mp4");

    //Step 5: Set the preview output
    mediaRecorder.setPreviewDisplay(preview.getHolder().getSurface());

    //Step 6: Prepare configured MediaRecorder
    try {
        mediaRecorder.prepare();
    } catch ...
    { release mediaRecorder}

dann habe ich simplyCall mediaRecorder.start()
bitte beachten Sie, dass ich brauche zu kodierenden Videos in das mp4-format.
Dieser code funktioniert auf Samsng Galaxy GIO (android 2.3.3) und nicht wie beschrieben auf der Acer E305 (android 4.0.2)

Irgendwelche Ideen?
Danke.

InformationsquelleAutor der Frage Alex | 2013-04-05

Schreibe einen Kommentar