为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
neteasePlayer 封装了网易云视频播放器。可快进、快退设置播放位置等操作,亦可通过手势设置系统声音大小。接口可获取插件上的各种手势操作事件。使用本插件相当于open一个window。本插件通过 open 接口,打开一个纯播放器界面
###功能特性
支持 HTTP、RTMP、HLS 协议的流媒体播放
支持常见的音视频文件播放(MP4、flv、MP3 等)
支持 MediaCodec 硬件解码;支持硬件解码(iOS 8.0及以上)
支持多种画面预览模式(填充,拉伸,裁剪)
支持 ARM, ARMv7a, ARM64v8a, X86 架构
支持的CPU架构:armv7、arm64、i386、x86_64
支持 Android 4.0及以上系统,支持iOS 7.0及以上系统
支持音频后台播放
可高度定制化播放器UI控件
优化 RTMP 直播首屏秒开
优化 RTMP 直播累积延时
打开一个自带界面的视频播放器,本播放器为全屏横屏显示,支持屏幕随设备自动旋转。用户单击播放器时,会弹出 foot 和 head 导航条,再次单击则关闭之。
open({params}, callback(ret, err))
title:
definition:
["高清","标清","流畅"]
styles:
{
head:{//(可选项)JSON对象;播放器顶部导航条样式
bg: 'rgba(161,161,161,0.5)', //(可选项)字符串类型;顶部导航条背景,支持#、rgb、rgba、img;默认:rgba(161,161,161,0.5)
height: 44, //(可选项)数字类型;顶部导航条的高;默认:44
title:{
size:13, //(可选项)数字类型;顶部标题字体大小;默认:13
color:'#fff', //(可选项)字符串类型;顶部标题字体颜色;默认:#fff
width:100, //(可选项)标题的宽度,文本超过该宽度,显示...
leftMargin:10 //(可选项)距离左边控件的外边距,默认:10
},
backSize: 44, //(可选项)数字类型;顶部返回按钮大小;默认:44
backImg:'fs://img/back.png', //(可选项)字符串类型;顶部返回按钮的背景图片,要求本地路径(widget://、fs://);默认:返回小箭头图标
definition:{
bg:'#fff' //(可选项)数字类型;清晰度背景颜色;默认:'#00000'
textSize:14, //(可选项)数字类型;清晰度标签大小;默认:14
textColor:"#FFF", //(可选项)字符串类型;清晰度标签颜色,支持#、rgba、rgb;默认:#FFF
textWidth: 30, //(可选项) 数字类型;清晰度的宽度
marginRight:5 // (可选项) 数字类型;右边距,默认:5
},
playCenterBtn:{
size : 44, //(可选项)数字类型;屏幕中间的播放/暂停按钮大小;默认:44
playCenterImg:'fs://img/play.png', //(可选项)字符串类型;底部播放按钮的背景图片,要求本地路径(widget://、fs://);默认:播放按钮图标
pauseCenterImg:'fs://img/pause.png',//(可选项)字符串类型;底部暂停按钮的背景图片,要求本地路径(widget://、fs://);默认:暂停按钮图标
},
foot:{ //(可选项)JSON对象;播放器底部导航条样式
bg: 'rgba(161,161,161,0.5)', //(可选项)字符串类型;底部导航条背景,支持#、rgb、rgba、img;默认:rgba(161,161,161,0.5)
height: 44, //(可选项)数字类型;底部导航条的高;默认:44
playBtn:{
size : 44, //(可选项)数字类型;底部播放/暂停按钮大小;默认:44
playImg:'fs://img/play.png', //(可选项)字符串类型;底部播放按钮的背景图片,要求本地路径(widget://、fs://);默认:播放按钮图标
pauseImg:'fs://img/pause.png',//(可选项)字符串类型;底部暂停按钮的背景图片,要求本地路径(widget://、fs://);默认:暂停按钮图标
marginLeft:5 //(可选项)数字类型;左边距,默认:5
},
currentTimeLabel:{
textSize:14, //(可选项)数字类型;底部时间标签大小;默认:14
textColor:"#FFF", //(可选项)字符串类型;底部时间标签颜色,支持#、rgba、rgb;默认:#FFF
textWidth: 30, //(可选项)数字类型;时间标签的宽度
marginLeft:5 //(可选项)数字类型;左边距,默认:5
},
seekBar:{
sliderImg:'fs://img/slder.png', //(可选项)字符串类型;底部进度条滑块背景图片,要求本地路径(widget://、fs://);默认:滑块小图标
sliderW : 20, // 数字类型; slider 的宽度
sliderH : 20, // 数字类型; slider 的高度
progressColor: '#696969', //(可选项)字符串类型;进度条背景色,支持#、rgba、rgb;默认:#696969
progressSelected: '#76EE00', //(可选项)字符串类型;滑动后的进度条背景色,支持#、rgb、rgba;默认:#76EE00
marginLeft:5 // (可选项)数字类型;左边距,默认:5
marginRight:5 // (可选项)数字类型;右边距,默认:5
},
totalTimeLabel:{
textSize:10, //(可选项)数字类型;底部时间标签大小;默认:10
textColor:"#FFF", //(可选项)字符串类型;底部时间标签颜色,支持#、rgba、rgb;默认:#FFF
textWidth: 30, //(可选项)数字类型;时间标签的宽度
marginRight:5 //(可选项)数字类型;右边距,默认:5
},
voiceBtn:{
visible:true, //(可选项)布尔类型;是否可见,默认:true
size:44, //(可选项)数字类型;底部右边声音按钮大小;默认:44
muteImg:'widget://img/muteImg.png', //(可选项)字符串类型;底部静音按钮的背景图片,要求本地路径(widget://、fs://);默认:静音按钮图标
disMuteImg:'widget://img/disMuteImg.png', //(可选项)字符串类型;底部非静音按钮的背景图片,要求本地路径(widget://、fs://);默认:非静音按钮图标
},
fullscreenBtn:{
size:44, //(可选项)数字类型;底部全屏/非全屏按钮大小;默认:44
verticalImg:'fs://img/vertical.png', //(可选项)字符串类型;底部横竖屏切换按钮的背景图片,竖屏状态下的切换按钮,要求本地路径(widget://、fs://);默认:竖屏按钮图标
horizontalImg:'fs://img/horizontal.png', //(可选项)字符串类型;底部横竖屏切换按钮的背景图片,横屏状态下的切换按钮,要求本地路径(widget://、fs://);默认:横屏按钮图标
}
}
}
shareConfig:
{
bg:'#000', //(可选项)分享面板的背景;默认:黑色
shareBtn:{ //(可选项)JSON对象;分享按钮设置(不传不显示)
iconPath:"widget://res/shareBtn.jpg", //(可选项)按钮图标,支持widget:// fs://
size:30, //(可选项)按钮大小,默认:30
marginRight:20 //(可选项)右边距,默认:20
},
shareItems:[{ // JSON数组;分享选项设置
iconPath:'widget://res/qq.jpg', // 字符串;分享item的图标
text:'QQ分享' // 字符串;分享item的文本
}]
}
path:
autoPlay:
autoRotate:
fixedOn:
fixed:
ret:
{
eventType:'share',
shareId:0, // 数字类型;点击分享item的索引
status: // 布尔类型;是否打开播放组件并显示,true|false;Will be deprecated in ther future
}
var neteasePlayer = api.require('neteasePlayer');
neteasePlayer.open({
title:'少林寺',
definition:["高清","标清","流畅"],
styles:{
head:{
bg: 'rgba(161,161,161,1)',
height: 44,
title:{
size:20,
color:'#fff',
width:100,
leftMargin:10
},
backSize: 44,
backImg:'widget://image/back.png',
definition:{
bg:'#fff',
textSize:14,
textColor:"#FFF",
textWidth: 30,
marginRight:5
},
},
playCenterBtn:{
size : 44,
playCenterImg:'fs://img/play.png',
pauseCenterImg:'fs://img/pause.png',
},
foot:{
bg: 'rgba(0,0,0,0.5)',
height: 44,
playBtn:{
size: 44,
playImg:'widget://image/play.png',
pauseImg:'widget://image/pause.png',
marginLeft:5
},
currentTimeLabel:{
textSize:10,
textColor:"#FFF",
textWidth: 50,
marginLeft:5
},
seekBar:{
sliderImg:'widget://image/circle.png',
sliderW : 20,
sliderH : 20,
progressColor: '#696969',
progressSelected: '#76EE00',
marginLeft:10,
marginRight:10
},
totalTimeLabel:{
textSize:10,
textColor:"#FFF",
textWidth: 50,
marginRight:5
},
voiceBtn:{
size:44,
muteImg:'widget://img/muteImg.png',
disMuteImg:'widget://img/disMuteImg.png',
},
fullscreenBtn:{
size:44,
verticalImg:'widget://image/vertical.png',
horizontalImg:'widget://image/horizontal.png',
}
} },
path:'http://baobab.wdjcdn.com/1455782903700jy.mp4',
autoPlay: true
},function(ret, err){
if(ret){
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
关闭播放器
close()
var neteasePlayer = api.require('neteasePlayer');
neteasePlayer.close();
iOS系统,Android系统
可提供的1.0.0及更高版本
播放过程中切换播放地址
switchContentUrl()
aUrl:
var neteasePlayer = api.require('neteasePlayer');
neteasePlayer.switchContentUrl({
aUrl : 'http://xxx/xx.mp4'
});
iOS系统,Android系统
可提供的1.0.0及更高版本
判断当前播放状态
isPlaying(ret)
{
state: true // boolean类型,true表示正在播放,否则为暂停状态
}
var neteasePlayer = api.require('neteasePlayer');
neteasePlayer.isPlaying(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置是否开启硬件解码,仅IOS 8.0以上支持,默认不开启
setHardwareDecoder()
status:
var neteasePlayer = api.require('neteasePlayer');
neteasePlayer.setHardwareDecoder({
status:false
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置当前播放时间点
seekTo({params})
seconds:
var neteasePlayer = api.require('neteasePlayer');
neteasePlayer.seekTo({
seconds: 20
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取当前播放时长
currentPlaybackTime({params})
{
duration: 10s // 数字类型
}
var neteasePlayer = api.require('neteasePlayer');
neteasePlayer.currentPlaybackTime(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的1.0.0及更高版本
播放器监听事件
addEventListener(ret)
ret:
{
eventType: 'play', // 字符串类型;点击播放按钮;取值范围:
// pause 点击暂停播放按钮
// complete 播放器播放完成
// error 播放器异常
// back 返回按钮
// upFling 在播放器上任意位置快速上滑
// downFling 在播放器上任意位置快速下滑
definition: '' //该字段返回 open -> definition相应的item
}
var neteasePlayer = api.require('neteasePlayer');
neteasePlayer.addEventListener(function(ret){
if(ret && ret.eventType == 'back'){
alert('点击back按钮');
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
弹出提醒信息(暂仅支持Android)
showAlert()
title:
msg:
okBtnTitle:
var neteasePlayer = api.require('neteasePlayer');
neteasePlayer.showAlert({
title:'温馨提示',
msg:'您的手机未安装qq',
okBtnTitle:'确定'
});