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以上机型,低端机型在使用变速功能时可能存在性能问题 4.模块1.3.3版本以后需要先申请license,具体参考阿里云官方文档[https://help.aliyun.com/document_detail/469167.htm?spm=a2c4g.124711.0.0.44337fa9uXSuu2#task-2227754]
1.3.3版本以后Android端配置license (1) 申请license之后,把下载的license.crt文件放到前端工程widget根目录下 (2) 在config.xml中配置申请的licensekey,示例如下:
<meta-data name="com.aliyun.alivc_license.licensekey" value="your licensekey"/>
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){
alert(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://);默认:设置图标
setSize: 24, //(可选项)数字类型;弹幕按钮右边的设置按钮大小;默认:24
downloadSize: 24, //(可选项)数字类型;弹幕按钮右边的下载按钮大小;默认:24
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://);默认:暂停按钮图标
playSize: 24, //(可选项)数字类型;播放/暂停按钮按钮大小;默认:24
},
seekBar: {
sliderImg: 'widget://img/slder.png', //(可选项)字符串类型;底部进度条滑块背景图片,要求本地路径(widget://、fs://);默认:滑块小图标
},
nextBtn: {
nextImg: 'widget://img/nextImg.png', //(可选项)字符串类型;底部下一集背景图片,要求本地路径(widget://、fs://);默认:下一集按钮图标
nextSize: 24, //(可选项)数字类型;下一集按钮大小;默认:24
},
fullscreenBtn: {
verticalImg: 'widget://img/vertical.png', //(可选项)字符串类型;底部横竖屏切换按钮的背景图片,竖屏状态下的切换按钮,要求本地路径(widget://、fs://);默认:竖屏按钮图标
horizontalImg: 'widget://img/horizontal.png', //(可选项)字符串类型;底部横竖屏切换按钮的背景图片,横屏状态下的切换按钮,要求本地路径(widget://、fs://);默认:横屏按钮图标
fullscreenSize: 24, //(可选项)数字类型;横竖屏切换按钮大小;默认:24
}
},
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){
alert(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){
alert(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){
alert(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){
alert(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){
alert(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){
alert(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){
alert(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){
alert(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){
alert(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){
alert(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){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.2.4及更高版本
isScreenLock
是否锁屏
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
isLock: true // 布尔类型;是否锁屏
}
示例代码
var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.isScreenLock(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS 、Android系统
可提供的1.0.0及更高版本
openSettingPanel
打开设置面板(音量,亮度面板)
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
isOpen: true //布尔类型;打开成功
}
示例代码
var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.openSettingPanel(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
closeSettingPanel
关闭设置面板(音量,亮度面板)
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
isClose: true //布尔类型;关闭成功
}
示例代码
var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.closeSettingPanel(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
unlockScreen
解锁屏幕
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status: true //布尔类型;打开成功
}
示例代码
var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.unlockScreen(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
lockScreen
锁定屏幕
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status: true //布尔类型;关闭成功
}
示例代码
var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.lockScreen(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
openBarrageSwitch
打开弹幕开关
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
isOpen: true //布尔类型;打开成功
}
示例代码
var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.openBarrageSwitch(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
closeBarrageSwitch
关闭弹幕开关
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
isClose: true //布尔类型;关闭成功
}
示例代码
var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.closeBarrageSwitch(function(ret){
alert(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){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
fullScreen
设置播放器为全屏
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status:true // 返回状态
}
示例代码
var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.fullScreen(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
unfullScreen
退出全屏
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status:true // 返回状态
}
示例代码
var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.unfullScreen(function(ret){
alert(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){
alert(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及更高版本
setLanguage
设置定制播放器文字语言
setLanguage({params})
params
language:
- 类型:字符串类型
- 描述:(可选项)定制播放器文字语言
- 取值范围:
- zh:简体中文
- en:英文
- fr:法文
- ru:俄文
- 默认:'zh'
示例代码
var AliyunPlayer = api.require('AliyunPlayer');
AliyunPlayer.setLanguage({
language: 'en'
});
可用性
iOS系统,Android系统
可提供的1.3.1及更高版本