MediaRecorder 录制视频不支持暂停续录的问题

之前写过一个Demo实现了MediaRecorder的暂停录制问题,后来很多人加了我的QQ,所以今天写了这篇博客和大家一起交流分享。

首先,我研究过android的MediaRecorder的API是不支持暂停续录的,所以,客官一定要用MediaRecorder的源生API去实现暂停续录,可以直接点击关闭该页面按钮。

我这里使用的方法是对视频的拼接,思路是当时看国外的stackoverflow ,一个网友提供的。


MediaRecorder的使用这里不在说明,API解释得很清楚了。不过说明下,客官可以使用setProfile去设置录制的视频质量,不过这时不能再设置setOutputFormat、setAudioEncoder、setVideoEncoder属性,否则可能导致一些不兼容问题,可以在setOnErrorListener中监听录制过程出现的问题。


现在着重讲如何拼接,以及在拼接过程如何尽量避免卡顿问题。

每次录制都独立生成一个视频文件,如果是第一次点暂停,此时生成文件A,不做处理;如果是第二次点暂停,此时有文件A和文件B,也不做处理;当再次录制时,录制过程合并A、B文件为C文件,同时删除A、B文件。这时用户再点击暂停时,生成这阶段的D文件,以及上次留下的C文件。也就是最多只能有两个文件,最后客官点击停止录制时,合并最后两个文件就好了。

MediaRecorder 录制视频不支持暂停续录的问题_第1张图片

拼接的话,使用的是isoviewer-1.0-RC-28.jar,核心代码为



MediaRecorder 录制视频不支持暂停续录的问题_第2张图片

MediaRecorder 录制视频不支持暂停续录的问题_第3张图片

MediaRecorder 录制视频不支持暂停续录的问题_第4张图片



最后,其实用这种拼接的方式,个人在体验上,觉得不错,目前没遇到过什么大问题,但自己觉得其实还是不大完善的,只是坑的MediaRecorder不支持暂停续录能力,苦命的程序员只能另寻出路。个人建议自定义的录制视频功能尽量不要使用MediaRecorder,如果用了,那目前我只能想到用这篇文章的方式去做暂停续录,如果客官们有什么好的解决方案,可以一起交流哈~

联系方式:QQ  1079286062

MediaRecorder

你可能感兴趣的:(MediaRecorder 录制视频不支持暂停续录的问题)