媒体录制器只捕获视频1秒

时间:2016-02-01 05:40:35

标签: android android-mediarecorder

我正在尝试使用Android媒体录制器捕获视频,但只录制视频一秒钟。我花了一天时间但是无法解决它,我的代码出了什么问题,任何帮助都会很感激。这是媒体捕获代码。

    mCamera.unlock();
    MediaRecorder mediaRecorder = new MediaRecorder();
    mediaRecorder.setCamera(mCamera);

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

    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

    mediaRecorder.setVideoSize(640, 480);
    mediaRecorder.setVideoFrameRate(16);
    mediaRecorder.setVideoEncodingBitRate(2000000);

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

    mediaRecorder.setMaxDuration(maxDurationInMs);

    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    File mediaStorageDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "Ethos"
            + File.separator + "Video");

    if (!mediaStorageDir.mkdirs()) {
        Log.d("Camera Guide", "Required media storage does not exist");
    }

    mediaFile = new File(mediaStorageDir.getPath() + File.separator +
            "video" + timeStamp + ".mp4");

    SharedPreferenceUtil.putValue("path_video", mediaFile.toString());
    SharedPreferenceUtil.save();

    mediaRecorder.setOutputFile(mediaFile.getPath());



    mediaRecorder.setPreviewDisplay(mHolder.getSurface());
    mediaRecorder.setMaxFileSize(maxFileSizeInBytes);
    mediaRecorder.setOrientationHint(90);


    try {
        mediaRecorder.prepare();
    } catch (IOException e) {
        e.printStackTrace();
    }
    mediaRecorder.start()

我设置了maxDurationInMs = 300000

1 个答案:

答案 0 :(得分:0)

此文件大小解析为488 KB。并且您正在使用H.264和分辨率的高质量编码器。使用所有这些参数,您的fileSize限制会在您的持续时间限制之前达到。尝试comment fileSize limit然后检查它。

希望这会有所帮助。