我正在尝试使用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
答案 0 :(得分:0)
此文件大小解析为488 KB
。并且您正在使用H.264
和分辨率的高质量编码器。使用所有这些参数,您的fileSize
限制会在您的持续时间限制之前达到。尝试comment fileSize limit
然后检查它。
希望这会有所帮助。