本文首发在个人我的博客上:www.brandhuang.com前端
前一篇文章写了发送语音的功能,这片文章写一下录制短视频的功能。ios
我如今所作的项目是一个客服系统(相似相似阿里旺旺吧?),以前产品的聊天功能就只是发送文字、图片和一些emoji表情,如今须要在项目中添加发送语音和15秒的短视频(限制时长的视频,不必定要15秒)git
若是咱们用 让用户选择设备上已经录好的视频进行上传的方式进行发送其实也是能够的,可是咱们就很差控制视频的时长了,视频时间太长文件也必然很大,会占用不少的空间,因此咱们选择了让用户在咱们本身app中进行录制的方案,这样就能够根据控制视频时间的长度,来把视频的大小控制在较小的范围内。github
插件GitHub地址:cordova-plugin-media-captureapache
该插件既能够录音也能够录制视频,可是在安卓手机上,录音的时候会打开手机自带的录音机APP进行录音,感受体验不是很好,因此我只用了该插件录视频的功能。后端
cordova plugin add cordova-plugin-media-capture
复制代码
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(navigator.device.capture);
}
复制代码
navigator.device.capture.captureVideo(
this.videoSuccess,// 视频录制成功后的处理
this.videoError, // 视频录制失败后的处理
{
duration: 15,// 限制录制的视频时间长度,单位:/秒
limit:1 // 非必填,不写此项时,默认为1
// 在ios一次只能录一个视频,
//在Android上,连续录制视频的个数受limit的限制
}
);
复制代码
视频上传插件和前一篇文章用的同样,方法就不在介绍了服务器
上传插件的简单使用能够看个人上一篇文章:Cordova开发app,使用插件录音并上传服务器app
在Android上录制的视频是mp4格式的,在其余设备上能很好的播放,可是在ios上,录制的视频是mov格式的,因此须要作转码处理后才能在其余设备上播放(能够前端处理,也能够上传到服务器后在后端处理,)iphone
不是全部的mp4格式在ios设备上都能正常播放!!!ide
以前转码的mp4在安卓上正常播放,可是在ios上,播放的视频没有声音!!!
网上搜了下,说是音轨问题,
百度说:iphone自带播放器只识别AAC的音频,因此视频转换MP4,编码方式选择H264+AAC或 MPEG4+AAC就好了。
因此转码的时候须要注意,目前咱们项目由于是在服务端转码的,全部后端正在处理这个问题~
欢迎留言探讨~