>我正在尝试使用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
,然后检查它。
希望这有帮助。