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 本地解密(开发者设计自己的加解密方式)得到 useId
、readtoken
、writetoken
、secretkey
,再使用该方法配置用户信息。
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及更高版本
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及更高版本
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.3] - 2022-02-08
Android/iOS:
- snapshot截图方法新增支持返回base64图片数据。
[1.3.2] - 2021-11-10
iOS:
- 修复播放中拖动视频到片头00:00时播放进度会直接恢复到拖动前进度的问题;
[1.3.1] - 2021-08-06
Android:
- 兼容精准seek下,续播是eventType=start的回调异常问题
iOS:
升级点播SDK到2.16.2;
修复切换外部url续播失效的问题;
[1.3.0] - 2021-07-27
Android:
升级点播SDK到2.16.2.
修复播放外部url续播不生效问题.
优化播放器体积,迁移为私有化ijk.
iOS
升级点播SDK到2.16.1;
修复播放外部url续播不生效问题;
[1.2.9] - 2021-03-10
Android:
- 移除
setParam
方法的param1
参数设置。
iOS:
无
[1.2.8] - 2021-02-24
Android:
无
iOS:
- 播放视频默认使用软解,增加
openMediaCodec
方法
[1.2.7] - 2020-12-22
Android:
- 修复个别 Android 5.x 设备会崩溃的问题
iOS:
无
[1.2.6] - 2020-11-20
Android:
无
iOS:
- 升级点播 SDK 至 2.13.1
- 增加
hideMarquee
方法
[1.2.5] - 2020-10-28
Android:
- 移除 Bugly 依赖
iOS:
无
[1.2.4] - 2020-10-26
Android:
- 支持 drm11
iOS:
- 升级点播 SDK 至 2.13.0
- 支持 drm11
[1.2.3] - 2020-09-09
Android:
- 增加 snapshot方法、setToken方法
- fullScreen、cancelFullScreen 方法增加回调,fullscreen时自动隐藏状态栏,取消时恢复显示
- 音量调节修改为调节播放器音量
iOS:
- 增加 snapshot方法、setToken方法
- fullScreen、cancelFullScreen 方法增加回调
- 修复rightUp、rightDown手势失效问题
- setVid 方法增加优先播放离线视频功能
- setBrightness、getBrightness 方法亮度范围从0-1改为0-100,与android对齐
[1.2.2] - 2020-08-04
Android:
- 升级点播 SDK 至 2.13.0
- 安全性升级
iOS:
- 升级点播 SDK 至 2.11.0
- 安全性升级
[1.2.1] - 2020-06-11
Android:
- 添加防录屏和硬解开关
iOS:
- 修复初始化后报错 "msg: LoadState Unknown" 的问题
- 修复无法显示播放器上层 frame 的问题
- 修复关闭播放器之后上一次播放位置记录会被清除的问题
[1.2.0] - 2020-05-21
Android:
- 新增码率相关方法 changeLevel、getCurrentLevel、getLevelNum
- 支持防录屏功能
iOS:
升级点播 SDK 至 2.9.0
新增码率相关方法 changeLevel、getCurrentLevel、getLevelNum
- 支持防录屏功能
- 支持精准 seek
- 修复 open、setVid 传入非法 vid 崩溃问题
- showMarquee 多次调用会生成多个跑马灯,且不再提供 hideMarquee 方法
- 不再提供 setControlStyle 方法