如果您需要 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)}});}
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. 小程序域名信息中,
request
和uploadFile
为合法域名,只需加上vod2.qcloud.com
即可。4. 小程序端默认判断当前页面的域名是 http: 时,使用 http: 域名上传。若判断域名非 http: 时,则使用 https: 域名上传。
5. uni-app 集成小程序上传 SDK,因平台限制,仅在微信和 QQ 等部分小程序平台支持分片上传,Android 和 iOS 平台 App 建议集成原生上传 SDK,否则可能影响大文件的上传质量。