Android MediaRecoder相关(二)
本篇文章简单介绍android中如何使用MediaRecoder录制视频.
录制视频和录制音频的步骤差不多,区别再于需要Camera以及SurfaceView的配合.
1: 创建camera对象
Camera camera= Camera.open();
camera.setDisplayOrientation(90);//将摄像头预览的角度进行调整
camera.unlock();
2: 设置camera
mediaRecorder=new MediaRecorder();
mediaRecorder.setCamera(camera);
3: 基础配置
//3.设置音频源(MIC:麦克风采集音频)
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
//4.设置视频源(CAMERA:摄像头采集视频)
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
//5.设置视频输出格式(MP4)
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
//6.设置音频编码格式
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
//7.设置视频编码格式
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
//8.设置视频播放的方向
mediaRecorder.setOrientationHint(90);
注意,这里需要申请两个权限:
setAudioSource需要RECORD_AUDIO权限,setVideoSource需要CAMERA权限.
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.CAMERA"/>
4: 设置输出文件
设置输出文件的位置
mediaRecorder.setOutputFile("sdcard/test.mp4");
申请权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
5: 自定义视频参数
//10.设置输出视频的大小
mediaRecorder.setVideoSize(640,480);
//11.设置视频的帧率
mediaRecorder.setVideoFrameRate(30);
6: 设置预览界面
mediaRecorder.setPreviewDisplay(surfaceView.getHolder().getSurface());
surfaceView可在布局中添加页面展示
7: 录制
try {
//准备录制
mediaRecorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
//开始录制
mediaRecorder.start();
本文由博客一文多发平台 OpenWrite 发布!