媒体录制类实例讲解

作者:创世魂

● 辅助说明

注意:本类位于“多媒体功能支持”模块中,必须添加此模块才能使用。

 

● 本类说明

 

帮助文档如下图:

本类实现了对“媒体视频/音频”的录制(并非屏幕录制),可用来制作类似手机相机的拍摄视频功能。

录制的具体实现过程,需要调用很多设置方法,对视频音频进行各种设置。

 

 

●置相机配置●置视频源●置音频源

 

以上三个用法用来设置视频音频等基本数据的来源信息,此处统一讲解。

 

“置相机配置”帮助文档:

本方法调用了“摄像头类”,通过摄像头类的相关方法可以设置一些“摄像头”的参数。

例如:前后摄像头和显示角度等,统称为配置。

注意:本方法务必放在“录制代码”的最前面。

 

“置视频源”帮助文档:

本方法设置视频来源,通过“媒体录制视频来源”设定。

通常情况下直接使用“媒体录制视频来源.相机”即可。

注意:本方法也要写到“录制代码”的最前面(即“准备”方法之前),“置相机配置”方法之后。

 

 

“置音频源”帮助文档如下图:

本方法设置音频来源,通过“媒体录制音频源”设置。

通常情况下直接写“媒体录制音频源.麦克风”即可。

注意:本方法要写到“准备”方法之前,“置相机配置”方法之后。

 

●置音频编码●置音频编码比特率●置音频通道数●置音频采样率

 

以上四个方法用来设置音频相关操作,如果对音频格式不了解,建议直接按本文档给出的数据进行设置即可。

 

“置音频编码”帮助文档如下图:

通过本方法可以设置音频编码,通过“媒体录制音频编码”类指定。

通常情况下直接使用“媒体录制音频编码.HE_AAC”即可。

关于:HE_ACC是一种高效率高级音频编码,详情可看“百度百科”

本方法需要写到“准备”之前,“置相机配置”方法之后。

 

“置音频编码比特率”帮助文档如下图:

比特率:一秒钟传输的比特数量,详情看“百度百科”

通常情况下,我们常用的单位是“kbps”(即每秒钟1000比特)作为单位。

常见的“光盘”中的“数字音乐”比特率为“1411.2kbps”

也就是记录“1秒钟”的音乐,需要“1411.2×1000”比特的数据。

总结来说:参数中的比特率,数值越大音质越好,如果不了解建议设置“320000”即可。

本方法需要写到“准备”之前,“置相机配置”方法之后。

 

“置音频通道数”帮助文档如下图:

通过帮助文档可以看到,参数中的“整数”类型,只能填写“1或2”,来表达“单声道”“立体声道”

本方法需要写到“准备”之前,“置相机配置”方法之后。

 

“置音频采样率”帮助文档如下图:

关于音频编码和采样率,详情可看“百度百科”,建议设置:“48000”即可。

本方法需要写到“准备”之前,“置相机配置”方法之后。

 

●置输出格式●置视频尺寸●置视频编码●置视频编码比特率●置视频采样率●置保存地理位置

 

以上系列方法用于设置视频相关数据信息,如果对视频格式不了解,建议直接按本文档给出的设置进行设置即可。

 

“置输出格式”帮助文档如下图:

通过本方法可设置文件的指定输出格式,通过“媒体录制输出格式.XXX”调用。

通常情况下直接之用“媒体录制输出格式.MPEG_4”(即常见的mp4格式)。

本方法务必紧跟着“置音频/视频源”方法之后,否则将录制失败。

 

“置视频尺寸”帮助文档如下图:

通过本方法可以设置要录制视频的尺寸,参数中的“高度/宽度”单位为像素。

如果不清楚尺寸信息,建议填写宽度:“1920”,高度:“1080”即可。

注意:本方法需要在“置视频源”“置输出格式”后,“准备”之前调用。

 

“置视频编码”帮助文档如下图:

通过本方法可以设置录制的视频编码,通过“媒体录制视频编码.XXX”调用。

通常情况下直接使用“媒体录制视频编码.H264”即可,此编码为大部分手机默认使用的编码。

 

“置视频编码比特率”帮助文档如下图:

本方法可以设置视频编码的比特率,可参考“置音频编码比特率”

注意:本方法要写到“准备”方法之前,如果不了解直接填写“41943040”即可。

 

“置视频采样率”帮助文档如下图:

“视频采样率”即每秒录制的视频帧数,数值越大、视频越流畅。

如果不了解建议填写“30”或“60”都可以。

本方法需要写到“置视频源”“置输出格式”之后,“准备”方法之前调用。

 

“置保存地理位置”帮助文档如下图:

通过本方法可以将经纬度保存在视频或音频中,参数提供经纬度坐标即可。

本方法需要在“准备”之前调用。

 

●置展示组件

 

帮助文档如下图:

通过本方法可以绑定一个“高级画板”用来临时显示录制时的画面。

 

●置录制方向

 

帮助文档如下图:

通过本方法可以设置,视频最终的旋转角度。

总共支持四个角度,分别是:“0、90、180和270度”

注意:本方法同样需要在“准备”方法之前调用。

 

●置输出文件名

 

帮助文档如下图:

输出文件名,即最终的媒体文件保存路径。

可通过“取外部存储空间根目录()”获取存储卡路径。

注意:本方法需要在“置输出格式”后,“准备”之前调用。

 

●置输出文件最大尺寸

 

帮助文档如下图:

通过本方法可以限制当前录制媒体的“输出文件”时的最大尺寸。

如果填写“0”或者“负数”表示不限制。

注意:本方法需要在“置输出格式”后,“准备”之前调用。

 

●置最大时长

 

帮助文档如下图:

本方法和“置输出文件最大尺寸”不同之处在于,本方法限制的是“媒体时长”

注意:本方法同样需要在“置输出格式”后,“准备”之前调用。

 

 

●准备●开始●停止●重置●释放

 

帮助说明:

以上几个方法和“媒体播放基础类”中的同名方法作用一致。

使用操作,可参考“媒体播放基础类”中同名的方法。

 

●发生错误(事件)
●得到信息(事件)

 

帮助如下图:

以上两个事件和“视频播放器”中的同名事件作用一致。

使用操作,可参考“视频播放器”中同名的事件,这里不再详细介绍。

 

界面准备如下图:

准备一个如下图的界面。

线性布局内放两个按钮,分别为“按钮1”“按钮2”标题修改为“开始录制”“停止录制”

紧接着拖放一个“文本框”设置其宽度为“匹配父组件宽度”

最后放一个“高级画板”,高度和宽度分别设置“匹配父组件高度/宽度”

 

代码编写(1):

保存布局后代码如下图,随后新增一个“摄像头类”变量,起名“摄像头”

 

代码编写(2):

“按钮1”被单击下,执行“开始录制”的相关方法,配置录制参数等等……

“按钮2”被单击下,执行“停止”方法。

如果不使用后,务必执行“释放”方法,将所有资源释放。

“摄像头”不使用后,务必执行“释放”方法来释放资源。

备注:如果录制失败或者打不开摄像头,可能是权限问题导致的。

具体解决方法,找到手机“安全中心”找到“应用权限”,设置当前应用可以打开摄像头。


 

运行效果如下图(GIF):

左图:录制效果。

右图:录制结束后在文件管理器就可以看到录制的视频。

注意:如果录制的时候,没有画面,可能是因为软件没有摄像头和录音权限。

打开手机安全中心,手动设置一下软件权限即可。