VideoPlayerWidget 使用说明

本文介绍 VideoPlayerWidget 的使用方法。

1. 构造方法

"自定义widget(iframe)挂载点" 和自定义样式:

iframe 默认会挂载到 body 下,可根据需要自定义 iframe 的挂载点, 比如:

<div id="container"></div>

import { VideoPlayerWidget } from 'aliyun-pds-js-widget';

const domain_id = 'bj1'; // 您的 domain_id
const token_info = {
  access_token: 'xxxxx',
  refresh_token: 'xxxxx',
  // ...
};
const fileItem = {
  file_id: 'xxxx',
  url: 'https://xxxxx',
  // ...
};

const widgetOpts = {
  widget_endpoint: `https://${domain_id}.apps.aliyunpds.com`,
  api_endpoint: `https://${domain_id}.api.aliyunpds.com`,
  // 挂载点
  container: document.querySelector('#container'),
  // 自定义样式
  iframe_style: {
    width: '100%',
    height: '100%',
  },
  // 嵌入的页面
  module: 'video/player',
  token_info,
  // 配置过期获取token函数。
  refresh_token_fun: async () => {
    // 业务处理逻辑,调用服务端封装的refreshToken接口。
    // new_token_info 从服务端获取
    // let new_token_info = await fetch(.....)
    return new_token_info;
  },
  domain_id,
  drive_id: '1',  // 文档文件所在drive的ID
  file_id: 'xxxx', // 文档文件ID
  init_list: [fileItem], // 文件列表
};

const ins = new VideoPlayerWidget(widgetOpts);

VideoPlayerWidget 构造参数:

字段

类型

必选

说明

module

string

组件名称。目前支持2种:

  • video/player: 视频播放

widget_endpoint

string

组件UI的入口 URL。一般为domainapps域名。

api_endpoint

string

PDS 后端API的域名。

container

string or HTMLElement

组件挂载入口元素

lang

string

设置语言。支持 zh_CN, en_US。 首次默认使用浏览器的 navigator.language。

token_info

Object

访问令牌, JSON Object, 至少包含 access_token 字段。

share_token

string

分享访问令牌,操作分享的相关资源时有用。

refresh_token_fun

Function

access_token 过期刷新 token 方法 ,需要返回新的 token_info

refresh_share_token_fun

Function

share_token 过期刷新 share_token 方法, 需要返回新的 share_token

iframe_style

Object

自定义 iframe 样式

iframe_attr

Object

自定义 iframe Attribute

domain_id

string

DomainID。

drive_id

string

云盘ID。drive_id 和 share_id 必选其一。

share_id

string

分享ID。drive_id 和 share_id 必选其一。

file_id

string

文档文件ID。

revision_id

string

多版本文件的版本ID。

init_list

Object[]

播放列表。每个item格式为getFile或者listFiles返回的item。

video_transcoding_service

boolean

是否转码播放器播放。传入true之前请先确保视频转码播放开关已经打开。默认:false。

2. 实例方法

调用示例:

const ins = new VideoPlayerWidget(widgetOpts)

// 调用方法
ins.setLang('zh_CN')

WebOfficeWidget 支持方法:

方法名

说明

参数说明

setToken

设置组件登录态

JSON Object, token信息

removeToken

清除组件登录态

setLang

设置组件语言

字符串,浏览器支持的语言类型,横线“-”替换成下划线“_”,如浏览器中的简体中文“zh-CN”对应的值为“zh_CN”

setShareToken

设置组件 share_token

string

on

监听事件

详见下文

destroy

销毁组件

updateList

更新播放列表

updateList 方法

  • add: 添加到播放列表

ins.updateList({
  type: 'rename', 
  items: [{ 
    file_id: 'xxx', 
    name: 'xxx', 
    url: '', 
    updated_at: '', 
    category: ''
    // ...
  }] 
})
  • rename:重命名

ins.updateList({
  type: 'rename', 
  items: [{ 
    file_id: 'xxx', 
    name: 'xxx', 
    updated_at: '', 
    category: ''
    // ...
  }] 
})
  • delete:删除

ins.updateList({
  type: 'delete', 
  items: [{ 
    file_id: 'xxx'
  }] 
})

3. 监听事件

为组件开启事件监听,当组件发生指定事件时, 会回调指定的方法。

示例:

const ins = new VideoPlayerWidget(widgetOpts);

ins.on('事件名', function(data) {
  // do something...
})

支持的事件

事件名

说明

payload参数

load

组件首次渲染完成触发

error

监听组件错误

对象,当组件发生错误时触发,如:

{code: "TokenExpired", mesage:"xxx"}

tokenChanged

监听组件token变化

对象,token信息或null

shareTokenChanged

监听组件share_token变化

对象,share_token信息或null

langChanged

监听组件语言变化

字符串,语言名称, 如zh_CN

error 事件部分错误代码

  • TokenInvalid:token无效或未设置

  • TokenExpired:token过期

其他错误码参考:错误处理