微信开发者工具需要安装ffmpeg环境才能正常使用下面的官方方法。
1、调用官方提供的方法(wx.chooseMedia)
choosevideo(){ let that=this console.log("上传视频的方法") wx.chooseMedia({ count: 1, //上传视频的个数 mediaType:['video'], //限制上传的类型为video sourceType:['album', 'camera'], //视频选择来源 maxDuration: 58, //拍摄限制时间 camera: 'back', //采用后置摄像头 success:function(res){ //获取临时存放的视频资源 let tempFilePath=res.tempFiles[0].tempFilePath //获取该视频的播放时间 let duration=res.tempFiles[0].duration console.log("视频播放时间为"+duration) //获取视频的大小(MB单位) let size=parseFloat(res.tempFiles[0].size/1024/1024).toFixed(1) console.log("视频大小为"+size) //获取视频的高度 let height=res.tempFiles[0].height console.log("视频高度为"+height) //获取视频的宽度 let width=res.tempFiles[0].width console.log("视频宽度为"+width) //校验大小后,符合进行上传 if(size>20){ let beyongSize=size-20 //获取视频超出限制大小的数量 Toast("上传的视频大小超限,超出"+beyongSize+"MB,请重新上传!") return }else{ //符合大小限制,进行上传 console.log("开始上传!!!") that.uploadvideo({ url: api.uploadfiletofastdfs, //视频上传的接口 path: tempFilePath, //选取的视频资源临时地址 }); } }, }) }, //视频上传 uploadvideo: function (data) { wx.showLoading({ title: '上传中...', mask: true, }) var that = this // 视频压缩 wx.compressVideo({ quality: 'high', src: data.path, success:function(res){ let size=parseFloat(res.size/1024/1024).toFixed(1) console.log("压缩后视频大小为"+size) that.setData({ sptemp:res.tempFilePath }) //上传视频 wx.uploadFile({ url: data.url, filePath: res.tempFilePath, name: 'uploadFile', header: { "X-Access-Token":wx.getStorageSync('token') }, success: (resp) => { wx.hideLoading(); //获取fastDFS返回的存储路径 console.log(resp) }, }); }, }) },
2、页面中用标签将上传的视频显示出来
<video src="{{sptemp}}" ></video>
3、效果展示
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理