保利威文档中心

幫助中心

POLYV 影片上傳 SDK

更新時間:2025-07-22 15:06:43

Polyv 小程式上傳 SDK 為您提供上傳媒體檔案到保利威雲點播平台的開發工具包。

功能

  • 快速上傳多種格式的媒體檔案。
  • 支援上傳時的各種設定,如檔案標題、描述、標籤、上傳目錄、是否開啟課件優化處理等。

使用方法

前提條件

  1. 使用本 SDK 前,需先開通保利威雲點播服務。如果您還不瞭解該服務,請登入產品主頁查看,詳見:雲點播
  2. 取得 secretKey 等相關資訊用於使用者身份驗證,您可以在「雲點播管理後台 -> 設定 -> API 介面」頁面中找到相關資訊,點擊這裡登入後台

開發前準備

  1. 小程式微信開發者後台設定-開發設定-伺服器域名中配置 [request 合法域名]
  • api.polyv.net
  • polyvupload.oss-cn-shenzhen.aliyuncs.com
  • polyvupload.obs.cn-south-1.myhuaweicloud.com

wx0

微信基礎庫版本

  • 1.9.6 以上

注意

1. 當前檔案若使用 async await 語法糖,需要開啟增強編譯
只要把“微信开发者工具”更新到 v1.02.1904282 以上,就不需要干 npm install regenerator 这之类的事情,只需要修改一个配置项就能使用 async/await 特性了。这个配置就在“工具栏?详情?本地设置”页面中的“增强编译”。

整合 SDK

引入資源

import PlvVideoUpload from '../../utils/polyv-upload-miniapp-sdk.min.js';

快速開始

初始化上傳實例

首先,建立 PlvVideoUpload 實例。

const videoUpload = new PlvVideoUpload({
  events: {
      Error: (err) => {  // 错误事件回调
          console.log(err);
      },
      UploadComplete: () => {}  // 全部上传任务完成回调
  }
});

呼叫 updateUserData() 設定帳號授權驗證資訊,並每隔 3 分鐘更新一次

// 授权验证信息3分钟内有效,当 sign 过期时需要调用该方法更新
videoUpload.updateUserData({
  userid: <userid> , // Polyv云点播账号的ID
  ptime: <timestamp> , // 时间戳
  sign: <sign> , // 是根据将secretkey和ts按照顺序拼凑起来的字符串进行MD5计算得到的值
  hash: <hash> , // 是根据将ts和writeToken按照顺序拼凑起来的字符串进行MD5计算得到的值
});

其中 ptime、sign 和 hash 都要從伺服器端取得,伺服器端的程式碼範例(PHP)如下:

/* 
 * userid、secretkey、writeToken 都可以在「云点播管理后台 -> 设置 -> API接口」页面中找到。
 */
$userid = "your userid";
$secretkey = "your sercrety";
$writeToken = "your writeToken";

$ptime = time() * 1000;
$sign = md5($secretkey . $ptime);
$hash = md5($ptime . $writeToken);

添加上傳檔案進入上傳列表

fileSetting = { // 文件上传相关信息设置
  title: <title>,  // 标题
  desc: <desc>,  // 描述
  cataid: <cataid>,  // 上传分类目录ID
  tag: <tag>,  // 标签
  luping: 0,  // 是否开启视频课件优化处理,对于上传录屏类视频清晰度有所优化:0为不开启,1为开启
  keepsource: 0  // 是否源文件播放(不对视频进行编码):0为编码,1为不编码
};

呼叫 PlvVideoUpload 實例的 addFile(file, events, fileSetting) 方法,新增檔案到檔案列表,該方法回傳一個 UploadManager 物件:

var uploadManager = videoUpload.addFile(
  file, // file 为待上传的文件对象
  { 
    FileStarted: function(uploadInfo) { // 文件开始上传回调
        console.log("文件上传开始: " + uploadInfo.fileData.title);
    },
    FileProgress: function(uploadInfo) { // 文件上传过程返回上传进度信息回调
        console.log("文件上传中: " + (uploadInfo.progress * 100).toFixed(2) + '%');
    },
    FileStopped: function(uploadInfo) { // 文件暂停上传回调
        console.log("文件上传停止: " + uploadInfo.fileData.title);
    },
    FileSucceed: function(uploadInfo) { // 文件上传成功回调
        console.log("文件上传成功: " + uploadInfo.fileData.title);
    },
    FileFailed: function(uploadInfo) { // 文件上传失败回调
        console.log("文件上传失败: " + uploadInfo.fileData.title);
    }
  },
  fileSetting
);

API 文件

見原始碼中的 docs 資料夾或 點擊此處開啟

範例程式碼

原始碼中的 demo 資料夾包含範例:

  • 引入 SDK 的範例。需要修改 build 資料夾下的 webpack.dev.config.js 檔案中的帳號資訊,然後在本專案根目錄下執行 npm run dev ,開啟微信開發者工具訪問 example 目錄即可。

小程式上傳 SDK 下載

錯誤代碼

Error 事件已知錯誤類型:

code 描述
102 使用者剩餘空間不足
110 檔案重複
111 攔截檔案類型不在 acceptedMimeType 中的檔案
112 檔案已經開始上傳或已上傳完畢,禁止修改檔案資訊

FileFailed 事件已知錯誤類型:

type code 描述
InitUploadError 3001 分類不存在
InitUploadError 405 上傳影片初始化失敗
InitUploadError 406 影片大小不能為 0
InitUploadError 408 帳戶服務狀態異常,請聯繫客服
UpdateTokenError 更新上傳 token 時取得 token 失敗

版本更新

v1.0.0

联系客服,在线咨询