javascript-api可以做到让js和播放器之间进行通信,实现交互功能。ckplayer提供了大量的接口函数以供使用。比如用js控制自动播放下一集的功能。或者监听当前视频播放失败后重新调用其它视频地址的功能。
使用前需注意,监听共分二种,一种是全部监听,即用一个函数监听所有的状态。另一种是单独监听,只监听指定的动作是否触发。
在使用前需要了解三个参数的作用。如下:
第一个重要参数是:ckplayer.js和ckplayer.xml中的setup的第21个值,该值的作用是否否开启全部监听及监听等级的功能,在正式使用时建议不要开启该功能,因为如果你不熟悉js的话,大量的交互可能导致浏览器的内存消耗,甚至会导致flashplayer插件崩溃。
第二个重要参数是:var flashvars={}里的b值,如果你不使用交互,请将b设置成1
第三人重要参数是:var flashvars={}里的loaded值,如果要使用单独监听的话需要使用到该值,因为监听播放器的前提是要等播放器加载完成再给播放器发送监听函数。
首先要确认ckplayer.js或ckplayer.xml里的setup参数的第21个值>0
然后调用播放器页面里要存在如下js函数代码
javascript
这个函数也是可以自定义的,定义的方法是ckplayer.js(ckplayer.xml)中的calljs参数的第一个值
<script type="text/javascript" src="ckplayer/ckplayer.js" charset="utf-8"></script>
<script type="text/javascript">
function loadedHandler(){
if(CKobject.getObjectById('ckplayer_a1').getType()){
alert('播放器已加载,调用的是HTML5播放模块');
CKobject.getObjectById('ckplayer_a1').addListener('play',playHandler);
} else{
alert('播放器已加载,调用的是Flash播放模块');
CKobject.getObjectById('ckplayer_a1').addListener('play','playHandler');
} }
function playHandler()[ alert('播放了'); ]
var flashvars={
f:' http://movie.ks.js.cn/flv/other/2014/06/20-2.flv',
c:0,
loaded:'loadedHandler' };
var video=[' http://movie.ks.js.cn/flv/other/1_0.mp4->video/mp4'];
CKobject.embed('ckplayer/ckplayer.swf','a1','ckplayer_a1','100%','100%',false,flashvars,video,params);</script>
本示例演示了监听播放器是否播放的监听功能,当播放器播放时会调用js函数:playHandler()。
需要注意的就是添加监听要在flash和html5环境中分开添加。所以上面的代码添加了二次监听。
可以添加监听,就可以删除监听,如下是删除监听的代码示例:
属性 | 功能说明 | flash | html5 |
加载部分 | |||
plugLoadError:String | 插件加载失败:插件名称 | 是 | |
前置广告部分 | |||
frontAdContinue | 前置广告运行中 | 是 | |
frontAdPause | 前置广告暂停 | 是 | |
frontAdNext | 开始加载下一个广告 | 是 | |
frontAdEnd | 前置广告播放结束 | 是 | |
frontAdMuted:Boolean | 前置广告是否有声音:true/false | 是 | |
frontAdError:String | 前置广告加载失败:加载失败的广告地址 | 是 | |
frontAdStart:String | 前置广告加载成功并开始播放:广告地址 | 是 | |
frontAdSkip | 跳过前置广告 | 是 | |
视频部分 | |||
newVideo | 开始建立一个新的视频播放程序 | 是 | |
videoLoad | 开始分析视频加载方式 | 是 | |
error | 视频加载失败 | 是 | 是 |
sendNetStream | 接收到视频流,说明视频加载成功,随时可以播放 | 是 | 是 |
loadedmetadata | 分析出视频元数据信息 | 是 | 是 |
ended | 视频播放结束 | 是 | 是 |
totaltime:Number | 视频总时间:秒,精确到小数点后三位 | 是 | 是 |
time:Number | 视频已播放时间:秒,精确到小数点后三位 | 是 | 是 |
totalbytes:Number | 视频总大小:字节 | 是 | 是 |
bytes:Number | 已加载字节 | 是 | 是 |
loadComplete | 视频加载结束 | 是 | 是 |
speed:Number | 视频单位时间内加载的字节数 | 是 | |
buffer:int | 缓冲百分比:0-100,接收到100时说明本次缓冲结束 | 是 | |
bounceTime:Number | 鼠标在进度条上松开时的时间点 | 是 | |
play | 播放 | 是 | 是 |
pause | 暂停 | 是 | 是 |
paused:Boolean | 是否暂停:true/false | 是 | 是 |
seeking:Number | 跳转的时间:秒 | 是 | 是 |
fastNext | 快进 | 是 | |
fastBack | 快退 | 是 | |
videoClear | 视频被清除 | 是 | |
muted:Boolean | 是否静音:true/false | 是 | |
volumechange:int | 改变了音量:0-100 | 是 | |
视频画面处理 | |||
coordinateChange:Array | 视频区域被改变,比如隐藏/显示控制栏,全屏/退出全屏时都会触发,返回一个数组[x,y,width,height] | 是 | |
brightnessChange:int | 改变了亮度值,值的大小是 -255--255 0为中间值 | 是 | |
contrastChange:int | 改变了对比度值,值的大小是 -255--255 127.5为中间值 | 是 | |
saturationChange:int | 改变了饱和度值,值的大小是 -255--255,1为中间值,0为灰度值 | 是 | |
sethueChange:int | 改变了色相值,值的大小是 -255--255 0为中间值 | 是 | |
文字广告部分 | |||
changeMarquee | 文字广告内容被改变 | 是 | |
marqueeError | 文字广告加载出错 | 是 | |
marqueeLoaded | 文字广告加载成功 | 是 | |
marqueeClose | 文字广告关闭 | 是 | |
播放器交互 | |||
myObjectChange:Object | 自定义的对象发生改变 | 是 | |
flashvarsChange:Object | flashvars对象发生改变 | 是 | |
styleChange | 配置参数发生改变 | 是 | |
addListenerReplace | 添加了一个监听 | 是 | |
addListenerError | 添加了错误的监听 | 是 | |
removeListenerError | 移除监听出错 | 是 | |
其它 | |||
resize | 播放器尺寸发生改变 | 是 | |
controlBarShow:Boolean | 控制栏是否显示 | 是 |
<script type="text/javascript" src="ckplayer/ckplayer.js" charset="utf-8"></script>
<script type="text/javascript">
var flashvars={
f:' http://movie.ks.js.cn/flv/other/2014/06/20-2.flv',
c:0,
loaded:'loadedHandler'
};
var video=[' http://movie.ks.js.cn/flv/other/1_0.mp4->video/mp4'];
CKobject.embed('ckplayer/ckplayer.swf','a1','ckplayer_a1','100%','100%',false,flashvars,video,params);</script><input type="button" name="button7" value="播放/暂停" onClick="CKobject.getObjectById('ckplayer_a1').playOrPause();" />
CKobject.getObjectById是获取播放器ID的函数。
playOrPause()是控制播放器播放/暂停的api
函数名称 | 功能说明 | flash | html5 |
getType() | 判断播放器类型,true=HTML5播放器,false=flash播放器 | 是 | 是 |
videoPlay() | 播放视频 | 是 | 是 |
videoPause() | 暂停视频 | 是 | 是 |
playOrPause() | 播放/暂停视频切换 | 是 | 是 |
fastNext() | 快进 | 是 | 是 |
fastBack() | 快退 | 是 | 是 |
changeStatus(int) | 改变监听等级,=0则停止监听 | 是 | 是 |
getStatus() | 获取播放器当前各项属性,包括视频的宽高,时长,位置等信息 ,信息的具体值在下方列出。 | 是 | 是 |
videoSeek(int) | 跳转的秒数 | 是 | 是 |
changeVolume(int) | 改变音量(0-100) | 是 | 是 |
frontAdPause(Boolean) | 暂停/继续播放前置广告 | 是 | |
frontAdUnload() | 跳过前置广告 | 是 | |
changeFace(Boolean) | 是否隐藏控制栏,true隐藏,false显示 | 是 | |
plugin() | plugin(name: String, show: Boolean = true, w: int = -1, h: int = -1, x: int = -1, y: int = -1, index: int = -1) 控制插件(插件名称,是否显示,插件的宽,插件的高,插件的x坐标,插件的y坐标,插件的深度) | 是 | |
plugAttribute(String) | 获取插件属性,plugAttribute(插件名称),返回一个对象,包括 { exist:是否存在该插件 x:x坐标 y:y坐标 width:宽 height:高 show:是否显示 } | 是 | |
videoClear() | 清除视频 | 是 | 是 |
newAddress() | 重新加载新视频,例:newAddress('{f->视频地址}{s->0}') | 是 | 是 |
promptUnload() | 清除提示点 | 是 | |
changeFlashvars(String) | 动态改变flashvars的值,如changeFlashvars('{d->广告地址}') | 是 | |
changeStyle(String,String) | 改变配置属性,changeStyle(属性名称,属性值) | 是 | |
promptLoad() | 重新加载提示点,在此之前可以通过changeFlashvars改变提示点内容 | 是 | |
marqueeClose() | 关闭滚动文字广告 | 是 | |
marqueeLoad(true,String) | 改变滚动文字广告内容,marqueeLoad(true,'新内容') | 是 | |
videoBrightness(int) | 设置亮度值,值的大小是 -255--255 0为中间值,向右为亮向左为暗。 | 是 | |
videoContrast(Number) | 设置对比度值,值的大小是 -255--255 127.5为中间值,向右对比鲜明向左对比偏暗。 | 是 | |
videoSaturation(int) | 设置饱和度值,值的大小是 -255--255 1为中间值,0为灰度值(即黑白相片)。 | 是 | |
videoSetHue(int) | 设置色相值,值的大小是 -255--255 0为中间值,向右向左一试便知。 | 是 | |
videoWAndH(int,int) | 按比例调节视频比例,videoWAndH(110,120),即把宽度增加到110%,高度增加到120% | 是 | |
videoWHXY(int,int,int,int) | 调整视频长宽,坐标,videoWHXY(宽,高,x坐标,y坐标) | 是 | |
formatUrl(String) | 替换网址,即把该网址和flashvars里的a值进行组装 | 是 | |
screenShot(style,x1,y1,x2,y2):Object | 截图,style(字符类型:video=截取视频,all=截取播放器),x1,y1指左边和上方切掉的距离,x2,y2是右边和下方切掉的距离 该功能仅支持as3,不支持javascript | 是 |
getStatus()返回的属性
属性 | 类型 | 说明 |
width | Int | 播放器宽 |
height | Int | 播放器高 |
vwidth | Int | 视频展示的宽 |
vheight | Int | 视频展示的高 |
awidth | Int | 视频宽 |
aheight | Int | 视频高 |
videox | Int | 视频在播放器中的x坐标 |
videoy | Int | 视频在播放器中的y坐标 |
time | Number | 当前播放时间 |
totalTime | Number | 视频总时间 |
byte | Int | 当前加载字节 |
totalBytes | Int | 视频总字节 |
speed | Int | 视频加载速度,默认是:字节/250毫秒 |
volume | Int | 当前音量 |
play | Boolean | 是否播放 |
mute | Boolean | 是否静音 |
buffer | Int | 缓冲值 |
mouse | Array | 鼠标位置 |
myflashvars | Object | flashvars值 |
myStyle | Object | 配置参数的对象,包含风格等信息,语言包信息 |
myObject | Object | 自定义对象 |
controlBarShow | Boolean | 控制栏是否显示状态 |