AliyunPlayer

立即使用

initPlayer openCustomPlayer closeCustomPlayer onBack openFloatWindow prepareToPlay start show hide close stop pause replay seekToTime setCirclePlay getCurrentPosition getDuration setPlaySpeed quality snapShot setRenderRotate setRenderMirrorMode setVolume setMuteMode setScreenBrightness setDisplayMode addEventListener setOnErrorListener initDownloader prepareDownload startDownload stopDownload removeDownload isScreenLock openBarrageSwitch closeBarrageSwitch openSettingPanel closeSettingPanel unlockScreen lockScreen setMediaControllerVisible getMediaControllerVisibility fullScreen unfullScreen setFullscreenBtnVisible setBackBtnImage addTouchListener removeTouchListene

概述

概述

该模块封装了阿里云的高级播放器,除了具备基础播放器的所有功能外,还提供播放视频的高级能力,如清晰度切换,倍速播放,下载视频等功能,支持网络视频播放、本地视频播放、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))

params

rect:

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

img:

  • 类型:JSON 类型
  • 描述:(可选项)封面图(仅ios支持)
  • 内部字段:
  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. 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. w:300, //(可选项)数字类型;模块宽度(相对于所属的 Window 或 Frame;默认120
  5. h:600 //(可选项)数字类型;模块高度(相对于所属的 Window 或 Frame;默认100
  6. }

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

重播,播放上一次的url

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. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.seekToTime({
  3. position:10000
  4. },function(ret){
  5. alert(JSON.stringify(ret));
  6. });

可用性

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
  4. });

可用性

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. alert(JSON.stringify(ret));
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

prepareDownload

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. }

示例代码

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

可用性

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. }

示例代码

  1. var AliyunPlayer = api.require('AliyunPlayer');
  2. AliyunPlayer.addTouchListener({
  3. name: 'doubleClick'
  4. },function(ret){
  5. alert(JSON.stringify(ret));
  6. });

可用性

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'
  4. });

可用性

iOS系统

可提供的1.0.0及更高版本