更新记录

1.0.3(2024-08-23) 下载此版本

解决部分项目iOS端打包缺少系统库报错问题

1.0.1(2023-07-03) 下载此版本

插件功能包括: 上传参数配置 凭证上传和STS上传 上传控制 进度回调 上传结果回调 上传状态获取等


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 14.0 armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 适用版本区间:11 - 17

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


如遇问题请提供详细信息如系统版本和型号、复现步骤、代码片段等

以下方法的具体行为请参考阿里云视频点播文档,使用voucher凭证模式上传成功后不会返回videoid,videoid在获取凭证参数时就会返回,具体询问后端人员

提示:阿里云视频点播文档中,微信小程序上传sdk一样可以在uniapp中开发app使用,缺点是中途无法取消上传,对于大文件上传体验较差。

1.0.3版本中解决了部分项目iOS端云打包失败问题,如果此前iOS端打包正常并且使用1.0.3导致打包失败,请继续使用旧版,或删除syczuan-aliyunvideodemand/package.json中的ios-frameworks,然后重新打包

{
  ...
  "_dp_nativeplugin": {
    ...
    "ios": {
      ...
      // 删除整个frameworks参数
      "frameworks": [
        "libresolv.9.tbd"
      ]
    }
  }
}

导入插件

const syczuanVod = uni.requireNativePlugin("syczuan-aliyunvideodemand");

使用方式

此插件为原生模块,需要先导入模块,使用参考如下

<template>
    <view>
        <text @click="startUpload">开始上传</text>
        <text @click="pauseUpload">暂停上传</text>
        <text @click="resumeUpload">继续上传</text>
        <text @click="cancelUpload">取消上传</text>
        <text @click="getStatus">获取上传状态</text>
        <text @click="listFiles">获取上传队列</text>
    </view>
</template>
<script>
  const syczuanVod = uni.requireNativePlugin("syczuan-aliyunvideodemand");
  export default {
    data() {
      return {
         // 文件地址
         filePath: "",
      };
    },
    methods: {
      // 开始上传
      startUpload(){
        // 自行调用接口获取凭证 uploadAuth uploadAddress videoId
        syczuanVod.init({
            type:"voucher",
            vodHttpConfig:{
              maxRetry: 5,
              connect: 15 * 1000,
              socket: 15 * 1000,
            }
            partSize: 1024 * 1024,
            uploadAuth: uploadAuth,
            uploadAddress: uploadAddress,
          },
          (prog) => {
            console.log(prog);
          },
          (state) => {
            if (state.status === 104) {
               // 自行调用接口获取更新凭证 uploadAuth
               syczuanVod.updateToken({ type: "voucher", uploadAuth:uploadAuth });
            }
            console.log(state);
          },
          (res) => {
            this.uploadResult = res;
          }
        );
        const filePath = plus.io.convertLocalFileSystemURL(this.filePath);
        syczuanVod.addFile({
          title: "title",
          filePath: filePath,
        });
        syczuanVod.start();
      },
      // 暂停上传
      pauseUpload() {
        syczuanVod.pause();
      },
      // 继续上传
      resumeUpload() {
        syczuanVod.resume();
      },
      // 取消上传
      cancelUpload() {
        syczuanVod.stop();
      },
      // 获取上传状态
      getStatus() {
        plus.nativeUI.toast(syczuanVod.getStatus());
      },
      // 获取上传队列
      listFiles(){
        const list = syczuanVod.listFiles();
        console.log(list);
      }
    }
  }
</script>

初始化并监听上传

syczuanVod.init(Object,CallProgress,CallStatus,CallResult)

Object参数说明

参数 类型 必填 默认值 可选项 说明
type String voucher voucher sts 上传授权方式:
voucher: 上传地址和凭证方式
sts: sts方式
具体参考阿里云点播文档
region String cn-shanghai 阿里云控制台内查看 点播服务地域一般情况下只在type=sts时才填写, type=voucher时避免填写,否则可能导致上传失败
bucket String - 阿里云控制台内查看 ios端无效
存储地址一般情况下只在type=sts时才填写, type=voucher时避免填写,否则可能导致上传失败
vodHttpConfig Object - - 配置上传超时连接等参数
vodHttpConfig.maxRetry Number 5 - 重试次数
vodHttpConfig.connect Number 15 * 1000 - 连接超时时长,单位毫秒
vodHttpConfig.socket Number 15 * 1000 - socket超时时长,单位毫秒
partSize Number 1024 * 1024 - 文件大小超过partSize设置的大小就会采用分片上传,单位字节
typevoucher时必填的参数
uploadAuth String - - 详见阿里云点播文档
uploadAddress String - - 详见阿里云点播文档
typests时必填的参数
accessKeyId String - - 详见阿里云点播文档
accessKeySecret String - - 详见阿里云点播文档
secretToken String - - 详见阿里云点播文档
expireTime String - - 详见阿里云点播文档

CallProgress回调参数说明

key 参数说明
progress 上传进度 0-100
current 文件已上传大小,单位字节
size 文件大小,单位字节

CallStatus回调参数说明

key 参数说明
status 状态码
101: 开始上传
102: 上传结束重试,继续上传
103: 上传开始重试
104: 上传地址和凭证过期
data 各状态下返回的相应参数
msg 各状态下返回的信息文本

CallResult回调参数说明

key 参数说明
status 状态码
200: 上传成功
400: 上传失败
调用syczuanVod.stop后暂时不会触发失败回调,
请通过调用syczuanVod.getStatus主动获取状态
data 各状态下返回的相应参数
msg 各状态下返回的信息文本

添加文件到上传队列(建议保持单文件上传)

syczuanVod.addFile(Object)

Object参数说明

参数 类型 必填 默认值 可选项 说明
filePath String - - 需上传的文件本地路径 选取文件后,请使用以下方式获取路径,否则可能导致无法获取文件
plus.io.convertLocalFileSystemURL(tempFilePath)
title String - - 设置文件标题
desc String - - 设置文件描述
cateId String - - 设置文件的分类id
tags String - - 设置文件的标签

更新凭证授权

syczuanVod.updateToken(Object)

Object参数说明

参数 类型 必填 默认值 可选项 说明
type String voucher voucher sts 需与初始化init时的type参数保持一致,否则更新失败
typevoucher时必填的参数
uploadAuth String - - 详见阿里云点播文档
typests时必填的参数
accessKeyId String - - 详见阿里云点播文档
accessKeySecret String - - 详见阿里云点播文档
secretToken String - - 详见阿里云点播文档
expireTime String - - 详见阿里云点播文档

开始上传

syczuanVod.start()

指定列表下标暂停上传(index默认为0)

syczuanVod.pause(index)

全局暂停上传(不推荐使用)

syczuanVod.pauseAll()

指定列表下标恢复上传(index默认为0)

syczuanVod.resume(index)

全局恢复上传(不推荐使用)

syczuanVod.resumeAll()

指定列表下标取消上传(index默认为0)

syczuanVod.stop()

全局取消上传(不推荐使用)

syczuanVod.stopAll()

获取指定列表下标上传状态(index默认为0)

<String> syczuanVod.getStatus(index)
返回参数值 参数说明,加*表示在voucher凭证模式下
init *已初始化
uploading *上传中
canceled *已暂停(调用pause方法后)
paused 已暂停
success *上传完成
pausing *暂停中(仅Android)
deleted 已删除
failure *上传失败
error *上传已取消、未初始化等

获取文件队列

<Array> syczuanVod.listFiles()

清空文件队列

syczuanVod.clearFiles()

从文件队列中删除指定下标的文件任务

syczuanVod.deleteFile(index)

隐私、权限声明

1. 本插件需要申请的系统权限列表:

网络请求权限

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件上传功能使用阿里云视频点播客户端上传 SDK,包括Android、iOS端 参考阿里云SDK文档: https://help.aliyun.com/document_detail/99457.html?spm=a2c4g.52199.0.0.486a24c8oBFGId 插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT License

Copyright (c) 2024 syczuan

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问