当使用MediaRecorder录制视频时如何暂停。当我使用这个课时,我发现无法暂停,我搜索谷歌,但找不到好文章。如果你有好的演示,请发送到我的电子邮箱,wo le ge qu a zheme mafan yun!
File dir=new File("/sdcard"+Constant.videoDir+file.separator);
if(!dir.exists()){
dir.mkdir();
}
file = new File(dir,CameraTool2.getVideoName());
if (mCamera == null) {
mCamera = Util.getCameraInstance(flag);
}
mCamera.setDisplayOrientation(90);
mCamera.unlock();
mediaRecorder = new MediaRecorder();
mediaRecorder.setCamera(mCamera);
// int rotation = getPreviewOrientation(this, getCamaraBackId());
mediaRecorder.setOrientationHint(90);//播放的时候画面旋转
mediaRecorder.reset();
// 设置音频录入源
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
// 设置视频图像的录入源
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
// 设置录入媒体的输出格式
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
// 设置音频的编码格式
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
// 设置视频的编码格式
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
// 设置视频的采样率,每秒4帧
mediaRecorder.setVideoFrameRate(4);
mediaRecorder.setMaxDuration(15000);
// 设置录制视频文件的输出路径
mediaRecorder.setOutputFile(file.getAbsolutePath());
// 设置捕获视频图像的预览界面
mediaRecorder.setPreviewDisplay(sv_view.getHolder().getSurface());
mediaRecorder.setOnErrorListener(new OnErrorListener() {
@Override
public void onError(MediaRecorder mr, int what, int extra) {
// 发生错误,停止录制
if (mediaRecorder != null) {
mediaRecorder.stop();
mediaRecorder.release();
mediaRecorder = null;
}
if (mCamera != null) {
mCamera.release();
mCamera = null;
}
isRecording = false;
btn_VideoStart.setVisibility(View.VISIBLE);
btn_VideoStop.setVisibility(View.GONE);
Toast.makeText(Activity_Video.this, "录制出错", 0).show();
}
});
// 准备、开始
mediaRecorder.prepare();
mediaRecorder.start();