uniapp chooseVideo和uploadFile 选择视频或照片上传抖快平台踩坑

本文主要是介绍uniapp chooseVideo和uploadFile 选择视频或照片上传抖快平台踩坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

先贴代码

uni.chooseVideo({sourceType: ['album'],fail:(err)=>{console.log(TAG, "==chooseVideo-fail==err:", err)page.resetUploadFileField()if (err.errNo == 10200 || 'chooseVideo:fail take video fail' == err.errMsg || 'chooseVideo:fail auth deny' == err.errMsg) {ToastUtil.showTipToast(`前往手机设置-应用打开${getHostName_()}相册权限`)} else if (err.errNo != 10502 && 'chooseVideo:fail cancel' != err.errMsg) {ToastUtil.showTipToast("获取上传文件异常:" + JSON.stringify(err))} },success:(res)=>{console.log(TAG, "==chooseVideo-success==res:", res)if (res && res.tempFilePath && res.duration >= 3 && res.size <= 500*1024*1024) {page.uploadFile = res.tempFilePathpage.uploadFileDuration = res.durationpage.uploadFileSize = res.sizepage.chooseVideoSucc = truepage.uploadMedia()},				})//上传视频async uploadMedia() {let page = this//原生上传方法if (this.chooseVideoSucc) {this.isUploading = truelet header = {}console.log(TAG,"==uploadMedia chooseVideoSucc 开始上传==")this.uploadTask = uni.uploadFile({url: res.data.host, //上传地址filePath: page.uploadFile,fileType: 'video',name: 'file',//重要标识header: header,formData:{//阿里云os端相关配置参数由后台下发"key":res.data.dir,"OSSAccessKeyId":res.data.access_id,"policy":res.data.policy,"signature":res.data.signature,"callback":res.data.callback,},success(res) {console.log(TAG, "==上传成功==res:", res)},fail(err) {console.log(TAG, "==上传失败==err:", err)}})//上传进度监听,条件编译this.uploadTask.onProgressUpdate((res) => {console.log('onProgressUpdate==res:',res)//快手浮点型0-1// #ifdef MP-KUAISHOUpage.uploadProgress = (res.progress.toFixed(2))*100// #endif//非快手浮点型1.0-100.0// #ifndef MP-KUAISHOUpage.uploadProgress = res.progress// #endif				})}},

上面的代码看着是真恶心,而且快手端根本达不到产品的要求,小吐槽一下。。。
先做个小笔记,学习中遇到的一个问题:运算符双问号 ?? 在快手的template标签中会编译报错,抖音是可以正常解析的。
以下是坑::::

  1. 申请访问相册权限拒绝后返回区别:抖音有明确的错误码: err.errNo,快手只有err.errMsg,
    而且快手自己没有“图片和视频”访问权限,和有权限了,跳转到相册选择页直接退出不选择内容,都在api回调中返回 errMsg:chooseVideo:fail take video fail,
    真的很不规范好吧
  2. uni.authorize({scope: “scope.camera”,})这个玩意没法用,反馈的结果完全没有参考意义
  3. uni.openSetting({success(authSetting) {},fail() { }),这个方法打开的是小程序宿主对向程序开放的权限页面,在小程序的三个点里面也能拉起,实际真没啥意义
  4. 上传进度,快手是0-1的浮点型,抖音是1-100的浮点型;还有那个fileType: ‘video’,name: ‘file’,当时name随便填的,没想到把我后端一直收不到数据,但是上传进度是正常的,真是服了,到处屎坑
  5. 上传阿里云OSS的坑,如果使用阿里云node.js 的方法直接跨域传到阿里云上,是万万行不通的,真的把我折磨了两天,oss-sdk和api根本用不了,劝各位往后放弃直传,只能让后端透传创建一个我们自己的域名,给到相应的阿里云oss的key和secret也已完成间接直传
  6. 最大的坑是从阿里云跨域下载文件,到目前位置依然没有解决办法,小程序的网络请求都默认添加上了referer,这个需要在阿里云后端配置白名单,出于安全考虑,不让配都快自己的referer,所以没法直接下载,搞我半条命

这篇关于uniapp chooseVideo和uploadFile 选择视频或照片上传抖快平台踩坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1060713

相关文章

Java如何获取视频文件的视频时长

《Java如何获取视频文件的视频时长》文章介绍了如何使用Java获取视频文件的视频时长,包括导入maven依赖和代码案例,同时,也讨论了在运行过程中遇到的SLF4J加载问题,并给出了解决方案... 目录Java获取视频文件的视频时长1、导入maven依赖2、代码案例3、SLF4J: Failed to lo

Python实现多路视频多窗口播放功能

《Python实现多路视频多窗口播放功能》这篇文章主要为大家详细介绍了Python实现多路视频多窗口播放功能的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下... 目录一、python实现多路视频播放功能二、代码实现三、打包代码实现总结一、python实现多路视频播放功能服务端开

Python实现视频转换为音频的方法详解

《Python实现视频转换为音频的方法详解》这篇文章主要为大家详细Python如何将视频转换为音频并将音频文件保存到特定文件夹下,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5. 注意事项

Python视频处理库VidGear使用小结

《Python视频处理库VidGear使用小结》VidGear是一个高性能的Python视频处理库,本文主要介绍了Python视频处理库VidGear使用小结,文中通过示例代码介绍的非常详细,对大家的... 目录一、VidGear的安装二、VidGear的主要功能三、VidGear的使用示例四、VidGea

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

Java文件上传的多种实现方式

《Java文件上传的多种实现方式》文章主要介绍了文件上传接收接口的使用方法,包括获取文件信息、创建文件夹、保存文件到本地的两种方法,以及如何使用Postman进行接口调用... 目录Java文件上传的多方式1.文件上传接收文件接口2.接口主要内容部分3.postman接口调用总结Java文件上传的多方式1

el-select下拉选择缓存的实现

《el-select下拉选择缓存的实现》本文主要介绍了在使用el-select实现下拉选择缓存时遇到的问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录项目场景:问题描述解决方案:项目场景:从左侧列表中选取字段填入右侧下拉多选框,用户可以对右侧

使用Python实现大文件切片上传及断点续传的方法

《使用Python实现大文件切片上传及断点续传的方法》本文介绍了使用Python实现大文件切片上传及断点续传的方法,包括功能模块划分(获取上传文件接口状态、临时文件夹状态信息、切片上传、切片合并)、整... 目录概要整体架构流程技术细节获取上传文件状态接口获取临时文件夹状态信息接口切片上传功能文件合并功能小

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

如何选择适合孤独症兄妹的学校?

在探索适合孤独症儿童教育的道路上,每一位家长都面临着前所未有的挑战与抉择。当这份责任落在拥有孤独症兄妹的家庭肩上时,选择一所能够同时满足两个孩子特殊需求的学校,更显得尤为关键。本文将探讨如何为这样的家庭做出明智的选择,并介绍星贝育园自闭症儿童寄宿制学校作为一个值得考虑的选项。 理解孤独症儿童的独特性 孤独症,这一复杂的神经发育障碍,影响着儿童的社交互动、沟通能力以及行为模式。对于拥有孤独症兄