一,视频录制MediaRecorder类调用参数详解

本文详细介绍了Android中的MediaRecorder类,包括类概述、状态图、具体方法讲解,如设置输入输出源、编码格式、帧率、采样率和比特率等,以及在不同状态下如何正确调用方法,帮助开发者理解并使用MediaRecorder进行视频录制。
摘要由CSDN通过智能技术生成

一. 类概述:

用于录制音频和视频的一个类。

二. 状态图如下:

在这里插入图片描述

MediaRecorder的各个状态的介绍:

Initial:

初始状态,当使用new()方法创建一个MediaRecorder对象或者调用了

reset()方法时

该MediaRecorder对象处于Initial状态。在设定视频源或者音频源之后将转换为Initialized状态。另

外,在除Released状态外的其它状态通过调用reset()方法都可以使MediaRecorder进入该状态。

Initialized:

已初始化状态,可以通过在Initial状态调用setAudioSource()或setVideoSource()方法进入该状态。在这个状态可以通过setOutputFormat()方法设置输出格式,此时MediaRecorder转换为DataSourceConfigured状态。另外,通过reset()方法进入Initial状态。

DataSourceConfigured:

数据源配置状态,这期间可以设定编码方式、输出文件、屏幕旋转、预览显示等等。可以在Initialized状态通过setOutputFormat()方法进入该状态。另外,可以通过reset()方法回到Initial状态,或者通过prepare()方法到达Prepared状态。

Prepared:

就绪状态,在DataSourceConfigured状态通过prepare()方法进入该状态。在这个状态可以通过start()进入录制状态。另外,可以通过reset()方法回到Initialized状态。

Recording:

录制状态,可以在Prepared状态通过调用start()方法进入该状态。另外,它可以通过stop()方法或reset()方法回到Initial状态。

Released:

释放状态(官方文档给出的词叫做Idle state 空闲状态),可以通过调用release()方法来进入这个状态,这时将会释放所有和MediaRecorder对象绑定的资源。

Error:

错误状态,当错误发生的时候进入这个状态,它可以通过reset()方法进入Initial状态。

**特别说明:**使用MediaRecorder录音录像时需要严格遵守状态图说明中的函数调用先后顺序,在不同的状态调用不同的函数,否则会出现异常。

三. 具体方法讲解如下:

(1)setInputSurface(Surface surface)

MediaRecorder 设置surface流,这个Surface 必需使用MediaCodec进行创建,创建的时机是在MediaRecorder实例创建之后进行创建。最后在创建成功之后设置给MediaRecorder.

		Surface mRecorderSurface;
		MediaRecorder mMediaRecorder;
		if (mMediaRecorder == null) {
			mMediaRecorder = new MediaRecorder();
           mRec
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值