playModule 封装了视频播放,音频播放,音轨切换,边播边缓存,弹幕等功能。使用本插件时可把本插件当做一个 frame 添加在 window 或 frame 上。Android 平台上支持的的视频文件格式有:MP4、3GP、FLV、RTMP、M3U8;IOS 平台上支持的视频文件格式有:MOV、MP4、M4V、FLV、ACC、3GP、RTMP、M3U8等 ;如果仅需要音频播放,请传isPlayMusic参数为true。(注意:请自行监听网络状态的切换,当手机网络切换时,播放器会把当前缓存的播放完后就会触发playError异常,此时需要App自行提示用户并重新打开播放器)
使用有ui方案播放器,可以通过左右滑动调节视频进度,左边上下滑动调节音量,右边上下滑动调节亮度。
插件效果图
Android:4.4及以上 iOS:11.0及以上
初始化视频播放配置
init({params}, callback(ret, err))
ttf:
logo:
background:
FullScreenViewIsFont:
isShowBottomBtn:
isMultiWindow:
loading:
logoLeftTop:
logoLeftBottom:
logoRightBottom:
var playModule = api.require('playModule');
playModule.init({
ttf: "widget://res/UKIJTor.ttf",
logo:"widget://res/cklogo.png",
});
Android、iOS系统
可提供的3.0.0及更高版本
播放本地视频、网络视频、rtmp直播流等
play({params}, callback(ret, err))
rect:
{
x: 0, //(必填项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(必填项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 320, //(必填项)数字类型;插件的宽度;默认值:所属的 Window 或 Frame 的宽度
h: 250 //(必填项)数字类型;插件的高度;默认值:250
}
fixedOn:
fixed:
url:
title:
defaultBtn:
enableFull:
enableFullAutoClose:
isTopView:
isFullBtn:
isBackBtn:
scalingMode:
fullscreenMode:
isShowProcessView:
isShowTimeLable:
isLive:
isSmallOpenGesture:
isOpenGesture:
process:
isAutoPlay:
isPlayMusic:
isLoop:
urlDatas:
[{
name: '', //(必填项)清晰度名称
url: '', //(必填项)视频资源地址,支持fs://、widget://(在 android 平台上不支持 widget)、http://
}]
isSmallShowQxd:
isMute:
isShowDanmu:
isLocalCache:
isShowFenxiang:
isShowMore:
isShowTouping:
isShowXuanji:
isShowNext:
isShowPre:
isSmallImmerse:
isLongShowBackBtn:
isSmallShowFenxiang:
isSmallShowMore:
isSmallShowTouping:
isOpenDanmu:
singlePageModule:
isShowNetworkSpeed:
background:
placeholderText:
isShowLock:
freeProcess:
ret:
{
status: true, //布尔型;true||false
index : 0, //播放器序号
}
err:
{
msg: ""
}
var obj = api.require('playModule');
obj.play({
rect:
{ x: 0,
y : 0,
w : 320,
h: 250
},
fixedOn: api.frameName,
title: 'test',
url: 'http://resource.apicloud.com/video/apicloud3.mp4',
defaultBtn: true,
enableFull : false,
isTopView : false
}, function(ret, err) {
});
iOS、Android系统
可提供的3.0.0及更高版本
同一个页面,已经调用play接口后,切换视频地址时调用(前提条件,同一界面已经调用过play接口)。
playUrl({params}, callback(ret, err))
index:
url:
title:
defaultBtn:
isLive:
isSmallOpenGesture:
isOpenGesture:
process:
isAutoPlay:
isLoop:
isShowProcessView:
isShowTimeLable:
urlDatas:
[{
name: '', //(必填项)清晰度名称
url: '', //(必填项)视频资源地址,支持fs://、widget://(在 android 平台上不支持 widget)、http://
}]
isSmallShowQxd:
isMute:
isShowDanmu:
isLocalCache:
isShowFenxiang:
isShowMore:
isShowTouping:
isShowXuanji:
isShowNext:
isShowPre:
isSmallImmerse:
isLongShowBackBtn:
isSmallShowFenxiang:
isSmallShowMore:
isSmallShowTouping:
isOpenDanmu:
isShowNetworkSpeed:
freeProcess:
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var obj = api.require('playModule');
obj.playUrl({
title: 'test',
url: 'http://resource.apicloud.com/video/apicloud3.mp4',
defaultBtn: true
}, function(ret, err) {
});
iOS、Android系统
可提供的3.0.0及更高版本
暂停播放
pause({params}, callback(ret, err))
index:
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var obj = api.require('playModule');
obj.pause(function(ret, err) {
api.alert({msg: JSON.stringify(ret)});
});
iOS、Android系统
可提供的3.0.0及更高版本
暂停后开始播放
start({params}, callback(ret, err))
index:
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var obj = api.require('playModule');
obj.start(function(ret, err) {
api.alert({msg: JSON.stringify(ret)});
});
iOS、Android系统
可提供的3.0.0及更高版本
停止播放
stop({params}, callback(ret, err))
index:
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var obj = api.require('playModule');
obj.stop(function(ret, err) {
api.alert({msg: JSON.stringify(ret)});
});
iOS、Android系统
可提供的3.0.0及更高版本
获取视频的时长
getDuration({params}, callback(ret, err))
index:
ret:
{
status: true, //布尔型;true||false
duration : 1221122//视频的总时长
}
err:
{
msg: ""
}
var obj = api.require('playModule');
obj.getDuration(function(ret, err) {
api.alert({msg: JSON.stringify(ret)});
});
iOS、Android系统
可提供的3.0.0及更高版本
获取已经播放的时长
getCurrentPosition({params}, callback(ret, err))
index:
ret:
{
status: true, //布尔型;true||false
currentPosition : 2221//已经播放的时长
}
err:
{
msg: ""
}
var obj = api.require('playModule');
obj.getCurrentPosition(function(ret, err) {
api.alert({msg: JSON.stringify(ret)});
});
iOS、Android系统
可提供的3.0.0及更高版本
全屏播放
full({params}, callback(ret, err))
index:
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var obj = api.require('playModule');
obj.full(function(ret, err) {
api.alert({msg: JSON.stringify(ret)});
});
iOS、Android系统
可提供的3.0.0及更高版本
退出全屏
unfull({params}, callback(ret, err))
index:
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var obj = api.require('playModule');
obj.unfull(function(ret, err) {
api.alert({msg: JSON.stringify(ret)});
});
iOS、Android系统
可提供的3.0.0及更高版本
视频播放完监听事件
addEventListener({params}, callback(ret, err))
name:
ret:
{
status: true, //布尔型;true
index : 0, //播放器序号
key : 0,//返回选择清晰度数组中序号
currentPosition : 0,//返回当前选择清晰度时已经播放时长
isOpenDanmu : true //当前弹幕是开或者关
}
var obj = api.require('playModule');
obj.addEventListener({
name: 'playEnd'
}, function(ret, err) {
console.log("addEventListener>>>>" + JSON.stringify(ret));
});
iOS、Android系统
可提供的3.0.0及更高版本
获取是否全屏播放状态
isFullScreen({params}, callback(ret, err))
index:
ret:
{
status: true|false //布尔型;true:全屏 false:窗口
}
err:
{
msg: ""
}
var playModule = api.require('playModule');
playModule.isFullScreen(function(ret, err) {
console.log("addEventListener>>>>" + JSON.stringify(ret));
});
iOS、Android系统
可提供的3.0.0及更高版本
设置播放进度位置(请根据视频最大时长进行参数控制传入)
seekTo({params}, callback(ret, err))
index:
process:
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var playModule = api.require('playModule');
playModule.seekTo({
process : 402334
},function(ret, err) {
api.alert({msg: JSON.stringify(ret)});
});
Android、iOS系统
可提供的3.0.0及更高版本
设置播音量
setVolume({params}, callback(ret, err))
index:
volume:
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var playModule = api.require('playModule');
playModule.setVolume({
volume : 50
},function(ret, err) {
api.alert({msg: JSON.stringify(ret)});
});
Android、iOS系统
可提供的3.0.0及更高版本
隐藏播放器
hidePlayer({params}, callback(ret, err))
index:
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var playModule = api.require('playModule');
playModule.hidePlayer(function(ret, err) {
api.alert({msg: JSON.stringify(ret)});
});
Android、iOS系统
可提供的3.0.0及更高版本
显示播放器
showPlayer({params}, callback(ret, err))
index:
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var playModule = api.require('playModule');
playModule.showPlayer(function(ret, err) {
api.alert({msg: JSON.stringify(ret)});
});
Android、iOS系统
可提供的3.0.0及更高版本
倍速播放
setSpeed({params}, callback(ret, err))
index:
speed:
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var playModule = api.require('playModule');
playModule.setSpeed({
speed : 1.9
},function(ret, err) {
api.alert({msg: JSON.stringify(ret)});
});
Android、iOS系统
可提供的3.0.0及更高版本
清除页面所有打开的播放器接口(执行该接口后,返回index会归零)
cleanPlayers(callback(ret))
ret:
{
status: true //布尔型;true
}
var playModule = api.require('playModule');
playModule.cleanPlayers(function(ret, err) {
api.alert({msg: JSON.stringify(ret)});
});
Android、iOS系统
可提供的3.0.0及更高版本
更新清晰度选择列表地址(必须和play或者playUrl接口传的数组长度一致)。
updateUrlDatas({params}, callback(ret, err))
index:
urlDatas:
[{
name: '', //(必填项)清晰度名称
url: '', //(必填项)视频资源地址,支持fs://、widget://(在 android 平台上不支持 widget)、http://
}]
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var obj = api.require('playModule');
obj.updateUrlDatas({
urlDatas : [{
name : '标清',
url : 'http://www.nanchong.gov.cn/video/c21.flv'
},{
name : '高清',
url : 'http://www.nanchong.gov.cn/video/c22.flv',
},{
name : '普通',
url : 'http://www.nanchong.gov.cn/video/c23.flv',
}],
}, function(ret, err) {
});
iOS、Android系统
可提供的3.0.9及更高版本
发送一条弹幕信息
sendDanmu({params}, callback(ret, err))
index:
text:
color:
textSize:
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var demo = api.require('playModule');
demo.sendDanmu({
text : '测试2测试2测试2测试2',
color : '#FF7F24'
},function(ret,err){
});
iOS、Android系统
可提供的3.1.6及更高版本
发送多条弹幕信息。
sendDanmuList({params}, callback(ret, err))
index:
isLoop:
data:
[{
text: '', //(必填项)弹幕文字内容
color: '', //(可选项)弹幕文字显示颜色代码[默认值:#FFFAFA]
textSize: 12 //(可选项)弹幕文字大小
}]
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var obj = api.require('playModule');
obj.sendDanmuList({
data : [{
text : '测试1',
color : '#FF7F24'
},{
text : '测试2测试2测试2测试2',
color : '#FF7F24'
}],
}, function(ret, err) {
});
iOS、Android系统
可提供的3.1.6及更高版本
获取音轨数量。
getAudioTrack({params}, callback(ret, err))
index:
ret:
{
status: true, //布尔型;true||false
tracksNum : 1. //音轨数量
}
err:
{
msg: ""
}
var obj = api.require('playModule');
obj.getAudioTrack(function(ret, err) {
});
iOS、Android系统
可提供的3.1.8及更高版本
设置音轨(原音|伴音)[仅对多音轨有效]
setAudioTrack({params}, callback(ret, err))
index:
trackId:
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var obj = api.require('playModule');
obj.setAudioTrack({
trackId : 1
}, function(ret, err) {
});
iOS、Android系统
可提供的3.1.8及更高版本
静音开关切换
setMute({params}, callback(ret, err))
index:
isMute:
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ""
}
var obj = api.require('playModule');
obj.setMute({
isMute : true
}, function(ret, err) {
});
iOS、Android系统
可提供的3.1.8及更高版本
截图
takeSnapshot({params}, callback(ret, err))
index:
ret:
{
status: true, //布尔型;true||false
path : '' //图片路径
}
err:
{
msg: ""
}
var obj = api.require('playModule');
obj.takeSnapshot(function(ret, err) {
});
iOS、Android系统
可提供的3.4.5及更高版本
获取当前播放速率
getCurrentSpeed({params},callback(ret, err))
index:
ret:
{
status: true, //布尔型;true||false
currentSpeed : '' //播放速率
}
err:
{
msg: ""
}
var obj = api.require('playModule');
obj.getCurrentSpeed(function(ret, err) {
});
iOS、Android系统
可提供的3.4.9及更高版本