Android MediaRecorder相关(二)

Android MediaRecorder相关(二)

本篇文章简单介绍android中如何使用MediaRecoder录制视频.

录制视频和录制音频的步骤差不多,区别再于需要Camera以及SurfaceView的配合.

1: 创建camera对象

Camera camera= Camera.open();
camera.setDisplayOrientation(90);//将摄像头预览的角度进行调整
camera.unlock();

camera.setDisplayOrientation(90)是一个用于设置相机预览图像的显示方向的方法。它可以将相机预览图像旋转指定的角度,以适应设备的方向。

这个方法接受一个整数参数,表示要设置的显示方向。常见的参数值包括0、90、180和270,分别表示不旋转、顺时针旋转90度、顺时针旋转180度和顺时针旋转270度。

2: 设置camera

mediaRecorder=new MediaRecorder();
mediaRecorder.setCamera(camera);

3: 基础配置

//3.设置音频源(MIC:麦克风采集音频)
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);

  1. MediaRecorder.AudioSource.DEFAULT:默认音频源,通常为麦克风。
  2. MediaRecorder.AudioSource.MIC:麦克风音频源。
  3. MediaRecorder.AudioSource.VOICE_CALL:电话通话音频源。
  4. MediaRecorder.AudioSource.CAMCORDER:摄像头音频源。
  5. MediaRecorder.AudioSource.VOICE_RECOGNITION:语音识别音频源。
  6. MediaRecorder.AudioSource.UNPROCESSED:未经处理的音频源。

//4.设置视频源(CAMERA:摄像头采集视频)
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

  1. MediaRecorder.VideoSource.DEFAULT:默认的视频数据源,通常是摄像头。
  2. MediaRecorder.VideoSource.CAMERA:摄像头作为视频数据源。
  3. MediaRecorder.VideoSource.SURFACE:使用Surface作为视频数据源,可以通过SurfaceView或TextureView来预览和录制视频。
  4. MediaRecorder.VideoSource.VIDEO_SOURCE_X:自定义的视频数据源类型,其中X可以是其他整数值。

//5.设置视频输出格式(MP4)
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

  1. MediaRecorder.OutputFormat.MPEG_4:指定输出格式为MPEG-4文件格式。
  2. MediaRecorder.OutputFormat.THREE_GPP:指定输出格式为3GPP文件格式。
  3. MediaRecorder.OutputFormat.AMR_NB:指定输出格式为AMR音频文件格式。
    //6.设置音频编码格式
    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
    //7.设置视频编码格式
    mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
  4. MediaRecorder.VideoEncoder.DEFAULT:默认的视频编码器。
  5. MediaRecorder.VideoEncoder.H264:H.264编码器,通常用于高质量视频录制。
  6. MediaRecorder.VideoEncoder.HEVC:HEVC(H.265)编码器,通常用于更高效的视频压缩。
  7. MediaRecorder.VideoEncoder.MPEG_4_SP:MPEG-4 SP编码器,通常用于较低质量的视频录制。
    //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());

setPreviewDisplay用于设置预览显示器。它用于将相机预览的内容显示在指定的SurfaceView或Surface上。
surfaceView可在布局中添加页面展示。

7: 录制

try {
//准备录制
mediaRecorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
//开始录制
mediaRecorder.start();

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值