polyvVideo

setConfig openMediaCodec setRenderView open setPath setVid start pause stop close show hide fullScreen cancelFullScreen getDuration getCurrentPosition getBufferPercentage isPlaying forward rewind seekTo setBrightness getBrightness setVolume getVolume addEventListener removeEventListener setSpeed getSpeed showMarquee hideMarquee setViewerId setViewerName setParam setControlStyle setPlayerFrame changeLevel getCurrentLevel disableScreenCAP addDownloader getDownloadList startDownloader startALLDownloader stopDownloader stopAllDownloader downloadedVideoExist deleteVideo deleteAllVideo getDuration getFileSize getLevelNum

概述

保利威简介

保利威(商标名“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 配置详解:

配置格式如下:

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

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

setConfig

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

setConfig()

params

config

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

aeskey:

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

iv:

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

callback

ret:

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

err:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

openMediaCodec

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

openMediaCodec({params})

params

mediaCodec

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

示例代码

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

可用性

Android系统

可提供的1.2.1及更高版本

视频播放子模块

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

setRenderView

设置播放器渲染视图类型

setRenderView({params})

params

renderViewType

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

示例代码

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

可用性

Android系统

可提供的1.1.0及更高版本

open

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

open({params},function(ret))

params

rect

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

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

err:

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

示例代码

  1. var obj = api.require('polyvVideoModule');
  2. obj.open({
  3. rect: {
  4. x: 0,
  5. y: 0,
  6. w: 320,
  7. h: 240
  8. },
  9. path:'fs://res/intro.mp4', // 传递本地路径
  10. // vid:'c538856dde4302916f648ee0d225cbca_c', // 传递 vid
  11. autoPlay: true,
  12. fixedOn: api.frameName,
  13. fixed: false
  14. },function(ret,err){
  15. var eventType = ret.eventType;
  16. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setPath

设置视频的文件路径

setPath({params})

params

path

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setVid

设置播放视频的 vid

setVid({params})

params

vid

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

level:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

start

开始播放

start()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

pause

暂停播放

pause()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stop

停止播放

stop()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

close

关闭播放器

close()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

show

显示视频播放视图

show()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

hide

隐藏视频播放视图

hide()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

fullScreen

全屏播放(横屏模式)

fullScreen()

示例代码

  1. var obj= api.require('polyvVideoModule');
  2. obj.fullScreen();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

cancelFullScreen

取消全屏播放

cancelFullScreen()

示例代码

  1. var obj= api.require('polyvVideoModule');
  2. obj.cancelFullScreen();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getDuration

获得当前视频时长

getDuration(callBack(ret))

callback(ret)

ret:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getCurrentPosition

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

getCurrentPosition(callBack(ret))

callback(ret)

ret:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getBufferPercentage

获取视频当前缓存进度

getBufferPercentage(callBack(ret))

callback(ret)

ret:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

isPlaying

当前视频是否正在播放

isPlaying(callBack(ret))

callback(ret)

ret:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

forward

快进

forward(params)

params

seconds

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

rewind

快退

rewind(params)

params

seconds

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

seekTo

跳转

seekTo(params)

params

seconds

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setBrightness

设置屏幕亮度

setBrightness(params)

params

brightness

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getBrightness

获取当前屏幕亮度值

getBrightness(callBack(ret))

callback(ret)

ret

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setVolume

设置音量

setVolume({params})

params

volume

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getVolume

获取当前音量

getVolume(callBack(ret,err))

callback(ret)

ret:

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

示例代码

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

可用性

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对象
  • 内部字段:
  1. {
  2. start: //布尔类型;事件是否开始,true|false
  3. end: //布尔类型;事件是否结束,true|false
  4. //手指处于滑动屏幕状态时,start、end 均为false
  5. }

示例代码

  1. var obj = api.require('polyvVideoModule');
  2. obj.addEventListener({
  3. name:'leftUp'
  4. },function(ret){
  5. alert('leftUp');
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

removeEventListener

移除手势监听

removeEventListener({params})

params

name

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setSpeed

设置播放速度

setSpeed({params})

params

speed

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.7及更高版本

getSpeed

获取当前播放速度

getSpeed(callBack(ret))

callback(ret)

ret

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

示例代码

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

可用性

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.7及更高版本

hideMarquee

隐藏跑马灯

hideMarquee()

示例代码

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

可用性

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

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

setViewerId

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

setViewerId()

示例代码

  1. var obj= api.require('polyvVideoModule');
  2. obj.setViewerId({
  3. viewerId'polyv'
  4. });

可用性

iOS系统,Android系统

可提供的1.0.8及更高版本

setViewerName

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

setViewerName()

示例代码

  1. var obj= api.require('polyvVideoModule');
  2. obj.setViewerName({
  3. viewerName'polyv'
  4. });

可用性

iOS系统,Android系统

可提供的1.0.8及更高版本

setParam

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

setParam()

示例代码

  1. var obj= api.require('polyvVideoModule');
  2. obj.setParam({
  3. param1:"p1",
  4. param2:"p2",
  5. param3:"p3",
  6. param4:"p4",
  7. param5:"p5",
  8. });

可用性

iOS系统,Android系统

可提供的1.0.8及更高版本

changeLevel

切换视频码率

changeLevel({params})

params

level:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.2.0及更高版本

getCurrentLevel

获取当前播放视频码率

getCurrentLevel(function(ret))

callback(ret)

ret:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.2.0及更高版本

disableScreenCAP

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

disableScreenCAP({params})

params

disableScreenCAP

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

示例代码

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

可用性

Android系统

可提供的1.2.1及更高版本

setPlayerFrame

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

setPlayerFrame({params})

params

x

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

y

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

w

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

h

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

示例代码

  1. var obj= api.require('polyvVideoModule');
  2. obj.setPlayerFrame({
  3. x: 0,
  4. y: 20,
  5. w: 320,
  6. h: 320
  7. });

可用性

iOS系统

可提供的1.0.0及更高版本

setControlStyle

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

setControlStyle({params})

params

controlStyle

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

示例代码

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

可用性

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

视频下载子模块

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

addDownloader

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

addDownloader({params},function(ret))

params

downloadArr

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

callback

ret:

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

err:

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

示例代码

  1. var obj= api.require('polyvVideoDownloadModule');
  2. obj.addDownloader({
  3. downloadArr: [{
  4. vid:'sl8da4jjbx1c8baed8a48212d735d905_s',
  5. level:1
  6. }]}
  7. ,function(ret,err){
  8. for (var vid in ret){
  9. var statusDict = ret[vid];
  10. var downloadStatus = statusDict.downloadStatus;
  11. alert(vid + "\n" + downloadStatus);
  12. }
  13. for (var vid in err){
  14. alert(vid + "\n" + err[vid]);
  15. }
  16. });

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

getDownloadList

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

getDownloadList(function(ret))

callback

ret:

  • 类型:JSON对象
  • 描述:下载器列表,包含成功添加到下载列表的视频的 vid 和 码率。
  • 内部字段:
  1. {
  2. downloadList: [
  3. {
  4. vid: // 视频 vid
  5. level: // 视频码率
  6. },
  7. {
  8. vid: // 视频 vid
  9. level: // 视频码率
  10. },
  11. ...
  12. ]
  13. }

示例代码

  1. var obj= api.require('polyvVideoDownloadModule');
  2. obj.getDownloadList(function(ret, err){
  3. var downloadList = ret.downloadList;
  4. for (var i in downloadList){
  5. var dict = downloadList[i];
  6. var vid = dict.vid;
  7. var level = dict.level;
  8. alert(vid + " - " + level);
  9. }
  10. });

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

startDownloader

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

startDownloader({params})

params

vid

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

示例代码

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

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

startALLDownloader

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

startALLDownloader()

示例代码

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

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

stopDownloader

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

stopDownloader({params})

params

vid

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

示例代码

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

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

stopAllDownloader

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

stopAllDownloader()

示例代码

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

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

downloadedVideoExist

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

downloadedVideoExist({params},function(ret))

params

vid

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

level

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

callback

ret:

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

示例代码

  1. var obj= api.require('polyvVideoDownloadModule');
  2. obj.downloadedVideoExist({
  3. vid:'sl8da4jjbx1c8baed8a48212d735d905_s',
  4. level:1
  5. }, function(ret, err){
  6. var vid = ret.vid;
  7. var exist = ret.exist;
  8. alert(vid + " ?\n" + exist);
  9. });

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

deleteVideo

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

deleteVideo({params})

params

vid

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

示例代码

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

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

deleteAllVideo

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

deleteAllVideo()

示例代码

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

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setDownloadingCallbackIntervalTime

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

setDownloadingCallbackIntervalTime({params})

params

seconds

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

示例代码

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

可用性

iOS 系统,Android 系统

可提供的1.0.0及更高版本

视频信息子模块

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

getDuration

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

getDuration({params},function(ret))

params

vid

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

callback(ret)

ret:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getFileSize

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

getFileSize({params},function(ret))

params

vid

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

level

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

callback(ret)

ret:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getLevelNum

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

getFileSize({params},function(ret))

params

vid

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

callback(ret)

ret:

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

示例代码

  1. var obj = api.require('polyvVideoInfoModule');
  2. obj.getLevelNum({
  3. vid: 'sl8da4jjbx1c8baed8a48212d735d905_s'
  4. }, function(ret, err) {
  5. alert(ret.levelNum);
  6. });

可用性

iOS系统,Android系统

可提供的1.2.0及更高版本