open close hide show pause resume isPlaying resetURL isFull setFull getDuration getPosition seekTo
setRenderType setRoundRectShape setAspectRatio setDecoder setSpeed setVolume
为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码供您参考。
插件简介
本插件封装 MediaPlayer、IjkPlayer、ExoPlayer等解码器的视频播放器,插件自带UI,可自定义所有按钮和样式,支持解码方案的切换,支持倍速播放,支持调整画面显示比例,支持圆角处理,边缘阴影效果,支持切换到window播放,支持手势控制音量,量度,进度等功能。也可以直接使用默认界面,如有其它特殊修改需求也可以企鹅联系我定制:1161277121
Android应用打包最低版本为4.0.3。
打开播放器
open({params}, callback(ret))
rect:
{
x:0,
y:0,
w:0,
h:0
}
fixedOn:
fixed:
url:
title:
isFullVideo:
landscape_reverse:
isWindowPlay:
renderType:
decoder:
speed:
volume:
defaultConfig:
{//可自定义图片的参数有 back、play、pause、full(全屏时需设置退出全屏图片)
roundRectShape:0,//设置圆角(默认0)(设置仅安卓5.0.1及以上版本有效)
aspectRatio:"FIT",//画面比例 16_9、4_3、FILL、MATCH、FIT、ORIGIN(默认FIT)
controllerTop:{show:true,h:36},//显示顶部包括返回和标题 h高度(默认36)show是否显示(默认true)
controllerBack:{show:true,back:""},//显示顶部返回(Top为false时 此字段无效)show是否显示(默认全屏为true 普通和窗口为false) back的图片 宽高(默认36)高不会超过top的高度 padding(默认都是8) margin(默认l、r是5 其它0) background背景(默认透明)
controllerTitle:{show:true,size:15,color:"#FFFFFF",padding:{l:0,t:0,r:0,b:0}},//显示顶部标题(Top为false时 此字段无效)show是否显示(默认true) size字体大小(默认15) color字体颜色(默认白色) padding margin(默认都是0)
controllerBottom:{show:true,h:36},//显示底部包括播放 当前播放时间 进度条 总时间 全屏 show是否显示(默认true) h高度(默认36)
controllerPlayState:{show:true,play:"",pause:"",w:36,h:36,padding:{l:10,t:10,r:10,b:10},margin:{l:5,t:0,r:5,b:0}},//显示播放、暂停(Bottom为false时 此字段无效)show是否显示(默认true) play的图片和pause的图片 宽高(默认36)高不会超过bottom的高度 padding(默认都是10) margin(默认l、r是5 其它0) background背景(默认透明)
controllerCurrTime:{show:true,size:12,color:"#FFFFFF"},//显示当前播放时间(Bottom为false时 此字段无效)show是否显示(默认true) size字体大小(默认12) color字体颜色(默认白色) padding margin(默认都是0)
controllerSeekBar:{show:true,h:4,background:"#33FFFFFF",progress:"#F00",secondaryProgress:"#33FFFFFF",thumb:"#F00"},//显示控制进度条(Bottom为false时 此字段无效)show是否显示(默认true) background条的背景(默认33FFFFFF) progress播放过后的颜色(默认F0F0F0) secondaryProgress缓冲的颜色(默认33FFFFFF) thumb圆圈的颜色(默认#FFF)(设置仅安卓5.0.1及以上版本有效)
controllerTotalTime:{show:true,size:12,color:"#FFFFFF",margin:{}},//显示总时长(Bottom为false时 此字段无效)show是否显示(默认true) size字体大小(默认12) color字体颜色(默认白色) padding margin(默认都是0)
controllerFull:{show:true,full:"",w:36,h:36,padding:{l:8,t:8,r:8,b:8},margin:{l:5,t:0,r:5,b:0},background:"#00000000"},//显示全屏(Bottom为false时 此字段无效)show是否显示(窗口为false 普通和全屏为true) 自定义默认图 宽高(默认36)高不会超过bottom的高度 padding(默认都是8) margin(默认l、r是5 其它0) background背景(默认透明)
controllerBottomBar:{show:true,h:2,background:"#33FFFFFF",progress:"#8367fe",secondaryProgress:"#33FFFFFF"},//显示播放中进度条(底下的一小截) show是否显示(默认true) h高度(默认2) background条的背景(默认33FFFFFF) progress播放过后的颜色(默认8367fe) secondaryProgress缓冲的颜色(默认33FFFFFF)(设置仅安卓5.0.1及以上版本有效)
showController:true,//是否默认先展开控制视图 否则手动点击打开
};
fullConfig:
{
//同配置配置一样 具体写法参考示例demo页面
//roundRectShape 圆角全屏无效
}
windowConfig:
{
//同配置配置一样 具体写法参考示例demo页面 多出如下参数
elevationShadow:20,//窗口的阴影
x:api.frameWidth*0.1,//打开窗口x点 默认手机宽度10%
y:70,//y点 默认70
w:api.frameWidth*0.8,//宽度 默认手机宽度80%
h:(api.frameWidth*0.8)*9/16 //默认宽的 9/16
}
ret:
{
status:true, //成功
result:"",//返回类型 open打开成功 onAssistHandle事件处理 onPlayerEvent事件回调
code:"" //具体代码位请看附加文档: https://docs.qq.com/doc/DTkpiZEp4YkdwZ0Fj
}
var config = {//可自定义图片的参数有 back、play、pause、full(全屏时需设置退出全屏图片)
roundRectShape:0,//设置圆角(默认0)(设置仅安卓5.0.1及以上版本有效)
aspectRatio:"FIT",//画面比例 16_9、4_3、FILL、MATCH、FIT、ORIGIN(默认FIT)
controllerTop:{show:true,h:36},//显示顶部包括返回和标题 h高度(默认36)show是否显示(默认true)
controllerBack:{show:true,back:""},//显示顶部返回(Top为false时 此字段无效)show是否显示(默认全屏为true 普通和窗口为false) back的图片 宽高(默认36)高不会超过top的高度 padding(默认都是8) margin(默认l、r是5 其它0) background背景(默认透明)
controllerTitle:{show:true,size:15,color:"#FFFFFF",padding:{l:0,t:0,r:0,b:0}},//显示顶部标题(Top为false时 此字段无效)show是否显示(默认true) size字体大小(默认15) color字体颜色(默认白色) padding margin(默认都是0)
controllerBottom:{show:true,h:36},//显示底部包括播放 当前播放时间 进度条 总时间 全屏 show是否显示(默认true) h高度(默认36)
controllerPlayState:{show:true,play:"",pause:"",w:36,h:36,padding:{l:10,t:10,r:10,b:10},margin:{l:5,t:0,r:5,b:0}},//显示播放、暂停(Bottom为false时 此字段无效)show是否显示(默认true) play的图片和pause的图片 宽高(默认36)高不会超过bottom的高度 padding(默认都是10) margin(默认l、r是5 其它0) background背景(默认透明)
controllerCurrTime:{show:true,size:12,color:"#FFFFFF"},//显示当前播放时间(Bottom为false时 此字段无效)show是否显示(默认true) size字体大小(默认12) color字体颜色(默认白色) padding margin(默认都是0)
controllerSeekBar:{show:true,h:4,background:"#33FFFFFF",progress:"#F0F0F0",secondaryProgress:"#33FFFFFF",thumb:"#FFF"},//显示控制进度条(Bottom为false时 此字段无效)show是否显示(默认true) background条的背景(默认33FFFFFF) progress播放过后的颜色(默认F0F0F0) secondaryProgress缓冲的颜色(默认33FFFFFF) thumb圆圈的颜色(默认#FFF)(设置仅安卓5.0.1及以上版本有效)
controllerTotalTime:{show:true,size:12,color:"#FFFFFF",margin:{}},//显示总时长(Bottom为false时 此字段无效)show是否显示(默认true) size字体大小(默认12) color字体颜色(默认白色) padding margin(默认都是0)
controllerFull:{show:true,full:"",w:36,h:36,padding:{l:8,t:8,r:8,b:8},margin:{l:5,t:0,r:5,b:0},background:"#00000000"},//显示全屏(Bottom为false时 此字段无效)show是否显示(窗口为false 普通和全屏为true) 自定义默认图 宽高(默认36)高不会超过bottom的高度 padding(默认都是8) margin(默认l、r是5 其它0) background背景(默认透明)
controllerBottomBar:{show:true,h:2,background:"#33FFFFFF",progress:"#8367fe",secondaryProgress:"#33FFFFFF"},//显示播放中进度条(底下的一小截) show是否显示(默认true) h高度(默认2) background条的背景(默认33FFFFFF) progress播放过后的颜色(默认8367fe) secondaryProgress缓冲的颜色(默认33FFFFFF)(设置仅安卓5.0.1及以上版本有效)
showController:true,//是否默认先展开控制视图 否则手动点击打开
};
if(false){//直播信号时隐藏时间进度条
config.controllerCurrTime.show = false;
config.controllerSeekBar.show = false;
config.controllerTotalTime.show = false;
}
var defaultConfig = JSON.parse(JSON.stringify(config));//复制 不改变原对象
var fullConfig = JSON.parse(JSON.stringify(config));//复制 不改变原对象
var windowConfig = JSON.parse(JSON.stringify(config));//复制 不改变原对象
//默认没有返回按钮 给标题加个paddingLeft
defaultConfig.controllerTitle.padding.l = 10;
//修改全屏模式下的参数
fullConfig.controllerBack.show = true;//显示返回
//修改窗口模式下的参数
windowConfig.controllerFull.show = false;//隐藏全屏 窗口最好隐藏全屏 不然用户home到桌面 按全屏会出问题
windowConfig.controllerBack.show = false;//隐藏返回
//window 特有参数
windowConfig.roundRectShape = 20;//窗口圆角
windowConfig.elevationShadow = 20;//窗口的阴影
windowConfig.x = api.frameWidth*0.1;//打开窗口x点 默认手机宽度10%
windowConfig.y = 70;//默认70
windowConfig.w = api.frameWidth*0.8;//默认手机宽度80%
windowConfig.h = (api.frameWidth*0.8)*9/16;//默认宽的 9/16
//窗口没有返回按钮 给标题加个paddingLeft
windowConfig.controllerTitle.padding.l = 10;
//窗口默认没有全屏 给总时间加个距右
windowConfig.controllerTotalTime.margin.r = 15;
var param = {
rect:{ //打开区域
x:0,
y:api.safeArea.top,
w:api.frameWidth,
h:220
},
fixedOn:api.frameName,
fixed:true,
url:_addMsg.url,
title:_addMsg.title,
isFullVideo:false,//是否默认全屏播放 全屏时rect无效
isWindowPlay:false,//是否默认窗口播放 全屏时窗口播放无效
landscape_reverse:false,//反向全屏
renderType:0,//设置渲染类型 0、TextureView 1、SurfaceView 默认0
decoder:_addMsg.decoder || 0,//解码器 0、MediaPlayer 1、IjkPlayer 2、ExoPlayer 默认0
speed:1,//倍数 默认1
volume:true,//是否开启声音 默认true
defaultConfig:defaultConfig,//默认状态下的配置
fullConfig:fullConfig,//全屏下配置 共用默认配置
windowConfig:windowConfig,//窗口下配置
controllerLoading:{show:true,w:36,h:36,loading:"widget://image/icon_play.png",size:14,text:""},//show是否显示加载中视图(默认true) 图片宽高默认36 loading自定义图片 size字体大小(默认14) text自定义loading文字(默认当前网速)
controllerGesture:{show:true},//show是否开启手势控制 音量 量度 进度条视图(默认true)
controller:{show:true},//show是否开启播放控制视图(默认true)
controllerComplete:{show:true},//show是否开启结束重播视图(默认true)
controllerError:{show:true},//show是否开启网络出错提示视图(默认true)
controllerClose:{show:false,w:25,h:25,close:"",margin:{t:5,r:5}},//show是否开启右上角X视图(默认false) 打开窗口模式下自动开启 宽高默认25 自定义图片 padding(默认0) margin(t、r是10,其它0) background背景默认22000000
};
zyPlayVideo.open(param,function(ret){
if(ret.status){
//播放器的事件处理 以下事件全部由js层处理 可更换图片高度集成其它需求
if(ret.result == "onAssistHandle"){
switch(ret.code){
case "-100"://顶部左边返回
case "-101"://窗口模式下的X视图
keyBack();
break;
case "-104"://点击了界面上的屏幕切换 在当前应用上才切换(窗口模式下切换会出问题。)
if(zyPlayVideo.isTopActivity()){
zyPlayVideo.setFull({full:!zyPlayVideo.isFull()});
}
break;
}
}
//更多回调请看附加文档: https://docs.qq.com/doc/DTkpiZEp4YkdwZ0Fj
}
console.log("zyPlayVideo:"+JSON.stringify(ret));
});
Android系统
可提供的1.0.0及更高版本
关闭视频
close()
var zyPlayVideo = api.require('zyPlayVideo');
zyPlayVideo.close();
Android系统
可提供的1.0.0及更高版本
隐藏视频
hide()
var zyPlayVideo = api.require('zyPlayVideo');
zyPlayVideo.hide();
Android系统
可提供的1.0.0及更高版本
显示已隐藏视频
show()
var zyPlayVideo = api.require('zyPlayVideo');
zyPlayVideo.show();
Android系统
可提供的1.0.0及更高版本
暂停播放
pause()
var zyPlayVideo = api.require('zyPlayVideo');
zyPlayVideo.pause();
Android系统
可提供的1.0.0及更高版本
恢复播放
resume()
var zyPlayVideo = api.require('zyPlayVideo');
zyPlayVideo.resume();
Android系统
可提供的1.0.0及更高版本
是否播放中
isPlaying()
var zyPlayVideo = api.require('zyPlayVideo');
alert(zyPlayVideo.isPlaying());
Android系统
可提供的1.0.0及更高版本
打开时更换播放地址
resetURL({params}, callback(ret))
url:
title:
decoder:
var zyPlayVideo = api.require('zyPlayVideo');
var param = {
url:"http://7o50kb.com2.z0.glb.qiniucdn.com/c1.1.mp4",
title:"课程",
decoder:1
};
zyPlayVideo.resetURL(param);
Android系统
可提供的1.0.0及更高版本
是否全屏播放
isFull()
var zyPlayVideo = api.require('zyPlayVideo');
alert(zyPlayVideo.isFull());
Android系统
可提供的1.0.0及更高版本
设置是否全屏
setFull({params}, callback(ret))
full:
var zyPlayVideo = api.require('zyPlayVideo');
var param = {
full:true|false
};
zyPlayVideo.setFull(param);
Android系统
可提供的1.0.0及更高版本
获取视频总时长(毫秒)
getDuration()
var zyPlayVideo = api.require('zyPlayVideo');
alert(zyPlayVideo.getDuration());
Android系统
可提供的1.0.0及更高版本
获取视频当前播放时长(毫秒)
getPosition()
var zyPlayVideo = api.require('zyPlayVideo');
alert(zyPlayVideo.getPosition());
Android系统
可提供的1.0.0及更高版本
跳转到指定位置(毫秒)
seekTo({params}, callback(ret))
mac:
var zyPlayVideo = api.require('zyPlayVideo');
var param = {
mac:60000//1分钟 60*1000
};
zyPlayVideo.seekTo(param);
Android系统
可提供的1.0.0及更高版本
设置视频渲染类型
setRenderType({params}, callback(ret))
renderType:
var zyPlayVideo = api.require('zyPlayVideo');
var param = {
renderType:1
};
zyPlayVideo.setRenderType(param);
Android系统
可提供的1.0.0及更高版本
设置视频圆角
setRoundRectShape({params}, callback(ret))
roundRectShape:
var zyPlayVideo = api.require('zyPlayVideo');
var param = {
roundRectShape:15
};
zyPlayVideo.setRoundRectShape(param);
Android系统
可提供的1.0.0及更高版本
设置视频画面比例
setAspectRatio({params}, callback(ret))
aspectRatio:
var zyPlayVideo = api.require('zyPlayVideo');
var param = {
aspectRatio:"FILL"
};
zyPlayVideo.setAspectRatio(param);
Android系统
可提供的1.0.0及更高版本
设置视频解码器
setDecoder({params}, callback(ret))
decoder:
var zyPlayVideo = api.require('zyPlayVideo');
var param = {
decoder:0
};
zyPlayVideo.setDecoder(param);
Android系统
可提供的1.0.0及更高版本
设置视频倍数
setSpeed({params}, callback(ret))
speed:
var zyPlayVideo = api.require('zyPlayVideo');
var param = {
speed:1
};
zyPlayVideo.setSpeed(param);
Android系统
可提供的1.0.0及更高版本
设置是否开启声音
setVolume({params}, callback(ret))
volume:
var zyPlayVideo = api.require('zyPlayVideo');
var param = {
volume:true
};
zyPlayVideo.setVolume(param);
Android系统
可提供的1.0.0及更高版本
是否窗口播放
isWindowShow()
var zyPlayVideo = api.require('zyPlayVideo');
alert(zyPlayVideo.isWindowShow());
Android系统
可提供的1.0.0及更高版本
打开窗口播放 (会自动请求权限, 返回权限失败时请手动在设置开启)
setWindowPlay(callback(ret))
ret:
{
status:true, //成功|失败
result:"", 失败会走回调 成功没有回调
}
var zyPlayVideo = api.require('zyPlayVideo');
zyPlayVideo.setWindowPlay(function(ret){
if(!ret.status){
//这里跳转设置权限页 请求权限
}
});
Android系统
可提供的1.0.0及更高版本
关闭窗口播放
closeWindowPlay()
var zyPlayVideo = api.require('zyPlayVideo');
zyPlayVideo.closeWindowPlay();
Android系统
可提供的1.0.0及更高版本
当前应用是否没有返回桌面 即app是否正在被用户浏览中
isTopActivity()
var zyPlayVideo = api.require('zyPlayVideo');
alert(zyPlayVideo.isTopActivity());
Android系统
可提供的1.0.0及更高版本
获取播放器播放的参数
getParameter(callback(ret))
ret:
{
status:true, //成功
result:"", //格式请查看附加文档 https://docs.qq.com/doc/DTkpiZEp4YkdwZ0Fj
}
var zyPlayVideo = api.require('zyPlayVideo');
zyPlayVideo.getParameter(function(ret){
alert(JSON.stringify(JSON.parse(ret.result)));
});
Android系统
可提供的1.0.0及更高版本
移除视图组件
removeReceiver({param},callback(ret))
name:
ret:
{
status:true, //成功|失败
result:"", //
}
var zyPlayVideo = api.require('zyPlayVideo');
var param = {
name:"controller_cover",//
};
zyPlayVideo.removeReceiver(param,function(ret){
if(ret.status){
alert("移除成功");
}else{
alert(ret.result);
}
});
Android系统
可提供的1.0.0及更高版本
增加视图组件
addReceiver({param},callback(ret))
name:
ret:
{
status:true, //成功|失败
result:"", //
}
var zyPlayVideo = api.require('zyPlayVideo');
var param = {
name:"controller_cover",//
};
zyPlayVideo.addReceiver(param,function(ret){
if(ret.status){
alert("添加成功");
}else{
alert(ret.result);
}
});
Android系统
可提供的1.0.0及更高版本