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 加密串

initVideoSetting

初始化点播SDK配置(仅Android系统需要设置,且仅设置一次)

此设置会设置视频资源的下载目录、日志保存路径,因此会访问 SDCard数据,需要根据实际情况进行提醒,防止上架市场被拒。(需要 android.permission.WRITE_EXTERNAL_STORAGE 权限)

示例代码

var polyvConfig = api.require('polyvConfigModule');
polyvConfig.initVideoSetting();

可用性

Android系统

可提供的1.3.8及更高版本

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

设置播放器为硬解解码播放,默认关闭。【视频播放前设置】

openMediaCodec({params})

params

mediaCodec

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

示例代码

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

可用性

Android系统

可提供的1.2.1及更高版本

iOS系统

可提供的1.2.8及更高版本

视频播放子插件

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

setRenderView

设置播放器渲染视图类型

setRenderView({params})

params

renderViewType

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

示例代码

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

可用性

Android系统

可提供的1.1.0及更高版本

setCustomVideoToken

设置自定义Token解密视频

播放加密视频时,若设置此Token将优先使用此Token来解密视频;请在调用播放加密视频方法(setVid)前调用此方法

setCustomVideoToken({params},function(ret))

params

token

  • 类型:字符串
  • 描述:自定义token字符串

callback

ret:

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

err:

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

可用性

iOS系统,Android系统

可提供的1.3.8及更高版本

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及更高版本

setAdjustSystemVolume

设置是否调节系统音量

setAdjustSystemVolume({params})

params

isAdjust

  • 类型:bool
  • 描述:(可选项)设置是否调节系统音量(默认NO,调节播放器音量)
  • 默认值:NO

示例代码

var obj = api.require('polyvVideoModule');
obj.setAdjustSystemVolume({
  isAdjust:true
});

可用性

iOS系统,Android系统

可提供的1.3.4及更高版本

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-1.2.5版本废除这个方法,1.2.6版本继续支持

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({
    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及更高版本

setMediaHardDecode

切换当前视频的解码方式【视频播放中可切换】

setMediaHardDecode({params})

params

mediaCodec:

  • 类型:Bool
  • 描述:是否是硬解(YES 硬解码,NO软解码)
  • 可用性:1.3.8及更高版本

getMediaHardDecode

获取当前视频是否为硬解码

getMediaHardDecode((function(ret)))

callback(ret)

mediaCodec:

  • 类型:Bool
  • 描述:是否是硬解码(YES 硬解码,NO 软解码)
  • 可用性:1.3.8及更高版本

snapshot

保存视频截图

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

params

isSave:

  • 类型:布尔型
  • 描述:默认为true,截图后是否保存图片到本地
  • 可用性:1.3.3及更高版本

callback(ret)

imgData:

  • 类型:字符串
  • 描述:当前截图的base64图片数据
{
    imgData:    //当前截图的base64图片数据
}

示例代码

var obj = api.require('polyvVideoModule');
obj.snapshot({
                 isSave:true,
             }, function(ret, err) {
                      //ret.imgData
              });

可用性

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及更高版本

发版说明

[1.3.8] - 2022-11-02

Android:

  1. 升级点播SDK到 2.18.2
  2. 新增初始化点播配置功能的接口

iOS:

  1. 升级点播SDK到 2.18.2-abn

Android/iOS:

  1. 新增自定义Token播放加密视频的功能
  2. 新增切换当前视频软硬解的功能

[1.3.7] - 2022-09-29

Android:

  1. 升级点播SDK到2.18.0。

iOS:

  1. 升级点播SDK到2.18.0。

[1.3.6] - 2022-09-23

Android:

  1. 升级点播SDK到2.16.5.1。

[1.3.5] - 2022-05-12

Android:

  1. 升级点播SDK到2.16.5。

iOS:

  1. 升级点播SDK到2.16.6。

[1.3.4] - 2022-04-09

Android/iOS:

  1. 新增开启调节音量时同步调节系统音量的功能。

[1.3.3] - 2022-02-08

Android/iOS:

  1. snapshot截图方法新增支持返回base64图片数据。

[1.3.2] - 2021-11-10

iOS:

  1. 修复播放中拖动视频到片头00:00时播放进度会直接恢复到拖动前进度的问题;

[1.3.1] - 2021-08-06

Android:

  1. 兼容精准seek下,续播是eventType=start的回调异常问题

iOS:

  1. 升级点播SDK到2.16.2;

  2. 修复切换外部url续播失效的问题;

[1.3.0] - 2021-07-27

Android:

  1. 升级点播SDK到2.16.2.

  2. 修复播放外部url续播不生效问题.

  3. 优化播放器体积,迁移为私有化ijk.

iOS

  1. 升级点播SDK到2.16.1;

  2. 修复播放外部url续播不生效问题;

[1.2.9] - 2021-03-10

Android:

  1. 移除setParam方法的param1参数设置。

iOS:

[1.2.8] - 2021-02-24

Android:

iOS:

  1. 播放视频默认使用软解,增加 openMediaCodec 方法

[1.2.7] - 2020-12-22

Android:

  1. 修复个别 Android 5.x 设备会崩溃的问题

iOS:

[1.2.6] - 2020-11-20

Android:

iOS:

  1. 升级点播 SDK 至 2.13.1
  2. 增加 hideMarquee 方法

[1.2.5] - 2020-10-28

Android:

  1. 移除 Bugly 依赖

iOS:

[1.2.4] - 2020-10-26

Android:

  1. 支持 drm11

iOS:

  1. 升级点播 SDK 至 2.13.0
  2. 支持 drm11

[1.2.3] - 2020-09-09

Android:

  1. 增加 snapshot方法、setToken方法
  2. fullScreen、cancelFullScreen 方法增加回调,fullscreen时自动隐藏状态栏,取消时恢复显示
  3. 音量调节修改为调节播放器音量

iOS:

  1. 增加 snapshot方法、setToken方法
  2. fullScreen、cancelFullScreen 方法增加回调
  3. 修复rightUp、rightDown手势失效问题
  4. setVid 方法增加优先播放离线视频功能
  5. setBrightness、getBrightness 方法亮度范围从0-1改为0-100,与android对齐

[1.2.2] - 2020-08-04

Android:

  1. 升级点播 SDK 至 2.13.0
  2. 安全性升级

iOS:

  1. 升级点播 SDK 至 2.11.0
  2. 安全性升级

[1.2.1] - 2020-06-11

Android:

  1. 添加防录屏和硬解开关

iOS:

  1. 修复初始化后报错 "msg: LoadState Unknown" 的问题
  2. 修复无法显示播放器上层 frame 的问题
  3. 修复关闭播放器之后上一次播放位置记录会被清除的问题

[1.2.0] - 2020-05-21

Android:

  1. 新增码率相关方法 changeLevel、getCurrentLevel、getLevelNum
  2. 支持防录屏功能

iOS:

  1. 升级点播 SDK 至 2.9.0

  2. 新增码率相关方法 changeLevel、getCurrentLevel、getLevelNum

  3. 支持防录屏功能

  4. 支持精准 seek

  5. 修复 open、setVid 传入非法 vid 崩溃问题

  6. showMarquee 多次调用会生成多个跑马灯,且不再提供 hideMarquee 方法

  7. 不再提供 setControlStyle 方法

是否仍需要帮助? 请保持联络!
最后更新于 2024/04/24