AliyunPlayer

initPlayer closeCustomPlayer openFloatWindow start hide stop replay setCirclePlay getDuration quality setRenderRotate setVolume setScreenBrightness addEventListener initDownloader startDownload removeDownload openBarrageSwitch openSettingPanel unlockScreen setMediaControllerVisible fullScreen setFullscreenBtnVisible addTouchListener

概述

概述

该模块封装了阿里云的高级播放器,除了具备基础播放器的所有功能外,还提供播放视频的高级能力,如清晰度切换,倍速播放,下载视频等功能,支持网络视频播放、本地视频播放、vid+playauth方式播放、sts方式播放。建议使用阿里视频云点播和直播业务的用户使用 。可参考官方文档[https://help.aliyun.com/document_detail/61910.html?spm=a2c4g.11186623.6.692.DV37sN]

系统要求

  • ios:

    • SDK支持iOS 8.0及以上版本系统
  • Android:

    • SDK支持Android 4.1.2及以上版本

注意

1.使用该模块时需要使用升级后的编译环境,请在云编译的时候勾选“使用升级环境编译”,并且在控制台 “高级设置” 中将固件版本设置为 4.1.2或以上 2.当前SDK仅支持HLS、RTMP、HTTP FLV、mp4、mp3等流格式,支持的视频编码格式为H264,音频编码格式为AAC。建议使用MPS或点播平台转码后使用。 3.适配iPhone5S以上机型,低端机型在使用变速功能时可能存在性能问题

initPlayer

初始化播放器

该接口必须配合prepareToPlay和start,pause等接口使用

initPlayer(callback(ret))

rect:

  • 类型:JSON 类型
  • 描述:(可选项)预览窗口的位置及大小
  • 内部字段:

img:

  • 类型:JSON 类型
  • 描述:(可选项)封面图(仅ios支持)
  • 内部字段:
  1. x: 0, //(可选项)数字类型;封面图左上角的 x 坐标(相对于所属的播放器);默认值:0
  2. y: 0, //(可选项)数字类型;封面图左上角的 y 坐标(相对于所属的播放器);默认值:0
  3. w:414, //(可选项)数字类型;封面图宽度(相对于所属的播放器);默认播放器的宽度
  4. h:300 //(可选项)数字类型;封面图高度(相对于所属的播放器;默认播放器的高度
  5. faceImg:'widget://img/landscapeBack.png', //(可选项)字符串类型;封面图;要求本地路径(widget://、fs://);默认无
  6. }

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)模块添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:模块依附于当前 window

fixed:

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

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. status : true //初始化是否成功
  3. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.initPlayer({
  3. rect:{
  4. x:0,
  5. y:0,
  6. w:320,
  7. h:300
  8. },
  9. img:{
  10. x: 0,
  11. y: 0,
  12. w:414,
  13. h:300
  14. faceImg:'widget://img/album1.png', //(可选项)字符串类型;封面图;要求本地路径(widget://、fs://);默认无
  15. }
  16. },function(ret){
  17. alert(JSON.stringify(ret));
  18. })

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

openCustomPlayer

打开定制播放器(sts、playAuth、url这三种播放方式只需选取一种,播放器首先尝试以sts的方式播放,如果没有传sts参数,播放器就以playAuth,如果playAuth也没有传参,就以url方式进行播放)

注意: 1.该接口是一个UI类播放器,可独立使用,也可配合start,pause 等接口使用 2.该播放器播放完成之后,滑动条无法点击,只能手动点击播放按钮或者调用start接口

params

rect:

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

sts:

  • 类型:JSON类型
  • 描述:使用vid+STS方式播放(该方式需要将视频存储在阿里云服务器,支持清晰度切换)
  • 内部字段:
  1. {
  2. vid:'', // 字符串类型;视频id
  3. akId:'', // 字符串类型;视频访问id
  4. akSecret:'', // 字符串类型;视频访问秘钥
  5. securityToken:'' // 字符串类型;安全token
  6. }

playAuth:

  • 类型:JSON类型
  • 描述:使用playAuth方式播放(该方式需要将视频存储在阿里云服务器,支持清晰度切换)
  • 内部字段:
  1. {
  2. vid:'', // 字符串类型;视频id
  3. authInfo:'' // 字符串类型;视频认证信息
  4. }

url:

  • 类型:字符串
  • 描述:使用url播放方式(该方式可以播放所有网络视频,不支持清晰度切换,android系统如果播放本地视频需要在路径前加file://,如 file:///storage/emulated/0/test.mp4)

showDefinitionLabel:

  • 类型:布尔类型
  • 描述:是否显示清晰度切换标签(注意:只会在竖屏显示该标签,如果当前播放视频不支持清晰度切换,通过点击该标签切换视频会造成视频卡顿)
  • 默认:false

definitionLabelMarginRight:

  • 类型:数字类型
  • 描述:清晰度切换标签的右边距
  • 默认:15

isShowBackBtn:

  • 类型:布尔类型
  • 描述:是否显示返回按钮(注意:只对竖屏有效)
  • 默认:true

autoPlay:

  • 类型:布尔类型
  • 描述:是否自动播放

autoRotate:

  • 类型:布尔类型
  • 描述:是否自动转屏(仅支持android)
  • 默认:false

isFullScreen:

  • 类型:布尔类型
  • 描述:是否全屏播放
  • 默认:false

isControlDisplay:

  • 描述:是否显示控制层
  • 默认:true

topControlColor:

  • 类型:字符串
  • 描述:顶部控制层的背景颜色(显示返回按钮和标题的控制层)
  • 默认:rgba(245,245,245,0)

bottomControlColor:

  • 类型:字符串
  • 描述:底部控制层的背景颜色(显示播放暂停按钮,进度条以及全屏按钮的控制层)
  • 默认:rgba(245,245,245,0)

title:

  • 类型:字符串
  • 描述:视频标题

danmuBtnVisible:

  • 类型:布尔类型
  • 描述:弹幕按钮是否显示
  • 默认:true

nextBtnVisible:

  • 类型:布尔类型
  • 描述:next按钮是否显示
  • 默认:true

imageResourcesDict:

  • 类型:JSON 对象
  • 描述:视频图标
  • 内部字段:
  1. {
  2. header:{//(可选项)JSON对象;播放器顶部导航条样式
  3. landscapeBackImg:'widget://img/landscapeBack.png', //(可选项)字符串类型;顶部横屏返回按钮的背景图片,要求本地路径(widget://、fs://);默认:返回左边箭头图标
  4. portraitBackImg:'widget://img/portraitBack.png', //(可选项)字符串类型;顶部竖屏返回按钮的背景图片,要求本地路径(widget://、fs://);默认:返回左边箭头图标
  5. barrageBtn:{ //(可选项)弹幕开关
  6. barrageOpenImg:'widget://img/open.png',//(可选项) 弹幕打开按钮,要求本地路径(widget://、fs://);默认:弹幕打开图标
  7. barrageCloseImg:'widget://img/close.png'//(可选项) 弹幕关闭按钮,要求本地路径(widget://、fs://);默认:弹幕关闭图标
  8. },
  9. setImg:'widget://img/set.png', //(可选项)弹幕按钮右边的设置按钮 ,要求本地路径(widget://、fs://);默认:设置图标
  10. openFloatWindowImg:'widget://img/openFloatWindowImg.png',//(可选项) 打开悬浮窗按钮,要求本地路径(widget://、fs://);不传则按钮不存在(注意:该按钮只在竖屏的时候显示)
  11. downloadBtnImg:'widget://img/downloadImg.png' //(可选项)下载按钮图标设置,支持路径widget:// & fs://;不传不显示
  12. },
  13. footer:{ //(可选项)JSON对象;播放器底部导航条样式
  14. playBtn:{
  15. playImg:'widget://img/play.png', //(可选项)字符串类型;底部播放按钮的背景图片,要求本地路径(widget://、fs://);默认:播放按钮图标
  16. pauseImg:'widget://img/pause.png',//(可选项)字符串类型;底部暂停按钮的背景图片,要求本地路径(widget://、fs://);默认:暂停按钮图标
  17. },
  18. seekBar:{
  19. sliderImg:'widget://img/slder.png', //(可选项)字符串类型;底部进度条滑块背景图片,要求本地路径(widget://、fs://);默认:滑块小图标
  20. },
  21. nextBtn:{
  22. nextImg:'widget://img/nextImg.png', //(可选项)字符串类型;底部下一集背景图片,要求本地路径(widget://、fs://);默认:下一集按钮图标
  23. },
  24. fullscreenBtn:{
  25. verticalImg:'widget://img/vertical.png', //(可选项)字符串类型;底部横竖屏切换按钮的背景图片,竖屏状态下的切换按钮,要求本地路径(widget://、fs://);默认:竖屏按钮图标
  26. horizontalImg:'widget://img/horizontal.png', //(可选项)字符串类型;底部横竖屏切换按钮的背景图片,横屏状态下的切换按钮,要求本地路径(widget://、fs://);默认:横屏按钮图标
  27. }
  28. },
  29. lockBtn:{
  30. screenLockImg:'widget://img/screenLock.png', //(可选项)字符串类型;锁屏按钮的背景图片,要求本地路径(widget://、fs://);默认:锁屏按钮图标
  31. screenUnlockImg:'widget://img/screenUnlock.png', //(可选项)字符串类型;解锁按钮的背景图片,要求本地路径(widget://、fs://);默认:未锁屏按钮图标
  32. }
  33. }

quality:

  • 类型:字符串
  • 描述:清晰度; 注意:此参数iOS无效,iOS默认播放标清
  • 默认:LD //标清
  • 取值范围:
    • LD //标清
    • SD //高清
    • HD //超清

qualityList: (仅支持iOS)

  • 类型:数组类型
  • 描述:清晰度列表;
  • 默认:[‘SMD’,’LD’,’SD’]
  • 取值范围:
    • SMD //流畅
    • LD //标清
    • SD //高清
    • HD //超清

img:

  • 类型:JSON 类型
  • 描述:(可选项)封面图
  • 内部字段:
  1. {
  2. x: 0, //(可选项)数字类型;封面图左上角的 x 坐标(相对于所属的播放器);默认值:0
  3. y: 0, //(可选项)数字类型;封面图左上角的 y 坐标(相对于所属的播放器);默认值:0
  4. w:414, //(可选项)数字类型;封面图宽度(相对于所属的播放器);默认播放器的宽度
  5. h:300 //(可选项)数字类型;封面图高度(相对于所属的播放器;默认播放器的高度
  6. faceImg:'widget://img/landscapeBack.png', //(可选项)字符串类型;封面图;要求本地路径(widget://、fs://);默认无
  7. }

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)模块添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:模块依附于当前 window

fixed:

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

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. eventType:'play' // play 点击播放
  3. // show 播放器显示事件
  4. // prepared 播放器准备完毕
  5. // firstFrame 视频首帧
  6. // pause 点击暂停
  7. // back 点击返回按钮
  8. // lock 锁屏
  9. // unLock 未锁屏
  10. // landscape 切换至全屏事件
  11. // portrait 切换至竖屏
  12. // next 点击next
  13. // replay 重播
  14. // finish 播放完毕
  15. // danmuOpen 弹幕打开
  16. // danmuClose 弹幕关闭
  17. // openFloatWindow 打开悬浮窗
  18. // download 点击下载按钮
  19. // seekDown 视频Seek完成时调用(仅支持安卓再次回调)
  20. // 播放器鉴权数据过期回调,出现过期可重新prepare新的地址或进行UI上的错误提醒 timeExpired **该参数仅支持iOS**
  21. // 播放过程中鉴权即将过期时提供的回调消息(过期前一分钟回调) addressExpired **注意.:鉴权有效期为2小时,在这个回调里面可以提前请求新的鉴权,stop上一次播放,prepare新的地址,seek到当前位置** **该参数仅支持iOS**
  22. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.openCustomPlayer({
  3. rect:{
  4. x:0,
  5. y:0,
  6. w:200,
  7. h:200
  8. }
  9. url:'xxx',
  10. img:{
  11. x: 0,
  12. y: 0,
  13. w:200,
  14. h:200,
  15. faceImg:'widget://img/landscapeBack.png'
  16. }
  17. }, function(ret){
  18. alert(JSON.stringify(ret));
  19. })

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closeCustomPlayer

关闭自定义播放器

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.closeCustomPlayer()

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

onBack

返回功能接口,如当前是全屏模式则转为小屏播放,如果是小屏模式 则返回back事件

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.onBack()

可用性

ios,Android系统

可提供的1.0.0及更高版本

openFloatWindow

打开悬浮窗口(注意Android需要打开悬浮窗权限,否则会出现异常)

params

rect:

  • 类型:JSON 类型
  • 描述:(可选项)窗口的位置及大小
  • 内部字段:
  1. {
  2. x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
  3. y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
  4. h:600 //(可选项)数字类型;模块高度(相对于所属的 Window 或 Frame;默认100
  5. }

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. eventType:'close' // close 悬浮窗关闭事件
  3. // clicked 悬浮窗点击事件
  4. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.openFloatWindow(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

prepareToPlay

准备播放 (sts、playAuth、url这三种播放方式只需选取一种,播放器首先尝试以sts的方式播放,如果没有传sts参数,播放器就以playAuth,如果playAuth也没有传参,就以url方式进行播放)

prepareToPlay({params},callback(ret))

params

sts:

  • 类型:JSON类型
  • 描述:使用vid+STS方式播放
  • 内部字段:
  1. {
  2. vid:'', // 字符串类型
  3. akId:'', // 字符串类型
  4. akSecret:'', // 字符串类型
  5. securityToken:'' // 字符串类型
  6. }

playAuth:

  • 类型:JSON类型
  • 描述:使用playAuth方式播放
  • 内部字段:
  1. {
  2. vid:'', // 字符串类型
  3. authInfo:'' // 字符串类型
  4. }

url:

  • 类型:字符串
  • 描述:播放url

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.prepareToPlay({
  3. url:''
  4. })

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

show

显示

show()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

hide

隐藏

hide()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

close

关闭

close()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

start

开始播放

start()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stop

停止播放

stop()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

pause

暂停播放

pause()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

replay

replay()

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.replay();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

seekToTime

跳转到指定时间点播放(在播放器状态firstFrame之后才能调用此函数)

seekToTime({params})

params

position:

  • 类型:数字类型
  • 描述:播放的指定位置

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. eventType: // seekDown 视频Seek完成时调用 (仅支持iOS)
  3. }

示例代码

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

quality

清晰度切换

quality({params})

params

quality:

  • 类型:字符串
  • 描述:清晰度
  • 取值范围:
    • FD //流畅
    • LD //标清
    • SD //高清
    • HD //超清
    • 2K //2k
    • 4K //4k
    • OD //原画

示例代码

  1. var UIAlivcLivePlayer = api.require('UIAlivcLivePlayer');
  2. UIAlivcLivePlayer.setQuality({
  3. quality:'FD'
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setCirclePlay

循环播放设置

setCirclePlay({params})

params

isCirclePlay:

  • 类型:布尔类型
  • 描述:是否循环播放;默认false

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.setCirclePlay({
  3. isCirclePlay:true
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getCurrentPosition

获取当前播放位置

getCurrentPosition(callback(ret))

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. position : 10000 // 当前播放位置
  3. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.getCurrentPosition(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getDuration

获取视频长度

getDuration(callback(ret))

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. duration : 10000 //视频长度
  3. }
  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.getDuration(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setPlaySpeed

倍数播放支持0.5~2倍的设置,支持音频变速不变调

setPlaySpeed({params})

params

speed:

  • 类型:数字类型(浮点类型)
  • 描述:倍速
  • 取值范围:0.5~2

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.setPlaySpeed({
  3. speed:1.0
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

snapShot

截图

snapShot({params},callback(ret))

params

path:

  • 类型:字符串
  • 描述:截图保存路径(如果路径无效会保存失败)只支持fs://等本地路径

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. status : true //是否保存成功
  3. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.snapShot({
  3. path:'fs://test/tt.jpg'
  4. },function(ret){
  5. alert(JSON.stringify(ret));
  6. })

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setRenderRotate

设置视频画面旋转角度,支持0°,90°,180°,270°设置,默认0°,角度按顺时针方向计算

setRenderRotate({params})

params

rotate:

  • 类型:数字类型
  • 描述:画面旋转角度
  • 取值范围:
    • 0
    • 90
    • 180
    • 270

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.setRenderRotate({
  3. rotate:90
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setRenderMirrorMode

setRenderMirrorMode({params})

支持设置画面镜像,包括水平镜像和垂直镜像。默认为无镜像

params

mode:

  • 类型:字符串
  • 描述:画面镜像模式
  • 取值范围:
    • vertical
    • horizontal
    • none

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.setRenderMirrorMode({
  3. mode:'vertical'
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setVolume

setVolume({params})

音量设置

params

volume:

  • 类型:数字类型
  • 描述:音量
  • 取值范围:0~100

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.setVolume({
  3. volume:50

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setMuteMode

setMuteMode({params})

静音设置

params

isMute

  • 类型:布尔类型
  • 描述:是否静音

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.setMuteMode({
  3. isMute:true
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setScreenBrightness

setScreenBrightness({params})

设置屏幕亮度

params

brightness:

  • 类型:数字类型
  • 描述:屏幕亮度
  • 取值范围: 0~100

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.setScreenBrightness({
  3. brightness:30
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setDisplayMode

setDisplayMode({params})

设置显示模式

params

scalingMode:

  • 类型:字符串类型
  • 描述:显示模式
  • 取值范围:
    • fit //保持原始比例
    • crop //全屏占满屏幕

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.setDisplayMode({
  3. scalingMode:'fit'
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addEventListener

addEventListener()

添加播放器监听事件

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. eventType : 'prepared' // 准备完成
  3. // 缓冲中 buffer
  4. // 暂停后恢复播放时触发 play (仅ios支持)
  5. // 播放视频首帧显示出来时触发 firstFrame
  6. // 视频暂停时触发 pause
  7. // 主动使用stop接口时触发 stop
  8. // 视频正常播放完成时触发 finish
  9. // 视频Seek完成时触发 seekDone
  10. // 获取流成功时触发 trackReady(仅android支持)
  11. //字幕显示触发subtitleShow(仅android支持)
  12. //字幕隐藏触发subtitleHide(仅android支持)
  13. // 播放器鉴权数据过期回调,出现过期可重新prepare新的地址或进行UI上的错误提醒 timeExpired **该参数仅支持iOS**
  14. // 播放过程中鉴权即将过期时提供的回调消息(过期前一分钟回调) addressExpired **注意:鉴权有效期为2小时,在这个回调里面可以提前请求新的鉴权,stop上一次播放,prepare新的地址,seek到当前位置** **该参数仅支持iOS**
  15. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.addEventListener(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setOnErrorListener

setOnErrorListener()

异常监听 (错误码及错误信息请参考阿里云 )

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. code: 0,
  3. msg: ''
  4. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.setOnErrorListener(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

initDownloader

initDownloader

注意:由于SDK限制,下载文件路径暂时仅支持一级目录如:(fs://)

初始化下载器

Params

downloadDir:

  • 类型:字符串
  • 描述:下载文件路径(仅支持fs://)

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. status:true, // 布尔类型,初始化成功与否
  3. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.initDownloader({
  3. downloadDir:'fs://',
  4. },function(ret){
  5. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

prepareDownload

注意: 对于iOS而言,authInfo可以是过期的值,然后会回调错误的参数,这时,开始下载的接口必须传最新的authInfo,否则会下载失败

准备下载 playAuth (暂仅支持playAuth)

params

playAuth:

  • 类型:JSON类型
  • 描述:使用playAuth方式
  • 内部字段:
  1. {
  2. vid:'', // 字符串类型
  3. accessKeyId:'', // 字符串类型
  4. accessKeySecret:'' , // 字符串类型
  5. securityToken:'' // 字符串类型
  6. }

trackIndex:

  • 类型:数字类型
  • 描述:开始下载的数组位置,对应相应的清晰度;默认为0(仅ios支持)

quality:

  • 类型:字符串
  • 描述:(必选项)视频质量
  • 取值范围:
    • FD 流畅
    • LD 标清
    • SD 高清
    • HD 超清
    • 2K 2K
    • 4K 4K
    • OD 原画

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. prepared:[mediaInfo ...], // JSON数组,可以下载的项
  3. }
  4. // mediaInfo 结构如下:
  5. mediaInfo:{
  6. vid:"", // 字符串类型;视频id
  7. format:"", // 字符串;视频格式
  8. coverUrl:"", // 字符串;遮罩Url
  9. downloadFilePath:''//字符串类型;下载地址(仅ios支持)
  10. size:1000, // 数字类型;视频大小(仅ios支持)
  11. duration:123230, // 数字类型;视频长度
  12. quality:"", // 字符串类型;视频质量(仅ios支持)
  13. title:"", // 字符串类型;视频标题
  14. }

err:

  • 类型:JSON对象
  • 描述:错误信息返回 仅android支持
  • 内部字段

    1. {
    2. errorCode:, //数字类型;错误码
    3. msg:'', //字符串类型;错误信息
    4. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.prepareDownload({
  3. playAuth:{
  4. vid:'',
  5. authInfo:''
  6. }
  7. },function(ret){
  8. alert(JSON.stringify(ret));
  9. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

startDownload

开始下载

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. progress:50, // 数字类型;当前下载的进度百分比
  3. }

示例代码

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stopDownload

停止下载

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.stopDownload();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

removeDownload

删除下载(仅ios支持)

params

vid:

  • 类型:字符串
  • 描述:视频id
  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.removeDownload({
  3. vid:''
  4. });

可用性

iOS系统

可提供的1.0.0及更高版本

isScreenLock

是否锁屏

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. isLock: true // 布尔类型;是否锁屏
  3. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.isScreenLock(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS 、Android系统

可提供的1.0.0及更高版本

openSettingPanel

打开设置面板(音量,亮度面板)

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. isOpen: true //布尔类型;打开成功
  3. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.openSettingPanel(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closeSettingPanel

关闭设置面板(音量,亮度面板)

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. isClose: true //布尔类型;关闭成功
  3. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.closeSettingPanel(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

unlockScreen

解锁屏幕

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. status: true //布尔类型;打开成功
  3. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.unlockScreen(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

lockScreen

锁定屏幕

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. status: true //布尔类型;关闭成功
  3. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.lockScreen(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

openBarrageSwitch

打开弹幕开关

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. isOpen: true //布尔类型;打开成功
  3. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.openBarrageSwitch(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closeBarrageSwitch

关闭弹幕开关

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. isClose: true //布尔类型;关闭成功
  3. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.closeBarrageSwitch(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setMediaControllerVisible

设置媒体控制器隐藏与否 此处可以隐藏显示进度条

params

visible:

  • 类型:布尔类型
  • 描述:显示与否

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.setMediaControllerVisible({
  3. visible true
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getMediaControllerVisibility

媒体控制器是否隐藏

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. visible: true // 布尔类型;是否可见
  3. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.getMediaControllerVisibility(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

fullScreen

设置播放器为全屏

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. status:true // 返回状态
  3. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.fullScreen(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

unfullScreen

退出全屏

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
  1. {
  2. status:true // 返回状态
  3. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.unfullScreen(function(ret){
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setFullscreenBtnVisible

设置全屏按钮的可见性

params

visible:

  • 类型:布尔类型
  • 描述:显示与否

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.setFullscreenBtnVisible({
  3. visible:true
  4. });

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setBackBtnImage

设置返回按钮图片

params

backImg:

  • 类型:字符串类型
  • 描述:返回按钮图片(支持 widget:// fs://)

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.setBackBtnImage({
  3. backImg:'widget://image/back.png'
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addTouchListener

设置播放器界面的触摸监听(仅ios支持)

addTouchListener({params},callback(ret))

params

name:

  • 类型:字符串
  • 描述:所要监听的动作名称
  • 取值范围:

  • ‘leftUp’:播放器靠左的二分之一内的上滑事件,每滑动5(百分比)回调执行一次

  • ‘leftDown’:播放器靠左的二分之一内的下滑事件,每滑动5(百分比)回调执行一次

  • ‘rightUp’:播放器靠右的二分之一内的上滑事件,每滑动5(百分比)回调执行一次
  • ‘rightDown’:播放器靠右的二分之一内的下滑事件,每滑动5(百分比)回调执行一次
  • ‘swipeLeft’:播放器上的左滑事件,每滑动5(百分比)回调执行一次
  • ‘swipeRight’:播放器上的右滑事件,每滑动5(百分比)回调执行一次
  • ‘click’:点击播放器事件(单击手势)
  • ‘doubleClick’:双击播放器事件(单击手势)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. eventType: //字符串类型:监听到的事件
  3. //leftUp
  4. //leftDown
  5. //rightUp
  6. //rightDown
  7. //swipeLeft
  8. //click
  9. //doubleClick
  10. }

示例代码

可用性

iOS系统

可提供的1.0.0及更高版本

removeTouchListener

移除播放器触摸监听事件(仅ios支持) removeTouchListener({params})

params

name:

  • 类型:字符串
  • 描述:所要移除的监听的动作名称
  • 取值范围:

  • ‘leftUp’:播放器靠左的二分之一内的上滑事件,每滑动5(百分比)回调执行一次

  • ‘leftDown’:播放器靠左的二分之一内的下滑事件,每滑动5(百分比)回调执行一次

  • ‘rightUp’:播放器靠右的二分之一内的上滑事件,每滑动5(百分比)回调执行一次
  • ‘rightDown’:播放器靠右的二分之一内的下滑事件,每滑动5(百分比)回调执行一次
  • ‘swipeLeft’:播放器上的左滑事件,每滑动5(百分比)回调执行一次
  • ‘swipeRight’:播放器上的右滑事件,每滑动5(百分比)回调执行一次
  • ‘click’:点击播放器事件(单击手势)
  • ‘doubleClick’:双击播放器事件(单击手势)

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.removeTouchListener({
  3. name: 'doubleClick'

可提供的1.0.0及更高版本