polyvVideo

概述

保利威简介

保利威(商标名“POLYV”)是一个第三方视频技术服务商,提供视频云计算服务平台,为教育行业等提供视频解决方案,隶属于广州易方信息科技有限公司,实现网络视频跨终端播放,是一家拥有自主知识产权的高新技术企业。

保利威特色功能

  • 无广告,不用再为视频播放前、暂停时的广告而烦扰和等待,向视频广告说NO!
  • 极速加载,全网络覆盖,包含电信、联通、移动、教育网等运营商,通过智能CDN技术,为用户带来极速播放体验。
  • 安全可靠,多副本的分布式存储系统保障数据安全性,三套CDN系统同时保障分发传输系统可靠性。
  • 金牌服务,提供7*24小时的技术支持服务,且可由开发者直接面对开发者,以最快速度解决用户问题,打造行业服务标杆。

模块概述

polyvVideo 模块封装了保利威 Android 与 iOS 原生 SDK,集成了保利威常用的基本接口。使用本模块可以轻松把保利威 Android 与 iOS SDK 集成到自己的 app 中,实现保利威视频播放、下载等功能。

注意事项

  • 使用本模块需拥有保利威账号,并通过调用配置子模块中的 setConfig 方法配置 SDK 加密串。

设置观众ID意义

  • 设置观众ID,设置了观众ID能有效提高模块这边单方面排查问题的效率。
  • 调用设置观众ID方法传入的viewerId会作为一个全局变量保存,多次设置是覆盖值。
  • 设置时机示例:APP中一般是在学员登陆后设置观众ID

配置子模块

polyvConfigModule 封装了对本模块用户配置的功能。 开发者要播放保利威视频,需先到 保利威官网 注册账号,登录账号后,进入云点播 \ 设置 \ API接口 \ SDK加密串获取 SDK 加密串、 加密密钥、加密向量,并将其放到自己的服务器,在 Application 中通过网络获取并且设置给 setConfig 方法(推荐方案)。也可以配置 SDK加密串到 key.xml 文件中,key 为 config,key.xml 文件需要放在 res 文件目录下。

key.xml 配置详解:

配置格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<security>
    <item name="config" value="CMWht3MlpVkgpFzrLNAebYi4RdQDY/Nhvk3Kc+qWcck6chwHYKfl9o2aOVBvXVTRZD/14XFzVP7U5un43caq1FXwl0cYmTfimjTmNUYa1sZC1pkHE8gEsRpwpweQtEIiTGVEWrYVNo4/o5jI2/efzA=="/>
</security>
  • 字段描述:

    • config:保利威账号下的 SDK 加密串

setConfig

配置本模块来自保利威注册账号的用户信息,本方法只需调用一次

固定的加密方式,开发者可在开发时使用,但安全性不如 setToken 方式,不推荐使用在正式环境。

setConfig()

params

config

  • 类型:字符串
  • 描述:(必选项,若不带上这个参数,则从 key.xml 文件中 config 字段获取)保利威账号下的 SDK 加密串(登录账号后,进入 云点播 \ 设置 \ API接口 \ SDK加密串

aeskey:

  • 类型:字符串
  • 描述:(可选项,默认值 VXtlHmwfS2oYm0CZ)保利威账号下的 SDK 加密串的加密密钥,用来解密 SDK 加密串(登录账号后,进入 云点播 \ 设置 \ API接口 \ 加密密钥

iv:

  • 类型:字符串
  • 描述:(可选项,默认值 2u9gDPKdX6GyQJKU)保利威账号下的 SDK 加密串的加密向量,用来解密 SDK 加密串(登录账号后,进入 云点播 \ 设置 \ API接口 \ 加密向量

callback

ret:

  • 类型:JSON对象
  • 内部字段:
{
    isSuccess:    //布尔类型;是否设置成功。
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg:    //字符串类型;错误信息
}

示例代码

var polyvConfig = api.require('polyvConfigModule');
polyvConfig.setConfig({
    config:'CMWht3MlpVkgpFzrLNAebYi4RdQDY/Nhvk3Kc+qWcck6chwHYKfl9o2aOVBvXVTRZD/14XFzVP7U5un43caq1FXwl0cYmTfimjTmNUYa1sZC1pkHE8gEsRpwpweQtEIiTGVEWrYVNo4/o5jI2/efzA==',
    aeskey:'VXtlHmwfS2oYm0CZ',
    iv:'2u9gDPKdX6GyQJKU'
}, function(ret, err) {
        alert(ret.isSuccess);
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setToken

配置本模块来自保利威注册账号的用户信息,本方法只需调用一次

推荐使用 https 接口,从服务端获取加密串,APP 本地解密(开发者设计自己的加解密方式)得到 useIdreadtokenwritetokensecretkey ,再使用该方法配置用户信息。

setToken()

params

userid

  • 类型:字符串
  • 描述:(必选项)保利威账号下的 userid(登录账号后,进入 云点播 \ 设置 \ API接口 \ userid

readtoken:

  • 类型:字符串
  • 描述:(必选项)保利威账号下的 readtoke(登录账号后,进入 云点播 \ 设置 \ API接口 \ readtoken

writetoken:

  • 类型:字符串
  • 描述:(必选项)保利威账号下的 writetoken(登录账号后,进入 云点播 \ 设置 \ API接口 \ writetoken

secretkey:

  • 类型:字符串
  • 描述:(必选项)保利威账号下的 secretkey(登录账号后,进入 云点播 \ 设置 \ API接口 \ secretkey

callback

ret:

  • 类型:JSON对象
  • 内部字段:
{
    isSuccess:    //布尔类型;是否设置成功。
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg:    //字符串类型;错误信息
}

示例代码

var polyvConfig = api.require('polyvConfigModule');
polyvConfig.setToken({
    userid:'6a83c6abfd',
    readtoken:'6365ddc9-2ce1-4341-ae86-4542718a42a1',
    writetoken:'7c7b499d-7999-4a36-b068-e7372b787408',
    secretkey:'7E7LOdvpd1'
}, function(ret, err) {
        alert(ret.isSuccess);
});

可用性

iOS系统,Android系统

可提供的1.2.3及更高版本

openMediaCodec

设置播放器为硬解解码播放,默认关闭。(仅对Android有效!)

openMediaCodec({params})

params

mediaCodec

  • 类型:布尔类型
  • 描述:开启硬解,默认为false。
{
    mediaCodec:    // 布尔类型
}

示例代码

var polyvConfig = api.require('polyvConfigModule');
polyvConfig.openMediaCodec({
    mediaCodec:false
});

可用性

Android系统

可提供的1.2.1及更高版本

视频播放子模块

polyvVideoModule 封装了保利威视频播放功能。

setRenderView

设置播放器渲染视图类型

setRenderView({params})

params

renderViewType

  • 类型:整型数字
  • 描述:渲染视图类型,1为SurfaceView,2为TextureView(默认)。
{
    renderViewType:    // 整型数字:渲染视图类型
}

示例代码

var polyvConfig = api.require('polyvConfigModule');
polyvConfig.setRenderView({
    renderViewType:2
});

可用性

Android系统

可提供的1.1.0及更高版本

open

打开一个视频播放器,通过回调返回播放状态

open({params},function(ret))

params

rect

  • 类型:JSON对象
  • 描述:(可选项)模块的位置及尺寸
  • 内部字段:
{
    x: 0,    //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
    y: 0,    //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
    w: 320,    //(可选项)数字类型;模块的宽度;默认:所属的 Window 或 Frame 的宽度
    h: 300    //(可选项)数字类型;模块的高度;默认:w的3/4
}

path

  • 类型:字符串
  • 描述:(可选项)文档的路径,要求本地路径(fs://),在 android 平台上不支持 widget,若 vid 不为空,则忽略本参数

vid

  • 类型:字符串
  • 描述:(可选项)视频的vid,播放网络视频时需要,若本参数不为空,则忽略 path 参数

autoPlay

  • 类型:布尔
  • 描述:(可选项)打开时是否自动播放
  • 默认值:true(自动播放)

fixedOn

  • 类型:字符串
  • 描述:(可选项)模块所属 Frame 的名字,若不传则模块归属于当前 Window

fixed

  • 类型:布尔
  • 描述:(可选项)模块是否随所属 Window 或 Frame 滚动
  • 默认值:true(不随之滚动)

seekType:

  • 类型:整型数字
  • 描述:(可选项)seek类型,0为根据关键帧seek(默认),1为精准seek
  • 可用性:1.2.0及更高版本

disableScreenCAP:

  • 类型:布尔
  • 描述:(可选项)模块是否开启防录屏。默认为 false 不开启
  • 可用性:1.2.0及更高版本

level:

  • 类型:整型数字
  • 描述:(可选项)指定码率。「 0-自动(默认), 1-流畅, 2-高清, 3-超清 」
  • 可用性:1.2.0及更高版本

callback

ret:

  • 类型:JSON对象
  • 描述:本回调函数在播放状态改变时执行
  • 内部字段:
{
    eventType:    //字符串类型;回调事件类型,取值范围如下:
                //config_invalid(未配置加密串)            
                   //show (打开播放器成功并显示)
                //start(开始播放)
                //stop(停止播放)
                //pause(暂停播放)
                //resetPath(重设媒体资源路径)
                //complete(播放完毕)
}

err:

  • 类型:JSON对象
  • 描述:本回调函数在播放错误时执行
  • 内部字段:
{
    msg:    //字符串类型;错误信息
}

示例代码

var obj = api.require('polyvVideoModule');
obj.open({
    rect: {
        x: 0,
        y: 0,
        w: 320,
        h: 240
    },
    path:'fs://res/intro.mp4', // 传递本地路径
    // vid:'c538856dde4302916f648ee0d225cbca_c', // 传递 vid
    autoPlay: true,
    fixedOn: api.frameName,
    fixed: false
},function(ret,err){
    var eventType = ret.eventType;
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setPath

设置视频的文件路径

setPath({params})

params

path

  • 类型:字符串
  • 描述:文档的路径或 HTTP 协议视频 URL,要求本地路径(fs://),在 android 平台上不支持 widget

示例代码

var obj= api.require('polyvVideoModule');
obj.setPath({
    path:'fs://res/video.mp4'
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setVid

设置播放视频的 vid

setVid({params})

params

vid

  • 类型:字符串
  • 描述:视频 vid

level:

  • 类型:整型数字
  • 描述:(可选项)指定码率。「 0-自动(默认), 1-流畅, 2-高清, 3-超清 」
  • 可用性:1.2.0及更高版本

示例代码

var obj= api.require('polyvVideoModule');
obj.setVid({
    vid:'c538856dde4302916f648ee0d225cbca_c',
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

start

开始播放

start()

示例代码

var obj= api.require('polyvVideoModule');
obj.start();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

pause

暂停播放

pause()

示例代码

var obj= api.require('polyvVideoModule');
obj.pause();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stop

停止播放

stop()

示例代码

var obj= api.require('polyvVideoModule');
obj.stop();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

close

关闭播放器

close()

示例代码

var obj= api.require('polyvVideoModule');
obj.close();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

show

显示视频播放视图

show()

示例代码

var obj= api.require('polyvVideoModule');
obj.show();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

hide

隐藏视频播放视图

hide()

示例代码

var obj= api.require('polyvVideoModule');
obj.hide();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

fullScreen

全屏播放,(横屏模式)。v1.2.3 全屏时 Android 隐藏状态栏。

fullScreen(callBack(ret))

callback(ret)

ret:

  • 类型:JSON对象

  • 内部字段:

    {
        eventType:    show //(打开播放器成功并显示)
    }
    

示例代码

var obj= api.require('polyvVideoModule');
obj.fullScreen(function(ret,err){
    if (ret.eventType === 'show'){
    //do something
  }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

cancelFullScreen

取消全屏播放。v1.2.3 取消全屏后, Android 取消隐藏状态栏。

cancelFullScreen(callBack(ret))

callback(ret)

ret:

  • 类型:JSON对象

  • 内部字段:

    {
        eventType:    show //(打开播放器成功并显示)
    }
    

示例代码

var obj= api.require('polyvVideoModule');
obj.cancelFullScreen(function(ret,err){
    if (ret.eventType === 'show'){
    //do something
  }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getDuration

获得当前视频时长

getDuration(callBack(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    duration:    // 数字类型;当前视频时长;秒
}

示例代码

var obj = api.require('polyvVideoModule');
obj.getDuration(function(ret,err){
    alert(ret.duration);
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getCurrentPosition

获取视频当前播放位置(时间)

getCurrentPosition(callBack(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    currentPosition:    // 数字类型;视频当前播放进度(时间);秒
}

示例代码

var obj = api.require('polyvVideoModule');
obj.getCurrentPosition(function(ret,err){
    alert(ret.currentPosition);
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getBufferPercentage

获取视频当前缓存进度

getBufferPercentage(callBack(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    bufferPercentage:    // 数字类型,取值:0~100;当前缓存进度
}

示例代码

var obj = api.require('polyvVideoModule');
obj.getBufferPercentage(function(ret,err){
    alert(ret.bufferPercentage);
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

isPlaying

当前视频是否正在播放

isPlaying(callBack(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    isPlaying:    // bool 类型;视频是否正在播放
}

示例代码

var obj = api.require('polyvVideoModule');
obj.isPlaying(function(ret,err){
    alert(ret.isPlaying);
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

forward

快进

forward(params)

params

seconds

  • 类型:数字
  • 描述:快进的秒数

示例代码

var obj= api.require('polyvVideoModule');
obj.forward({
    seconds:5
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

rewind

快退

rewind(params)

params

seconds

  • 类型:数字
  • 描述:快退的秒数

示例代码

var obj= api.require('polyvVideoModule');
obj.rewind({
    seconds:5
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

seekTo

跳转

seekTo(params)

params

seconds

  • 类型:数字
  • 描述:跳转到音视频播放的秒数

示例代码

var obj= api.require('polyvVideoModule');
obj.seekTo({
    seconds:20
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setBrightness

设置屏幕亮度

setBrightness(params)

params

brightness

  • 类型:数字
  • 描述:(可选项)设置的屏幕的亮度,取值范围:0-100,在 IOS 平台上设置的是系统屏幕亮度。Android 平台上设置的本应用内的屏幕亮度
  • 默认值:80

示例代码

var obj = api.require('polyvVideoModule');
obj.setBrightness({
    brightness:50
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getBrightness

获取当前屏幕亮度值

getBrightness(callBack(ret))

callback(ret)

ret

  • 类型:JSON对象
  • 内部字段:
{
    brightness:    //数字类型;当前屏幕亮度值
}

示例代码

var obj = api.require('polyvVideoModule');
obj.getBrightness(function(ret,err){
    alert(ret.brightness);
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setVolume

设置视频音量

setVolume({params})

params

volume

  • 类型:数字
  • 描述:(可选项)音量大小,取值范围:0-1
  • 默认值:0

示例代码

var obj = api.require('polyvVideoModule');
obj.setVolume({
    volume:0.6
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getVolume

获取当前视频音量

getVolume(callBack(ret,err))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    volume:    //数字类型;当前音量值
}

示例代码

var obj = api.require('polyvVideoModule');
obj.getVolume(function(ret){
    alert(ret.volume)
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addEventListener

添加手势监听(当全屏或者 fixed 为 true 且页面不能被左右滑动时有效)

addEventListener({params},callBack(ret,err))

params

name

  • 类型:字符串
  • 描述:所要监听的手势名称
  • 取值范围:
    • leftUp:播放器靠左的二分之一内的上滑事件,每滑动5(百分比)回调执行一次
    • leftDown:播放器靠左的二分之一内的下滑事件,每滑动5(百分比)回调执行一次
    • rightUp:播放器靠右的二分之一内的上滑事件,每滑动5(百分比)回调执行一次
    • rightDown:播放器靠右的二分之一内的下滑事件,每滑动5(百分比)回调执行一次
    • swipeLeft:播放器上的左滑事件,每滑动5(百分比)回调执行一次
    • swipeRight:播放器上的右滑事件,每滑动5(百分比)回调执行一次
    • click:点击播放器事件(单击手势)

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    start:    //布尔类型;事件是否开始,true|false
    end:    //布尔类型;事件是否结束,true|false
            //手指处于滑动屏幕状态时,start、end 均为false
}

示例代码

var obj = api.require('polyvVideoModule');
obj.addEventListener({
    name:'leftUp'
},function(ret){
    alert('leftUp');
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

removeEventListener

移除手势监听

removeEventListener({params})

params

name

  • 类型:字符串
  • 描述:所要移除的监听的手势名称
  • 取值范围:
    • leftUp:播放器靠左的二分之一内的上滑事件,每滑动5(百分比)回调执行一次
    • leftDown:播放器靠左的二分之一内的下滑事件,每滑动5(百分比)回调执行一次
    • rightUp:播放器靠右的二分之一内的上滑事件,每滑动5(百分比)回调执行一次
    • rightDown:播放器靠右的二分之一内的下滑事件,每滑动5(百分比)回调执行一次
    • swipeLeft:播放器上的左滑事件,每滑动5(百分比)回调执行一次
    • swipeRight:播放器上的右滑事件,每滑动5(百分比)回调执行一次
    • click:点击播放器事件(单击手势)

示例代码

var obj = api.require('polyvVideoModule');
obj.removeEventListener({
    name:'leftUp'
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setSpeed

设置播放速度

setSpeed({params})

params

speed

  • 类型:数字类型
  • 描述:播放速度,建议取值范围是0.5 - 2.0
  • 默认值:1.0

示例代码

var obj = api.require('polyvVideoModule');
obj.setSpeed({
    speed:2.0
});

可用性

iOS系统,Android系统

可提供的1.0.7及更高版本

getSpeed

获取当前播放速度

getSpeed(callBack(ret))

callback(ret)

ret

  • 类型:JSON对象
  • 内部字段:
{
    speed:    //数字类型;当前播放速度
}

示例代码

var obj = api.require('polyvVideoModule');
obj.speed(function(ret,err){
    alert(ret.speed);
});

可用性

iOS系统,Android系统

可提供的1.0.7及更高版本

showMarquee

显示跑马灯

showMarquee({params})

params

marquee

  • 类型:字符串
  • 描述:跑马灯内容
  • iOS系统默认值:POLYV iOS APICloud Module
  • Android系统默认值:POLYV Android APICloud Module

duration

  • 类型:数字类型
  • 描述:一次动画显示的时长,秒
  • 默认值:5

interval

  • 类型:数字类型
  • 描述:连续播放动画间隔的时长,秒
  • 默认值:1

color

  • 类型:字符串
  • 描述:跑马灯字符串颜色RGB值
  • 默认值:0xFFE900

font

  • 类型:数字类型
  • 描述:跑马灯字符串字体大小
  • 默认值:16

alpha

  • 类型:数字类型
  • 描述:跑马灯字符串透明度
  • 默认值:1

示例代码

var obj = api.require('polyvVideoModule');
obj.showMarquee({
    marquee:'polyv',
    duration:10
});

可用性

iOS系统,Android系统

可提供的1.0.7及更高版本

hideMarquee

隐藏跑马灯

hideMarquee()

示例代码

var obj= api.require('polyvVideoModule');
obj.hideMarquee();

可用性

Android系统,可提供的1.0.7及更高版本

iOS系统,1.0.7版本开始支持,1.2.0版本废除这个方法

setViewerId

设置观众ID,对应观看日志中的自定义ID。

setViewerId()

示例代码

var obj= api.require('polyvVideoModule');
obj.setViewerId({
    viewerId:'polyv'
});

可用性

iOS系统,Android系统

可提供的1.0.8及更高版本

setViewerName

设置观众昵称,对应观看日志中的观众昵称。

setViewerName()

示例代码

var obj= api.require('polyvVideoModule');
obj.setViewerName({
    viewerName:'polyv'
});

可用性

iOS系统,Android系统

可提供的1.0.8及更高版本

setParam

设置观众昵称,对应观看日志中的观众昵称。 其中,param2 和 setViewerName 是相同的数据项,只设置其中一个即可。

setParam()

示例代码

var obj= api.require('polyvVideoModule');
obj.setParam({
    param1:"p1",
    param2:"p2",
    param3:"p3",
    param4:"p4",
    param5:"p5",
});

可用性

iOS系统,Android系统

可提供的1.0.8及更高版本

changeLevel

切换视频码率

changeLevel({params})

params

level:

  • 类型:整型数字
  • 描述:(可选项)指定码率。「 0-自动(默认), 1-流畅, 2-高清, 3-超清 」
  • 可用性:1.2.0及更高版本

示例代码

var obj= api.require('polyvVideoModule');
obj.changeLevel({
    level:1,
});

可用性

iOS系统,Android系统

可提供的1.2.0及更高版本

getCurrentLevel

获取当前播放视频码率

getCurrentLevel(function(ret))

callback(ret)

ret:

  • 类型:数字
  • 描述:当前播放视频码率
{
    currentLevel:    // 1-流畅, 2-高清, 3-超清
}

示例代码

var obj= api.require('polyvVideoModule');
obj.getCurrentLevel(function(ret, err){
  alert(ret.currentLevel)
});

可用性

iOS系统,Android系统

可提供的1.2.0及更高版本

snapshot

保存视频截图

snapshot()

示例代码

var obj = api.require('polyvVideoModule');
obj.snapshot();

可用性

iOS系统,Android系统

可提供的1.2.3及更高版本

disableScreenCAP

设置播放器防录屏开关(仅对Android有效!)

disableScreenCAP({params})

params

disableScreenCAP

  • 类型:布尔类型
  • 描述:控制防录屏开关。默认关闭。

示例代码

var obj= api.require('polyvVideoModule');
obj.disableScreenCAP({
  disableScreenCAP:false
});

可用性

Android系统

可提供的1.2.1及更高版本

setPlayerFrame

设置播放器位置与尺寸(仅对iOS有效!)

setPlayerFrame({params})

params

x

  • 类型:数字类型
  • 描述:播放器横坐标值

y

  • 类型:数字类型
  • 描述:播放器纵坐标值

w

  • 类型:数字类型
  • 描述:播放器宽度

h

  • 类型:数字类型
  • 描述:播放器高度

示例代码

var obj= api.require('polyvVideoModule');
obj.setPlayerFrame({
    x: 0,
    y: 20,
    w: 320,
    h: 320
});

可用性

iOS系统

可提供的1.0.0及更高版本

setControlStyle

设置播放控制组件样式(已废除!)

setControlStyle({params})

params

controlStyle

  • 类型:字符串
  • 描述:播放控制组件样式
  • 取值范围:
    • none:无播放控制组件
    • embedded:默认播放控制组件
    • fullscreen:全屏样式播放控制组件

示例代码

var obj= api.require('polyvVideoModule');
obj.setControlStyle({
    controlStyle:'none'
});

可用性

iOS系统,1.0.0版本开始支持,1.2.0版本废除这个方法

视频下载子模块

polyvVideoDownloadModule 封装了保利威视频下载功能,支持断点下载。

addDownloader

通过 vid 和 指定码率(level) 创建一个视频下载器,并添加到下载列表

addDownloader({params},function(ret))

params

downloadArr

  • 类型:字典数组
  • 描述:包含多个需要下载的“vid + level”视频;每个 vid 只能下载一个码率,要想下载新的码率的视频,需删除该 vid 已下载的视频,才能添加下载
  • 内部字段:
[
    {
        vid:    // 字符串类型;视频 vid
        level:    // 数字类型;视频码率(1 为流畅,2 为高清,3 为超清;如果设置的码率不存在,就会下载默认最高清的码率)
    },
    {
        vid:    // 视频 vid
        level:    // 视频码率
    },
    ...
]

callback

ret:

  • 类型:JSON对象
  • 描述:下载器状态列表。本回调函数在下载器开始下载后,下载状态发生变化时执行
  • 内部字段:
{
    vid0: {
                downloadStatus:    // 字符串类型;回调事件类型,取值范围如下:
                                // ready(下载器准备就绪)
                                // stopped (下载被停止)
                                // finished(下载完成)
                                // failed(下载失败)
                                // downloading(下载中)
                downloadPercentage:    // 数字类型,取值:0~100;当前下载进度
            }, // 以 vid(字符串) 为键,下载器状态(字典)为值
    vid1: {...},
    ...
}

err:

  • 类型:JSON对象
  • 描述:本回调函数在下载失败时执行
  • 内部字段:
{
    vid0: "msg0", // 以 vid(字符串) 为键,错误信息(字符串)为值
    vid1: "msg1",
    ...
}

示例代码

var obj= api.require('polyvVideoDownloadModule');
obj.addDownloader({
    downloadArr: [{
        vid:'sl8da4jjbx1c8baed8a48212d735d905_s',
        level:1
    }]}
,function(ret,err){
    for (var vid in ret){
        var statusDict = ret[vid];
        var downloadStatus = statusDict.downloadStatus;
        alert(vid + "\n" + downloadStatus);
    }
    for (var vid in err){
        alert(vid + "\n" + err[vid]);
    }
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

getDownloadList

返回下载列表,包含下载成功及下载中的视频。

getDownloadList(function(ret))

callback

ret:

  • 类型:JSON对象
  • 描述:下载器列表,包含成功添加到下载列表的视频的 vid 和 码率。
  • 内部字段:
{
    downloadList: [
        {
            vid:    // 视频 vid
            level:    // 视频码率
        },
        {
            vid:    // 视频 vid
            level:    // 视频码率
        },
        ...
    ]
}

示例代码

var obj= api.require('polyvVideoDownloadModule');
obj.getDownloadList(function(ret, err){
    var downloadList = ret.downloadList;
    for (var i in downloadList){
        var dict = downloadList[i];
        var vid = dict.vid;
        var level = dict.level;
        alert(vid + " - " + level);
    }
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

startDownloader

启动下载器列表中指定下载器的下载

startDownloader({params})

params

vid

  • 类型:字符串
  • 描述:视频vid

示例代码

var obj= api.require('polyvVideoDownloadModule');
obj.startDownloader({
    vid:'sl8da4jjbx1c8baed8a48212d735d905_s'
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

startALLDownloader

启动下载器列表中所有下载器的下载

startALLDownloader()

示例代码

var obj= api.require('polyvVideoDownloadModule');
obj.startALLDownloader();

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

stopDownloader

停止下载器列表中指定下载器的下载

stopDownloader({params})

params

vid

  • 类型:字符串
  • 描述:视频vid

示例代码

var obj= api.require('polyvVideoDownloadModule');
obj.stopDownloader({
    vid:'sl8da4jjbx1c8baed8a48212d735d905_s'
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

stopAllDownloader

停止下载器列表的所有下载器的下载

stopAllDownloader()

示例代码

var obj= api.require('polyvVideoDownloadModule');
obj.stopAllDownloader();

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

downloadedVideoExist

判断指定码率的视频是否存在(已下载)

downloadedVideoExist({params},function(ret))

params

vid

  • 类型:字符串
  • 描述:视频的 vid

level

  • 类型:整型数字
  • 描述:视频码率

callback

ret:

  • 类型:JSON对象
  • 描述:指定vid已下载视频是否存在本地布尔值
  • 内部字段:
{
    vid:    // 字符串类型;视频vid
    exist:    // 布尔类型;文件存在为true,否则false
}

示例代码

var obj= api.require('polyvVideoDownloadModule');
obj.downloadedVideoExist({
    vid:'sl8da4jjbx1c8baed8a48212d735d905_s',
    level:1
}, function(ret, err){
    var vid = ret.vid;
    var exist = ret.exist;
    alert(vid + " ?\n" + exist);
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

deleteVideo

删除指定下载视频(包含下载中视频)

deleteVideo({params})

params

vid

  • 类型:字符串
  • 描述:视频的vid

示例代码

var obj= api.require('polyvVideoDownloadModule');
obj.deleteVideo({
    vid:'sl8da4jjbx1c8baed8a48212d735d905_s'
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

deleteAllVideo

删除所有下载视频(包含下载中视频)

deleteAllVideo()

示例代码

var obj= api.require('polyvVideoDownloadModule');
obj.deleteAllVideo();

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setDownloadingCallbackIntervalTime

设置下载中(downloadStatus=downloading)回调间隔时间(秒)

setDownloadingCallbackIntervalTime({params})

params

seconds

  • 类型:数字
  • 描述:间隔时间
  • 取值范围:0和正整数(iOS 支持正实数)
  • 默认值:0 (无间隔时间)

示例代码

var obj= api.require('polyvVideoDownloadModule');
obj.setDownloadingCallbackIntervalTime({
    seconds:1
});

可用性

iOS 系统,Android 系统

可提供的1.0.0及更高版本

视频信息子模块

polyvVideoInfoModule 封装了获取保利威视频信息功能。

getDuration

通过 vid 获取发布状态视频的时长。

getDuration({params},function(ret))

params

vid

  • 类型:字符串
  • 描述:视频的 vid
{
    vid:    // 字符串类型;视频 vid
}

callback(ret)

ret:

  • 类型:数字
  • 描述:视频播放时长
  • 单位:秒
{
    duration:    // 数字类型;视频播放时长
}

示例代码

var obj = api.require('polyvVideoInfoModule');
obj.getDuration({
    vid: 'sl8da4jjbx1c8baed8a48212d735d905_s'
}, function(ret, err) {
    alert("视频时长:\n" + ret.duration + "秒");
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getFileSize

通过 vid 和指定码率(level)获取发布状态视频的文件大小。

getFileSize({params},function(ret))

params

vid

  • 类型:字符串
  • 描述:视频的 vid

level

  • 类型:整型数字
  • 描述:视频码率
{
    vid:    // 字符串类型;视频 vid
    level:    // 数字类型:码率
}

callback(ret)

ret:

  • 类型:数字
  • 描述:视频文件大小
  • 单位:字节
{
    fileSize:    // 数字类型;视频文件大小(字节)
}

示例代码

var obj = api.require('polyvVideoInfoModule');
obj.getFileSize({
    vid: 'sl8da4jjbx1c8baed8a48212d735d905_s',
    level: 1
}, function(ret, err) {
    alert("文件大小:\n" + ret.fileSize + "字节");
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getLevelNum

获取视频支持码率,「1-流畅, 2-高清, 3-超清」。如返回 3,表示支持流畅、高清和超清。

getFileSize({params},function(ret))

params

vid

  • 类型:字符串
  • 描述:视频的 vid
{
    vid:    // 字符串类型;视频 vid
}

callback(ret)

ret:

  • 类型:数字
  • 描述:视频支持码率数
{
    levelNum:    // 数字类型;视频支持码率数
}

示例代码

var obj = api.require('polyvVideoInfoModule');
obj.getLevelNum({
    vid: 'sl8da4jjbx1c8baed8a48212d735d905_s'
}, function(ret, err) {
    alert(ret.levelNum);
});

可用性

iOS系统,Android系统

可提供的1.2.0及更高版本