有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
小程序端上传视频的 SDK。上传流程请参见 客户端上传指引
如果您需要 SDK 源码,可访问 SDK 源码
如果您需要 Demo 源码,可访问 Demo 源码

上传视频步骤

1. 引入 SDK
直接引入文件
const VodUploader = require('../../lib/vod-wx-sdk-v2.js');
npm 安装
npm i vod-wx-sdk-v2
2. 定义获取上传签名的函数
getSignature: function(callback) {
wx.request({
/**
* 此处省略部分代码
*/
url: url,
success: function(res) {
callback(signature)
}
});
}
说明:
url是您派发签名服务的 URL,参见 客户端上传指引
signature计算规则可参考 客户端上传签名
应用、视频文件分类、任务流等信息都包含在上传签名中,更多相关信息请参见 签名参数说明
3. 上传视频
上传视频是通过调用VodUploader.start来实现的,选择视频则通过微信小程序 API 中的wx.chooseVideo方法实现。示例如下:
const uploader = VodUploader.start({
// 必填,把 wx.chooseVideo 回调的参数(file)传进来
mediaFile: videoFile,
// 必填,获取签名的函数
getSignature: getSignature,
// 选填,视频名称,强烈推荐填写(如果不填,则默认为“来自小程序”)
mediaName: fileName,
// 选填,视频封面,把 wx.chooseImage 回调的参数(file)传进来
coverFile: coverFile,
// 上传中回调,获取上传进度等信息
progress: function(result) {
console.log('progress');
console.log(result);
},
// 上传完成回调,获取上传后的视频 URL 等信息
finish: function(result) {
console.log('finish');
console.log(result);
wx.showModal({
title: '上传成功',
content: 'fileId:' + result.fileId + '\\nvideoName:' + result.videoName,
showCancel: false
});
},
// 上传错误回调,处理异常
error: function(result) {
console.log('error');
console.log(result);
wx.showModal({
title: '上传失败',
content: JSON.stringify(result),
showCancel: false
});
},
});
说明:
如需上传至指定应用下,请参见 应用体系 - 客户端上传

接口描述

VodUploader.start

参数名称
必填
类型
参数描述
getSignature
Function
获取上传签名的函数。
mediaFile
file
wx.chooseVideo 回调返回的文件对象。
reportId
number
填入后,会携带上报至点播后台。
mediaName
string
视频名称,推荐填写(如果不填,则默认为“来自小程序”)。
coverFile
file
视频封面,wx.chooseImage 回调返回的文件对象。
fileParallelLimit
number
同一个实例下上传的文件并发数,默认值3。
chunkParallelLimit
number
同一个上传文件的分块并发数,默认值6。
chunkRetryTimes
number
分块上传时,出错重试次数,默认值2(加第一次,请求共3次)。
chunkSize
number
分块上传时,每片的字节数大小,默认值8388608(8MB)。
progressInterval
number
上传进度的回调方法 onProgress 的回调频率,单位 ms ,默认值1000。
Function
上传 progress 事件回调,返回上传进度等信息。
Function
上传结束回调,返回 fileId 等信息。
Function
错误处理回调。

progress 回调

字段名
类型
字段描述
loaded
number
已上传大小。
percent
number
已上传大小百分比。
speed
number
上传速度。
total
number
总大小。

finish 回调

字段名
类型
字段描述
coverUrl
string
封面图 URL,如未上传封面则此处为 undefined。
fileId
string
视频 fileId。
videoName
string
视频名称。
videoUrl
string
视频链接。

error 回调

字段名
类型
字段描述
code
number
错误码。
message
string
错误信息。

其他说明

1. 由于小程序没有获取真实文件名的 API,所以需要在上传视频时指定视频名称。如不传入mediaName,SDK 会设置视频名称为“来自小程序”。
2. 默认支持断点续传和分片上传。
3. 小程序域名信息中,requestuploadFile为合法域名,只需加上vod2.qcloud.com即可。
4. 小程序端默认判断当前页面的域名是 http: 时,使用 http: 域名上传。若判断域名非 http: 时,则使用 https: 域名上传。
5. uni-app 集成小程序上传 SDK,因平台限制,仅在微信和 QQ 等部分小程序平台支持分片上传,Android 和 iOS 平台 App 建议集成原生上传 SDK,否则可能影响大文件的上传质量。