Android MediaRecoder相关(二)

152 阅读1分钟

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 发布!