<button  bindtap = "chooseVideo" >上传视频</button>
const app = getApp()
const aesUtil = require('../../../utils/util.js')
Component({options: {styleIsolation: 'apply-shared' //页面样式将影响到组件,但组件中指定的样式不会影响页面},/*** 组件的属性列表*/properties: {cancleText: {type: String,value: '取消'},},/*** 组件的初始数据*/data: {showStatus: false, // 是否显示clickFlag: false, //防重复点击 videoUrl: ''},/*** 组件的方法列表*/methods: {/*** 取消*/cancelChoose() {this.setData({showStatus: false,})},showChoose() {this.setData({showStatus: true,})},/*** 拍摄或选择视频并上传服务器 活体认证*/chooseVideo() {let that = this// that.setData({//   clickFlag: true// })//1.拍摄视频或从手机相册中选择视频wx.chooseVideo({sourceType: [ 'camera'], // album 从相册选视频,camera 使用相机拍摄 'album',maxDuration: 7, // 拍摄视频最长拍摄时间,单位秒。最长支持60秒camera: 'front', //默认拉起的是前置或者后置摄像头,默认back, front = 前置摄像头compressed: true, //是否压缩所选择的视频文件success(res) {let tempFilePath = res.tempFilePath //选择定视频的临时文件路径(本地路径)let duration = res.duration //选定视频的时间长度let size = parseFloat(res.size / 1024 / 1024) //选定视频的数据量大小// let size = parseFloat(res.size/1024/1024).toFixed(1)  //选定视频的数据量大小// let height = res.height //返回选定视频的高度// let width = res.width //返回选中视频的宽度console.log('大小==', res.size, '高度==', res.height, '宽度==', res.width)console.log('視頻大小', size)console.log(tempFilePath)// that.data.duration = durationif (parseFloat(size) > 2) {// that.setData({//   clickFlag: false,// })// let beyondSize = parseFloat(size) - 100wx.showToast({title: '上传的视频大小超限,超出 2 MB,请重新上传',icon: 'none'})} else {//2.本地视频资源上传到服务器that.uploadFile(tempFilePath)}},fail: function () {// fail},complete: function () {// complete}})},/*** 将本地资源上传到服务器* */uploadFile(tempFilePath) {let that = thiswx.$getWxLoginCode(resp => {wx.showLoading({title: '上传中',mask: true //是否显示透明蒙层,防止触摸穿透});const uploadTask = wx.uploadFile({url: app.globalData.uploadVideoUrl, //开发者服务器地址filePath: tempFilePath, //要上传文件资源的路径(本地路径)name: 'file', //文件对应key,开发者在服务端可以通过这个 key 获取文件的二进制内容// header: {}, // 设置请求的 headerheader: {'content-type': 'multipart/form-data'},formData: {code: resp.code}, // HTTP 请求中其他额外的 form datasuccess(res) {let dataRes = JSON.parse(res.data)wx.hideLoading()if (res.statusCode == 200) {let videoUrl = JSON.parse(aesUtil.decrypt({word: dataRes.data}))that.setData({videoUrl: videoUrl,// clickFlag: false,})that.triggerEvent('getVideoUrl', {videoUrl: videoUrl})} else {that.setData({videoUrl: '',// clickFlag: false,})that.triggerEvent('getVideoUrl', {videoUrl: ''})wx.showToast({title: '上传失败',icon: 'none'})}},fail: function () {wx.hideLoading()that.setData({videoUrl: '',// clickFlag: false,})that.triggerEvent('getVideoUrl', {videoUrl: ''})wx.showToast({title: '上传失败',icon: 'none'})}})//监听上传进度变化事件uploadTask.onProgressUpdate((res) => {wx.showLoading({title: '上传中',mask: true //是否显示透明蒙层,防止触摸穿透})console.log("上传进度", res.progress)})})},}
})

微信小程序 上传视频方法相关推荐

  1. 实现微信小程序上传视频的注意事项

    小程序选择视频方法 根据官网的建议 文档原文: 拍摄视频或从手机相册中选视频.此接口不再更新,建议使用 wx.chooseMedia ,所以我这里使用的是 wx.chooseMedia wx.choo ...

  2. 微信小程序上传视频到服务器太慢,微信小程序视频播放加载很慢

    - 当前 Bug 的表现(可附上截图) - 预期表现 - 复现路径 - 提供一个最简复现 Demo 微信小程序视频播放加载很慢,一直转圈,3分钟后才能播放,而且播放很卡,加了带宽和cdn也没有效果,官 ...

  3. 微信小程序上传阿里云视频文件流程及代码

    为了微信小程序客服端实现自拍视频能够分享给多个好友,我们需要把小程序自拍的视频存储到服务器,而阿里云在性能和速度上比较不错,所以我们选择了阿里云作服务器. 第一步.微信小程序项目创建 1. 到http ...

  4. 微信小程序上传组件(可同时长传图片+视频)

    写了个微信小程序上传组件,同时支持上传视频+图片,并且可以返显. 废话不多说,上代码: upload.wxml <view class="clearfix"><v ...

  5. 小程序 php转excel,做微信小程序上传数据 数据格式?-微信 上传数据 生成excle

    做微信小程序上传数据 数据格式? 建议找人专门制作设计好,专业的事情交给专业的人做,自己浪费时间还不一定能搞好 如何把微信里的excel传到qq上 1.在手机中先箭头所示的"微信" ...

  6. 微信小程序上传文件到阿里OSS教程

    前言 (一)开通OSS服务与新建Bucket 开通OSS服务这里省略,新建bucket. (二)设置Bucket属性,后台配置域名 上传文件访问域名 这里我们要在小程序后台配置上传域名(上面的域名是我 ...

  7. 微信小程序上传Excel文本文件功能

    问题: 在开发过程中会发现微信小程序有很多功能都还不能满足我们的需求,谁叫客户就是上帝呢,前几天小编遇到了这么个问题,就是用微信小程序上传文件,但是还以为微信带有这个模块,可是查了许久还是没有找到,只 ...

  8. 微信小程序上传多张图片,上传文件pdf等

    wx.getFileSystemManager().readFileSync同步循环数组是可以拿到值的 wx.getFileSystemManager().readFile异步,但是加了这个就一直是空 ...

  9. 微信小程序上传文件组件

    微信小程序上传文件 一.说明 该拍照组件带有微信授权相机功能,会结合后端接口,将上传的图片以数组集合的形式传值给父级页面. 注意:组件适用于,单独上传图片,不携带参数,结合后端接口返回路径之后,再调用 ...

最新文章

  1. 20道常见初级Java面试题
  2. tensorflow 中报错ValueError: Found input variables with inconsistent numbers of samples: [5492, 14280]
  3. mySQL_connect怎么调用_Mysql ConnectC/C++使用
  4. 使用reactjs做一个CRUD功能
  5. 嵌套向量中断控制器NVIC和系统控制块SCB特性
  6. 对 Strong-Weak Dance的思考
  7. 软件建模——第3章 项目前期
  8. 谷歌终于拒绝 AI 武器化了!
  9. Android:解决Failed to load D:\Android-Studio\sdk\build-tools\xx.xx.xx\lib\dx.jar
  10. ES6-----学习系列十(set-map数据结构)
  11. 【机器学习】KNN回归
  12. Arcgis更换布局模板_小美AI触屏音箱评测 美的布局AloT的关键一环
  13. 【Python爬虫Scrapy框架】一、Scrapy爬虫框架的入门案例
  14. 提取智慧树试卷_智慧树-中国传统文化试题及答案
  15. html中加入emjio表情,jqueryemoji表情插件
  16. EXCEL所有单元格加减乘除一个数 -- 选择性粘贴的用法
  17. 魅族16支持html吗,魅族16功能有哪些
  18. 左耳听风——笔记一:如何学习
  19. 链路聚合-负载分担方式
  20. 下载谷歌浏览器以及谷歌浏览器不能加载网页问题的解决

热门文章

  1. 深圳物联网卡五大应用领域 为智慧城市发展助力
  2. unsupported format string passed to Tensor.__format__
  3. 线性回归随机梯度下降_线性回归的批次梯度与随机梯度下降
  4. Termius学生使用教程
  5. MTK 11A SMS
  6. 木叶Ghost_Win7 SP1 64位 装机版 2013.07
  7. 计算机用户安全意识图表,计算机实验作业表.doc
  8. ERROR [BaseServer.start] - Port 4444 is busy, please choose a free port and specify it using -port..
  9. cursor设置为自定义图片
  10. Linux 使用configure生成的Makefile再编译的时候报错:missing aclocal-1.14 -I m4 make: *** [aclocal.m4] 错误 127