媒体录像机仅捕获视频1秒钟



>我正在尝试使用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()

我已设置最大持续时间在Ms = 300000

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

希望这有帮助。

最新更新