Android MediaRecorder录制视频

  • 内容
  • 评论
  • 相关

视频录制也可以通过 MediaRecorder 类完成,其步骤与音频录制基本相同,只是添加了一些对视频进行处理的操作。

视频录制的基本步骤如下:

1) 调用Camera.open()方法打开摄像头。

2) 调用 Camera.setPreviewDisplay() 连接预览窗口
以便将从摄像头获取的图像放置到预览窗口中显示出来。

3) 调用 Camera.startPreview()启动预览
显示摄像头拍摄到的图像。

4) 使用 MediaRecorder 进行视频录制。

1.使用 Camera.unlock() 方法解锁摄像头,以使 MediaRecorder 获得对摄像头的使用权。

2.配置 MediaRecorder。

1)建立 MediaRecorder 类的对象,并设置音频源和视频源:

MediaRecorder recorder=new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

2)设置视频的输出和编码格式。在 Android 2.2(API Level 8)以上版本的 SDK 中,可以直接调用 MediaRecorder.setProfile 方法进行相关配置:

recorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_LOW));

其中,MediaRecorder.setProfile() 方法为 Android 2.2(API Level 8)之后 MediaRecorder 类新提供的方法,通过 CamcorderProfile 对象可用于对 MediaRecorder 进行相关设置。

CamcorderProfile 为预先定义好的一组视频录制相关配置信息。

Android SDK 共定义了 14 种 CamcorderProfile 配置,如 CamcorderProfile. QUALITY_HIGH、CamcorderProfile. QUALITY_LOW、CamcorderProfile. QUALITY_TIME_LAPSE_1080P 等。其中,QUALITY_LOW 和 QUALITY_HIGH 两种配置是所有的摄像头都支持的,其他配置则根据硬件性能决定。

每一种配置都涉及文件输出格式、视频编码格式、视频比特率、视频帧率、视频的高和宽、音频编码格式、音频的比特率、音频采样率和音频录制的通道数几个方面。通过使用这些预定义配置能够降低代码复杂度,提高编码效率。

3)设置录制的视频文件的保存位置及文件名:

MediaRecorder.setOutputFile(PATH_NAME);

4)使用 MediaRecorder.setPreviewDisplay() 方法指定 MediaRecorder 的视频预览窗口。

需要注意的是,以上配置过程必须按照顺序进行,否则会发生错误。

3.将录像器置于准备状态:

MediaRecorder.prepare();

4.启动录像器:

MediaRecorder.start();

5.进行视频录制:

5) 视频录制完成后,可使用以下方法停止视频录制。

1.停止录像器:

MediaRecorder.stop();

2.重置录像器的相关配置:

MediaRecorder.reset()

3.释放录像器对象:

MediaRecorder.release();

4.调用 Camera.lock() 方法锁定摄像头。从 Android N 开始,该调用也不再必需,除非 MediaRecorder.prepare() 方法失败。

6) 调用Camera.stopPreview()方法停止预览。

7) 调用Camera.release()方法释放摄像头 。

另外,在 Android N 系统下,Camera.unlock() 方法和 Camera.lock() 方法可由 Android 框架来完成。

实例 VideoRecorderDemo 演示了使用 MediaRecorder 进行视频录制的过程,该实例的运行效果如图 1 所示。

VideoRecorderDemo
图 1  VideoRecorderDemo 

本文标题:Android MediaRecorder录制视频

本文地址:https://www.hosteonscn.com/5018.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注