AliyunPlayer

概述

概述

该插件封装了阿里云的高级播放器,除了具备基础播放器的所有功能外,还提供播放视频的高级能力,如清晰度切换,倍速播放,下载视频等功能,支持网络视频播放、本地视频播放、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以上机型,低端机型在使用变速功能时可能存在性能问题

iOS安全下载文件播放

如果播放的视频是安全下载后的本地文件(即经过阿里云加密转码过后的),那么还需要调用addSecurity设置一个加密校验信息,否则无法播放。

initPlayer

初始化播放器

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

initPlayer(callback(ret))

params

rect:

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

img:

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

fixedOn:

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

fixed:

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

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.initPlayer({
    rect:{
        x:0,
        y:0,
        w:320,
        h:300
    },
    img:{
        x: 0,                              
        y: 0,                            
        w:414,                           
        h:300                
        faceImg:'widget://img/album1.png', //(可选项)字符串类型;封面图;要求本地路径(widget://、fs://);默认无
                                         
    }
},function(ret){
    api.alert({msg: JSON.stringify(ret)});
})

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

openCustomPlayer

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

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

params

rect:

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

sts:

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

playAuth:

  • 类型:JSON类型
  • 描述:使用playAuth方式播放(该方式需要将视频存储在阿里云服务器,支持清晰度切换)
  • 内部字段:
{
   vid:'',        // 字符串类型;视频id
   authInfo:'',   // 字符串类型;视频认证信息
   region:''      // 点播服务的接入地域,默认为cn-shanghai
   
}

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 对象
  • 描述:视频图标
  • 内部字段:
   {
    header:{//(可选项)JSON对象;播放器顶部导航条样式 
       landscapeBackImg:'widget://img/landscapeBack.png', //(可选项)字符串类型;顶部横屏返回按钮的背景图片,要求本地路径(widget://、fs://);默认:返回左边箭头图标
       portraitBackImg:'widget://img/portraitBack.png', //(可选项)字符串类型;顶部竖屏返回按钮的背景图片,要求本地路径(widget://、fs://);默认:返回左边箭头图标
       barrageBtn:{ //(可选项)弹幕开关
        barrageOpenImg:'widget://img/open.png',//(可选项) 弹幕打开按钮,要求本地路径(widget://、fs://);默认:弹幕打开图标
        barrageCloseImg:'widget://img/close.png'//(可选项) 弹幕关闭按钮,要求本地路径(widget://、fs://);默认:弹幕关闭图标

       },
       
       setImg:'widget://img/set.png', //(可选项)弹幕按钮右边的设置按钮 ,要求本地路径(widget://、fs://);默认:设置图标
       openFloatWindowImg:'widget://img/openFloatWindowImg.png',//(可选项) 打开悬浮窗按钮,要求本地路径(widget://、fs://);不传则按钮不存在(注意:该按钮只在竖屏的时候显示)
       downloadBtnImg:'widget://img/downloadImg.png' //(可选项)下载按钮图标设置,支持路径widget:// & fs://;不传不显示
           },  
    footer:{                                  //(可选项)JSON对象;播放器底部导航条样式    
         playBtn:{
                 playImg:'widget://img/play.png',  //(可选项)字符串类型;底部播放按钮的背景图片,要求本地路径(widget://、fs://);默认:播放按钮图标
                 pauseImg:'widget://img/pause.png',//(可选项)字符串类型;底部暂停按钮的背景图片,要求本地路径(widget://、fs://);默认:暂停按钮图标 
             },               
         seekBar:{
              sliderImg:'widget://img/slder.png', //(可选项)字符串类型;底部进度条滑块背景图片,要求本地路径(widget://、fs://);默认:滑块小图标
             },
         nextBtn:{
             nextImg:'widget://img/nextImg.png', //(可选项)字符串类型;底部下一集背景图片,要求本地路径(widget://、fs://);默认:下一集按钮图标
             },
             fullscreenBtn:{
                 verticalImg:'widget://img/vertical.png',       //(可选项)字符串类型;底部横竖屏切换按钮的背景图片,竖屏状态下的切换按钮,要求本地路径(widget://、fs://);默认:竖屏按钮图标
                 horizontalImg:'widget://img/horizontal.png',     //(可选项)字符串类型;底部横竖屏切换按钮的背景图片,横屏状态下的切换按钮,要求本地路径(widget://、fs://);默认:横屏按钮图标
             }
             
             
    },
    
     lockBtn:{
                 screenLockImg:'widget://img/screenLock.png',       //(可选项)字符串类型;锁屏按钮的背景图片,要求本地路径(widget://、fs://);默认:锁屏按钮图标
                 screenUnlockImg:'widget://img/screenUnlock.png',     //(可选项)字符串类型;解锁按钮的背景图片,要求本地路径(widget://、fs://);默认:未锁屏按钮图标
             }
}

quality:

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

qualityList:

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

img:

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

fixedOn:

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

fixed:

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

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.openCustomPlayer({
    rect:{
          x:0,
          y:0,
          w:200,
          h:200
    }
    url:'xxx',
    img:{
         x: 0,                      
        y: 0,                            
        w:200,                            
        h:200,                 
        faceImg:'widget://img/landscapeBack.png'
    }
}, function(ret){
    api.alert({msg: JSON.stringify(ret)});
})

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closeCustomPlayer

关闭自定义播放器

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

onBack

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

示例代码

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

可用性

ios,Android系统

可提供的1.0.0及更高版本

openFloatWindow

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

params

rect:

  • 类型:JSON 类型
  • 描述:(可选项)窗口的位置及大小
  • 内部字段:
{
    x: 0,                              //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
    y: 0,                              //(可选项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
    w:300,                             //(可选项)数字类型;插件宽度(相对于所属的 Window 或 Frame;默认120
    h:600                              //(可选项)数字类型;插件高度(相对于所属的 Window 或 Frame;默认100
}

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.openFloatWindow(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

prepareToPlay

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

prepareToPlay({params},callback(ret))

params

sts:

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

playAuth:

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

url:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.prepareToPlay({
url:''
})

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

show

显示

show()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

hide

隐藏

hide()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

close

关闭

close()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

start

开始播放

start()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stop

停止播放

stop()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

pause

暂停播放

pause()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

replay

重播,播放上一次的url

replay()

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

seekToTime

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

seekToTime({params})

params

position:

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

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.seekToTime({
    position:10000
},function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

quality

清晰度切换

quality({params})

params

quality:

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

示例代码

var UIAlivcLivePlayer = api.require('UIAlivcLivePlayer');
UIAlivcLivePlayer.quality({
    quality:'FD'
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setCirclePlay

循环播放设置

setCirclePlay({params})

params

isCirclePlay:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getCurrentPosition

获取当前播放位置

getCurrentPosition(callback(ret))

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.getCurrentPosition(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getDuration

获取视频长度

getDuration(callback(ret))

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
{
    duration : 10000 //视频长度
}		   

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.getDuration(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setPlaySpeed

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

setPlaySpeed({params})

params

speed:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

snapShot

截图

snapShot({params},callback(ret))

params

path:

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

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.snapShot({
    path:'fs://test/tt.jpg'
},function(ret){
    api.alert({msg: JSON.stringify(ret)});
})

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setRenderRotate

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

setRenderRotate({params})

params

rotate:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setRenderMirrorMode

setRenderMirrorMode({params})

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

params

mode:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setVolume

setVolume({params})

音量设置

params

volume:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.setVolume({
    volume:50
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setMuteMode

setMuteMode({params})

静音设置

params

isMute

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setScreenBrightness

setScreenBrightness({params})

设置屏幕亮度

params

brightness:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setDisplayMode

setDisplayMode({params})

设置显示模式

params

scalingMode:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addEventListener

addEventListener()

添加播放器监听事件

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
{
    eventType : 'prepared'  // 准备完成
                    // 缓冲中 buffer
                    // 暂停后恢复播放时触发 play (android状态变更为播放即出发)
                   // 播放视频首帧显示出来时触发 firstFrame
                   // 视频暂停时触发 pause
                   // 主动使用stop接口时触发 stop
                   // 视频正常播放完成时触发 finish
                   // 视频Seek完成时触发 seekDone 
                   // 获取流成功时触发 trackReady(仅android支持)
                   //字幕显示触发subtitleShow(仅android支持)
                   //字幕隐藏触发subtitleHide(仅android支持)
                   
                   // 播放器鉴权数据过期回调,出现过期可重新prepare新的地址或进行UI上的错误提醒 timeExpired **该参数仅支持iOS**

                   // 播放过程中鉴权即将过期时提供的回调消息(过期前一分钟回调) addressExpired **注意:鉴权有效期为2小时,在这个回调里面可以提前请求新的鉴权,stop上一次播放,prepare新的地址,seek到当前位置**  **该参数仅支持iOS**

                   
          
}        

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.addEventListener(function(ret){
       api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setOnErrorListener

setOnErrorListener()

异常监听 (错误码及错误信息请参考阿里云 官方文档

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   code: 0,
   msg: ''
}        

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.setOnErrorListener(function(ret){
       api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

initDownloader

initDownloader

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

初始化下载器

params

downloadDir:

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

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.initDownloader({
     downloadDir:'fs://',
},function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

prepareDownload

prepareDownload

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

params

playAuth:

  • 类型:JSON类型
  • 描述:使用playAuth方式
  • 内部字段:
{
   vid:'',        // 字符串类型
   accessKeyId:'',    // 字符串类型,iOS不支持
   accessKeySecret:''  ,  // 字符串类型,iOS不支持
   securityToken:''    // 字符串类型,iOS不支持
     authInfo:'',    // 字符串类型;视频认证信息
     format:'',             //(可选项)字符串类型;视频格式,取值范围:mp4,mp3,flv,m3u8;默认:'mp4';仅支持iOS
     region:'',             //(可选项)字符串类型;用户region信息;默认:'cn-shanghai';仅支持iOS
}

trackIndex:

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

quality:

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

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
{
         prepared:[mediaInfo ...], // JSON数组,可以下载的项

}
// mediaInfo 结构如下:
mediaInfo:{
    vid:"",           // 字符串类型;视频id
    format:"",        // 字符串;视频格式 
    coverUrl:"",      // 字符串;遮罩Url
    downloadFilePath:''//字符串类型;下载地址(仅ios支持)
    size:1000,         // 数字类型;视频大小(仅ios支持)
    duration:123230,  // 数字类型;视频长度
    quality:"",       // 字符串类型;视频质量(仅ios支持)
    title:"",         // 字符串类型;视频标题
}

err:

  • 类型:JSON对象
  • 描述:错误信息返回
  • 内部字段
{
    errorCode:,       //数字类型;错误码
    msg:'',                //字符串类型;错误信息
}

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.prepareDownload({
playAuth:{
   vid:'',       
   authInfo:''  
}
},function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

startDownload

开始下载

startDownload()

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.startDownload();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stopDownload

停止下载

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

removeDownload

删除下载(仅ios支持)

params

vid:

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

path:

  • 类型:字符串
  • 描述:保存文件的路径

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.removeDownload({
   vid:''     
});

可用性

iOS系统

可提供的1.0.0及更高版本

addDownloadListener

addDownloadListener(callback(ret))

添加下载监听

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
{
        status: true ,          //布尔类型;是否成功,true|false,下载成功或者失败返回
        progress:50,             // 数字类型;当前下载的进度百分比
        downloadedFilePath:'', //字符串类型;下载之后的文件路径,下载完成后返回
         code:0,             // 数字类型;;错误码,下载失败后返回
         message:'' //字符串类型;错误信息,下载失败后返回
             
}

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.addDownloadListener(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.2.4及更高版本

isScreenLock

是否锁屏

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.isScreenLock(function(ret){
       api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS 、Android系统

可提供的1.0.0及更高版本

openSettingPanel

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

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.openSettingPanel(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closeSettingPanel

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

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.closeSettingPanel(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

unlockScreen

解锁屏幕

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.unlockScreen(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

lockScreen

锁定屏幕

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.lockScreen(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

openBarrageSwitch

打开弹幕开关

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.openBarrageSwitch(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closeBarrageSwitch

关闭弹幕开关

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.closeBarrageSwitch(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setMediaControllerVisible

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

params

visible:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.setMediaControllerVisible({
    visible : true
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getMediaControllerVisibility

媒体控制器是否隐藏

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.getMediaControllerVisibility(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

fullScreen

设置播放器为全屏

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.fullScreen(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

unfullScreen

退出全屏

callback

ret:

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

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.unfullScreen(function(ret){
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setFullscreenBtnVisible

设置全屏按钮的可见性

params

visible:

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

示例代码

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

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setBackBtnImage

设置返回按钮图片

params

backImg:

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

示例代码

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

可用性

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 对象
  • 内部字段:
{
   eventType:             //字符串类型:监听到的事件
                          //leftUp
                          //leftDown
                          //rightUp
                          //rightDown
                          //swipeLeft
                          //click
                          //doubleClick
}

示例代码

    var AliyunPlayer = api.require('AliyunPlayer');
        AliyunPlayer.addTouchListener({
            name: 'doubleClick'
        },function(ret){
            api.alert({msg: JSON.stringify(ret)});
        });

可用性

iOS系统

可提供的1.0.0及更高版本

removeTouchListener

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

params

name:

  • 类型:字符串

  • 描述:所要移除的监听的动作名称

  • 取值范围:

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

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

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

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

  • 'swipeLeft':播放器上的左滑事件,每滑动5(百分比)回调执行一次

  • 'swipeRight':播放器上的右滑事件,每滑动5(百分比)回调执行一次

  • 'click':点击播放器事件(单击手势)

  • 'doubleClick':双击播放器事件(单击手势)

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.removeTouchListener({
    name: 'doubleClick'
});

可用性

iOS系统

可提供的1.0.0及更高版本

setDownloadVerifyFile

设置加密下载校验文件

setDownloadVerifyFile({params})

params

filePath:

  • 类型:字符串类型
  • 描述:校验文件路径,支持fs路径

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.setDownloadVerifyFile({
    filePath: ''
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

openFloatSetting

悬浮播放时需要先给APP申请允许显示在其他应用上层的权限,调用本接口申请此权限

openFloatSetting(callback(ret))

callback

ret:

  • 类型:布尔类型
  • 描述:跳转到权限设置界面,返回时如果权限打开会返回true

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.openFloatSetting(function(ret){
    alert(JSON.stringify(ret));
});

可用性

Android系统

可提供的1.0.0及更高版本

hasFloatSetting

是否拥有悬浮播放的权限

hasFloatSetting(callback(ret))

callback

ret:

  • 类型:布尔类型
  • 描述:权限打开时会返回true

示例代码

var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.hasFloatSetting(function(ret){
    alert(JSON.stringify(ret));
});

可用性

Android系统

可提供的1.0.0及更高版本

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