playModule

来自于:开发者立即使用

概述

playModule 封装了视频播放功能(支持音频播放)。使用本模块时可把本模块当做一个 frame 添加在 window 或 frame 上。Android 平台上支持的的视频文件格式有:MP4、3GP、FLV、RTMP、M3U8;IOS 平台上支持的视频文件格式有:MOV、MP4、M4V、FLV、ACC、3GP、RTMP、M3U8等 ;如果仅需要音频播放,请传isPlayMusic参数为true。

使用有ui方案播放器,可以通过左右滑动调节视频进度,左边上下滑动调节音量,右边上下滑动调节亮度。

模块效果图

描述

描述

描述

init

初始化视频播放配置

init({params}, callback(ret, err))

params

ttf:

  • 类型:字符串
  • 描述:(可选项)设置标题显示文字字体文件路径,仅支持widget://

logo:

  • 类型:字符串
  • 描述:(可选项)右上角设置logo(图片类型:png);支持fs://,widget://

background:

  • 类型:字符串
  • 描述:(可选项)视频播放前的图片显示(图片类型:jpg,png,gif);支持fs://,widget://

FullScreenViewIsFont:

  • 类型:布尔型
  • 描述:(可选项)全屏view是否显示最上层,true:是|false:否,仅ios有效(为fasle时可通过openframe自定义按钮在播放器上层;注意,未开启沉侵式的App请不要设置该参数。)
  • 默认值:true

isShowBottomBtn:

  • 类型:布尔型
  • 描述:(可选项)全屏时是否隐藏手机底部虚拟键,仅Android有效。
  • 默认值:false

isMultiWindow:

  • 类型:布尔型
  • 描述:(可选项)是否开启多窗口模式(true 开启 false 不开启)。
  • 默认值:false

示例代码

var playModule = api.require('playModule');
playModule.init({
    ttf: "widget://res/UKIJTor.ttf",
    logo:"widget://res/cklogo.png",
});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

play

播放本地视频、网络视频、rtmp直播流等

play({params}, callback(ret, err))

params

rect:

  • 类型:JSON 对象
  • 描述:(必填项)模块的位置及尺寸
  • 备注:iOS,Android 必须传此参数。
  • 内部字段:
{
    x: 0,   //(必填项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
    y: 0,   //(必填项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
    w: 320, //(必填项)数字类型;模块的宽度;默认值:所属的 Window 或 Frame 的宽度
    h: 250  //(必填项)数字类型;模块的高度;默认值:250
}

fixedOn:

  • 类型:字符串
  • 描述:(可选项)模块所属 Frame 的名字,若不传则模块归属于当前 Window

fixed:

  • 类型:布尔
  • 描述:((可选项)模块是否随所属 Window 或 Frame 滚动
  • 默认值:true(不随之滚动)

url:

  • 类型:字符串
  • 描述:(必填项)视频资源地址,支持fs://、widget://(在 android 平台上不支持 widget)、rtmp://、http://

title:

  • 类型:字符串
  • 描述:(可选项)不填时标题默认显示url地址

defaultBtn:

  • 类型:布尔
  • 描述:(可选项)设置本次播放是否显示默认自带的播放控制按钮
  • 默认值:true(显示)

enableFull:

  • 类型:布尔
  • 描述:(可选项)本次播放视频是否全屏播放,当为true时将直接全屏播放视频,x,y,w,h,fixedOn,fixed值不会生效。
  • 默认值:false(窗口播放)

enableFullAutoClose:

  • 类型:布尔
  • 描述:(可选项)默认全屏时播放时,返回按钮和退出全屏点击时是否关闭播放器(true:关闭 false:不关闭)
  • 默认值:true(关闭)

isTopView:

  • 类型:布尔
  • 描述:(可选项)是否显示顶部标题栏
  • 默认值:true(显示)

isFullBtn:

  • 类型:布尔
  • 描述:(可选项)小窗口是否显示进入全屏按钮
  • 默认值:true(显示)

isBackBtn:

  • 类型:布尔
  • 描述:(可选项)小窗口是否显示返回按钮
  • 默认值:false(不显示)

scalingMode:

  • 类型:布尔
  • 描述:(可选项)视频播放显示铺满模式(1:无缩放, 2:适应大小模式, 3:充满可视范围,可能会被裁剪, 4:缩放到充满视图)
  • 默认值:1(无缩放)

fullscreenMode:

  • 类型:字符串
  • 描述:(可选项)设置全屏按钮控制全屏显示模式是横屏还是竖屏 竖屏:PORTRAIT ; 横屏:LANDSCAPE
  • 默认值:LANDSCAPE(横屏)

isShowProcessView:

  • 类型:布尔型
  • 描述:(可选项)是否显示进度条 (显示:true ; 不显示:false)【备注:直播流自动默认为false】
  • 默认值:true

isShowTimeLable:

  • 类型:布尔型
  • 描述:(可选项)是否显示播放时间 (显示:true ; 不显示:false)
  • 默认值:true

isLive:

  • 类型:布尔型
  • 描述:(可选项)是否直播视频源 (直播:true;点播:false)
  • 默认值:直播:rtmp://开头|rtsp://开头|.m3u8结尾;其余为非直播

isSmallOpenGesture:

  • 类型:布尔型
  • 描述:(可选项)窗口播放时是否开启手势控制音量,亮度和进度 (开启:true;不开启:false)
  • 默认值:false

isOpenGesture:

  • 类型:布尔型
  • 描述:(可选项)全屏时是否开启手势控制音量,亮度和进度 (开启:true;不开启:false)
  • 默认值:true

process:

  • 类型:数字型
  • 描述:(必填项)设置视频需要播放的时长
  • 默认值:0

isAutoPlay:

  • 类型:布尔型
  • 描述:(可选项)是否自动播放 (自动播放:true ; 不自动播放:false)
  • 默认值:true

isPlayMusic:

  • 类型:布尔型
  • 描述:(可选项)是否仅播放音频 (仅播放音频:true ; 视频播放:false)
  • 默认值:false

isLoop:

  • 类型:布尔型
  • 描述:(可选项)是否循环播放 (循环播放:true ; 禁止循环播放:false)
  • 默认值:false

urlDatas:

  • 类型:数组对象
  • 描述:(可选项)清晰度按钮的自定义(数组内容大于1条记录,清晰度切换按钮才会显示,不支持直播链接的组装切换,不能和url接口参数同时存在)。
  • 内部字段:
[{
    name: '',   //(必填项)清晰度名称
    url: '',   //(必填项)视频资源地址,支持fs://、widget://(在 android 平台上不支持 widget)、http://
}]

isSmallShowQxd:

  • 类型:布尔型
  • 描述:(可选项)是否窗口时显示清晰度选择按钮 (数组内容大于1条记录,清晰度切换按钮才会显示;显示:true ; 不显示:false)
  • 默认值:false

isMute:

  • 类型:布尔型
  • 描述:(可选项)是否静音播放 (开启静音:true ; 关闭静音:false)
  • 默认值:false

isShowDanmu:

  • 类型:布尔型
  • 描述:(可选项)是否开启弹幕功能 (开启:true ; 不开启:false)
  • 默认值:false

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
    index : 0, //播放器序号
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    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系统

可提供的1.0.0及更高版本

playUrl

同一个页面,已经调用play接口后,切换视频地址时调用(前提条件,同一界面已经调用过play接口)。

playUrl({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

url:

  • 类型:字符串
  • 描述:(必填项)视频资源地址,支持fs://、widget://(在 android 平台上不支持 widget)、rtmp://、http://

title:

  • 类型:字符串
  • 描述:(可选项)不填时标题默认显示url播放文件名

defaultBtn:

  • 类型:布尔
  • 描述:(可选项)设置本次播放是否显示默认自带的播放控制按钮
  • 默认值:true(显示)

isLive:

  • 类型:布尔型
  • 描述:(可选项)是否直播视频源 (直播:true;点播:false)
  • 默认值:直播:rtmp://开头|rtsp://开头|.m3u8结尾;其余为非直播

isSmallOpenGesture:

  • 类型:布尔型
  • 描述:(可选项)窗口播放时是否开启手势控制音量,亮度和进度 (开启:true;不开启:false)
  • 默认值:false

isOpenGesture:

  • 类型:布尔型
  • 描述:(可选项)全屏时是否开启手势控制音量,亮度和进度 (开启:true;不开启:false)
  • 默认值:true

process:

  • 类型:数字型
  • 描述:(必填项)设置视频需要播放的时长
  • 默认值:0

isAutoPlay:

  • 类型:布尔型
  • 描述:(可选项)是否自动播放 (自动播放:true ; 不自动播放:false)
  • 默认值:true

isLoop:

  • 类型:布尔型
  • 描述:(可选项)是否循环播放 (循环播放:true ; 禁止循环播放:false)
  • 默认值:false

isShowProcessView:

  • 类型:布尔型
  • 描述:(可选项)是否显示进度条 (显示:true ; 不显示:false)【备注:直播流自动默认为false】
  • 默认值:true

isShowTimeLable:

  • 类型:布尔型
  • 描述:(可选项)是否显示播放时间 (显示:true ; 不显示:false)
  • 默认值:true

urlDatas:

  • 类型:数组对象
  • 描述:(可选项)清晰度按钮的自定义(数组内容大于1条记录,清晰度切换按钮才会显示,不支持直播链接的组装切换,不能和url接口参数同时存在)。
  • 内部字段:
[{
    name: '',   //(必填项)清晰度名称
    url: '',   //(必填项)视频资源地址,支持fs://、widget://(在 android 平台上不支持 widget)、http://
}]

isSmallShowQxd:

  • 类型:布尔型
  • 描述:(可选项)是否窗口时显示清晰度选择按钮 (数组内容大于1条记录,清晰度切换按钮才会显示;显示:true ; 不显示:false)
  • 默认值:false

isMute:

  • 类型:布尔型
  • 描述:(可选项)是否静音播放 (开启静音:true ; 关闭静音:false)
  • 默认值:false

isShowDanmu:

  • 类型:布尔型
  • 描述:(可选项)是否开启弹幕功能 (开启:true ; 不开启:false)
  • 默认值:false

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    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系统

可提供的1.0.0及更高版本

pause

暂停播放

pause({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ""
}

示例代码

var obj = api.require('playModule');
obj.pause(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

start

暂停后开始播放

start({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ""
}

示例代码

var obj = api.require('playModule');
obj.start(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

stop

停止播放

stop({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ""
}

示例代码

var obj = api.require('playModule');
obj.stop(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

getDuration

获取视频的时长

getDuration({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
    duration : 1221122//视频的总时长
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ""
}

示例代码

var obj = api.require('playModule');
obj.getDuration(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

getCurrentPosition

获取已经播放的时长

getCurrentPosition({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
    currentPosition : 2221//已经播放的时长
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ""
}

示例代码

var obj = api.require('playModule');
obj.getCurrentPosition(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

full

全屏播放

full({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ""
}

示例代码

var obj = api.require('playModule');
obj.full(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

unfull

退出全屏

unfull({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ""
}

示例代码

var obj = api.require('playModule');
obj.unfull(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

addEventListener

视频播放完监听事件

addEventListener({params}, callback(ret, err))

params

name:

  • 类型:字符串
  • 描述:监听事件名称,可以设置的播放界面监听类型有:playEnd(播放结束),pause(暂停),play(播放),backBtn(小窗口返回按钮),full(进入全屏按钮),unfull(退出全屏按钮),click(视频区域点击监听),bufferingStart(缓冲开始),bufferingEnd(缓冲结束), onPrepared(视频准备完成),onChangeQxd(清晰度改变)

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
status: true,   //布尔型;true
index : 0, //播放器序号
key : 0,//返回选择清晰度数组中序号
currentPosition : 0,//返回当前选择清晰度时已经播放时长
}

示例代码

var obj = api.require('playModule');
obj.addEventListener({
    name: 'playEnd'
}, function(ret, err) {
    console.log("addEventListener>>>>" + JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

isFullScreen

获取是否全屏播放状态

isFullScreen({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true|false   //布尔型;true:全屏 false:窗口
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ""
}

示例代码

var playModule = api.require('playModule');
playModule.isFullScreen(function(ret, err) {
    console.log("addEventListener>>>>" + JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

seekTo

设置播放进度位置(请根据视频最大时长进行参数控制传入)

seekTo({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

process:

  • 类型:数字型
  • 描述:(必填项)设置视频需要播放的时长
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ""
}

示例代码

var playModule = api.require('playModule');
playModule.seekTo({
    process : 402334
},function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

setVolume

设置播音量

setVolume({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

volume:

  • 类型:数字型
  • 描述:(必填项)0-100
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ""
}

示例代码

var playModule = api.require('playModule');
playModule.setVolume({
    volume : 50
},function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

hidePlayer

隐藏播放器

hidePlayer({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ""
}

示例代码

var playModule = api.require('playModule');
playModule.hidePlayer(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

showPlayer

显示播放器

showPlayer({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ""
}

示例代码

var playModule = api.require('playModule');
playModule.showPlayer(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

setSpeed

倍速播放

setSpeed({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

speed:

  • 类型:数字型
  • 描述:(必填项)设置视频播放倍速(取值范围 0.1-1.9)
  • 默认值:1.0

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ""
}

示例代码

var playModule = api.require('playModule');
playModule.setSpeed({
    speed : 1.9
},function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

cleanPlayers

清除页面所有打开的播放器接口(执行该接口后,返回index会归零)

cleanPlayers(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true
}

示例代码

var playModule = api.require('playModule');
playModule.cleanPlayers(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

updateUrlDatas

更新清晰度选择列表地址(必须和play或者playUrl接口传的数组长度一致)。

updateUrlDatas({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

urlDatas:

  • 类型:数组对象
  • 描述:(可选项)清晰度按钮的自定义(数组内容大于1条记录,清晰度切换按钮才会显示,不支持直播链接的组装切换,不能和url接口参数同时存在)。
  • 内部字段:
[{
    name: '',   //(必填项)清晰度名称
    url: '',   //(必填项)视频资源地址,支持fs://、widget://(在 android 平台上不支持 widget)、http://
}]

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    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系统

可提供的1.0.0及更高版本

sendDanmu

发送一条弹幕信息

sendDanmu({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

text:

  • 类型:字符串
  • 描述:(必填项)弹幕文字内容

color:

  • 类型:字符串
  • 描述:(可选项)弹幕文字显示颜色代码
  • 默认值:#FFFAFA

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ""
}

示例代码

var demo = api.require('playModule');
demo.sendDanmu({
    text : '测试2测试2测试2测试2',
    color : '#FF7F24'
},function(ret,err){
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

sendDanmuList

发送多条弹幕信息。

sendDanmuList({params}, callback(ret, err))

params

index:

  • 类型:数字型
  • 描述:(可选项)播放器序号
  • 默认值:0

isLoop:

  • 类型:布尔型
  • 描述:(可选项)天际的全部数据是否循环播放(循环:true,不循环:false)
  • 默认值:false

data:

  • 类型:数组对象
  • 描述:(必填项)多条弹幕信息记录。
  • 内部字段:
[{
    text: '',   //(必填项)弹幕文字内容
    color: '',   //(可选项)弹幕文字显示颜色代码[默认值:#FFFAFA]
}]

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    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系统

可提供的1.0.0及更高版本