android mediarecoder保存空文件

Anu*_*san 7 android video-recording android-mediarecorder

这是我用来以MP4格式记录来自Android设备的视频的代码.正在创建文件,但大小为0字节.我似乎不明白出了什么问题.任何帮助将不胜感激.

                if(mCamera == null) {
        mCamera = Camera.open();
        mCamera.unlock();
    }

    if(mediaRecorder == null)
        mediaRecorder = new MediaRecorder();


    mediaRecorder.setCamera(mCamera);

    mediaRecorder.setCamera(mCamera);
    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

    mediaRecorder.setMaxDuration(maxDurationInMs);


    mediaRecorder.setOutputFile("/sdcard/1.mp4");

    mediaRecorder.setVideoFrameRate(videoFramesPerSecond);
    mediaRecorder.setVideoSize(176,144);

    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
    mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);

    mediaRecorder.setPreviewDisplay(surface);

    mediaRecorder.setMaxFileSize(maxFileSizeInBytes);

                mediaRecorder.prepare();        
    try {
        mediaRecorder.prepare();
    } catch (IllegalStateException e) {
        // This is thrown if the previous calls are not called with the 
        // proper order
        e.printStackTrace();
    }

            mediaRecorder.start();
Run Code Online (Sandbox Code Playgroud)

Ale*_*iuk 9

之所以会出现这样的行为是你很可能(95%确定)调用recorder.setOutputFile()再次以后你完成了录音(后recorder.stop()也许).因此旧文件正被新的空文件重写.


Anu*_*san 5

好吧,我终于自己弄清楚了。我使用了这里描述的方法并且工作正常。

http://developer.android.com/guide/topics/media/camera.html# saving-media

  • 你好,我有同样的问题。你能告诉我你是怎么想出来的吗? (2认同)