使用ckplayer插件实现针对浏览器不同版本实现视频播放

    现在一般实现网页播放视频功能,常用的就是H5的video标签,方便快捷,配置简单,但也有其不足处,因其属于H5标签,故有些低版本的浏览器就无法使用该标签,为了解决兼容性的问题,这里我就使用ckplayer插件来实现视频播放功能,该插件也提供了丰富的IPA,可以简单方便的调用。

1.准备插件,可以去官网下载,我这里下载的是ckplayer6.5 ,我已将该插件上传至资源中心,需要的可以去下载。去下载

2.下载完成后,解压的文件目录结构如下,我们可以将ckplayer目录拷贝纸项目根目录下,同时将crossdomain.xml文件一同拷贝纸项目根目录下,解决部分浏览器不兼容问题:

3.在html页面定义播放器容器,具体代码如下:

<!doctype html>
<html>
  <head>
    <title>ckplayer</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
  </head>
  
  <body>
    <div>
      <div id="video"></div>
    </div>
  </body>
</html>

4.配置ckplayer相关参数,初始化播放器:

<script type="text/javascript">
   var flashvars={
      f:'http://img.ksbbs.com/asset/Mon_1703/d30e02a5626c066.mp4',//视频地址
	  a:'',//调用时的参数,只有当s>0的时候有效
	  s:'0',//调用方式,0=普通方法(f=视频地址),1=网址形式,2=xml形式,3=swf形式(s>0时f=网址,配合a来完成对地址的组装)
	  c:'0',//是否读取文本配置,0不是,1是
	  x:'',//调用配置文件路径,只有在c=1时使用。默认为空调用的是ckplayer.xml
	  i:'images/vedio_loading.png',//初始图片地址
	  d:'',//暂停时播放的广告,swf/图片,多个用竖线隔开,图片要加链接地址,没有的时候留空就行
	  u:'',//暂停时如果是图片的话,加个链接地址
	  l:'',//前置广告,swf/图片/视频,多个用竖线隔开,图片和视频要加链接地址
	  r:'',//前置广告的链接地址,多个用竖线隔开,没有的留空
	  t:'',//视频开始前播放swf/图片时的时间,多个用竖线隔开
	  y:'',//这里是使用网址形式调用广告地址时使用,前提是要设置l的值为空
	  z:'',//缓冲广告,只能放一个,swf格式
	  e:'2',//视频结束后的动作,0是调用js函数,1是循环播放,2是暂停播放并且不调用广告,3是调用视频推荐列表的插件,4是清除视频流并调用js功能和1差不多,5是暂停播放并且调用暂停广告
	  v:'80',//默认音量,0-100之间
	  p:'1',//视频默认0是暂停,1是播放,2是不加载视频
	  h:'3',//播放http视频流时采用何种拖动方法,=0不使用任意拖动,=1是使用按关键帧,=2是按时间点,=3是自动判断按什么(如果视频格式是.mp4就按关键帧,.flv就按关键时间),=4也是自动判断(只要包含字符mp4就按mp4来,只要包含字符flv就按flv来)
	  q:'',//视频流拖动时参考函数,默认是start
	  m:'',//让该参数为一个链接地址时,单击播放器将跳转到该地址
	  o:'',//当p=2时,可以设置视频的时间,单位,秒
	  w:'',//当p=2时,可以设置视频的总字节数
	  g:'',//视频直接g秒开始播放
	  j:'',//跳过片尾功能,j>0则从播放多少时间后跳到结束,<0则总总时间-该值的绝对值时跳到结束
	  k:'',//提示点时间,如 30|60鼠标经过进度栏30秒,60秒会提示n指定的相应的文字
	  n:'',//提示点文字,跟k配合使用,如 提示点1|提示点2
	  wh:'',//宽高比,可以自己定义视频的宽高或宽高比如:wh:'4:3',或wh:'1080:720'
	  lv:'0',//是否是直播流,=1则锁定进度栏
	  loaded:'loadedHandler',//当播放器加载完成后发送该js函数loaded
	  //调用播放器的所有参数列表结束
	  //以下为自定义的播放器参数用来在插件里引用的
	  //my_url:encodeURIComponent(window.location.href)//本页面地址
	  //调用自定义播放器参数结束
    };
		
	var params={bgcolor:'#FFF',allowFullScreen:true,allowScriptAccess:'always'};//这里定义播放器的其它参数如背景色(跟flashvars中的b不同),是否支持全屏,是否支持交互
		
	if(CKobject.isHTML5()){
	  var video=['http://img.ksbbs.com/asset/Mon_1703/d30e02a5626c066.mp4->video/mp4','http://www.ckplayer.com/webm/0.webm->video/webm','http://www.ckplayer.com/webm/0.ogv->video/ogg'];
	  //'flash播放器文件路径','容器ID','播放器的ID','宽度,可以是百分比','高度,可以是百分比','优先调用设置,false=优先调用flash播放器,true=优先调用HTML5播放器'
	  CKobject.embed('ckplayer/ckplayer.swf','video','ckplayer_a1','800px','500px',true,flashvars,video,params);
	}else{
	  //此处应该将视频后缀变为flv,使用flash播放
	  var video=['http://img.ksbbs.com/asset/Mon_1703/d30e02a5626c066.flv'];
	  //'flash播放器文件路径','容器ID','播放器的ID','宽度,可以是百分比','高度,可以是百分比','优先调用设置,false=优先调用flash播放器,true=优先调用HTML5播放器'
	  CKobject.embed('ckplayer/ckplayer.swf','video','ckplayer_a1','800px','500px',false,flashvars,video,params);
	}
	//添加监听视频元数据
	CKobject.getObjectById('ckplayer_a1').addListener('loadedmetadata',loadedmetadata);
	CKobject.getObjectById('ckplayer_a1').addListener('play',playHandler);

	//视频播放监听事件
	function playHandler(){
	  alert("播放了");  
	}

	//播放器加载监听事件
	function loadedHandler(){
	  if(CKobject.getObjectById('ckplayer_a1').getType()){
	    alert('初始化HTML5播放模块');
	  }else{
		alert('初始化Flash播放模块');
	  }
	}

	//视频元数据加载监听事件
	function loadedmetadata(){
	  //获取视频的元数据
	  var metaData = CKobject.getObjectById('ckplayer_a1').getStatus();
	  if(parseInt(metaData['totaltime']) > 0){
				
	  }else{
	    console.log("状态:未正确获取到元数据信息");
	  }
	}
  </script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值