最近写了一个视频播放的H5,视频的带宽资源是有限的,所以将视频放在不同的服务器上,当用户访问的时候将选择最快的服务器进行播放。
播放器采用的是ckplayer插件,现贴出以下代码进行备份。
- <script>
-
- function xplayer(vpath,vpic){
-
- document.body.scrollTop = 0;
- document.documentElement.scrollTop = 0;
- var videoObject = {
- container: '#video', //容器的ID或className
- variable: 'player',//播放函数名称
- poster:vpic,//封面图片
- seek: 0,
- video:[//视频地址列表形式
- [vpath, 'video/mp4', '中文标清', 0]
- ]
- };
- var player = new ckplayer(videoObject);
- player.videoPlay();
-
- }
-
-
- function getQueryString(name){
-
- var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
- var r = window.location.search.substr(1).match(reg);
- if(r != null){
- return unescape(r[2]);
- }
- return null
-
- }
-
-
- var mydata1 = {"video_list_id":getQueryString('video_list_id'),"course_id":getQueryString('course_id')}; //这里传入视频ID
- var autoname = [];
- var autourl = new Array();
- var autwz = new Array();
- var jump=1
- var t={};
- var yy = 0 ;
- var mm = [0,999999999];
-
- var test = (function(){
- let result;
- $.ajax({
- type: "get",
- url: directUrl = "http://www.xxx.com/api/getserver", //这里得到服务器的列表
- data: {"data":JSON.stringify(mydata1)},
- async: false,
- success: function(data) {
- var i=data.length ;
- for (var i=0;i<data.length;i++)
- {
- //document.write('<input type="text" name="v' + i + '" id="v' + i +'">'); //这里可以注释掉
- autoname[i] = data[i]['server_list_name'];
- autourl[i] = data[i]['url'] ;
- autwz[i] = data[i]['server'];
-
- // ************ 检测网速核心代码 start *************
- var img = new Image;
- img.onerror= (function(j){
- return function(){
- t[autourl[j]] =(new Date())- t[autourl[j]]; //记入时间差
- yy= parseInt(t[autourl[j]]);
- //$("#v"+j).val(t[autourl[j]]); //这里可以注释掉
-
- if (yy<parseInt(mm[1])){
- mm[0] = j;
- mm[1] = yy;
- }
-
- if(jump) {
- jump=0;
-
- // console.log(mm); //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 得到最快的网速
- console.log(autwz[mm[0]]); //>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 得到最快的服务器
-
- playervideo(autwz[mm[0]]);
-
- //alert("网速最快的服务器是 " + autwz[mm[0]]);
-
- }
- }
- })(i);
- //闭包传值
- img.src = autourl[i] + Math.random();
- t[autourl[i]] = (+new Date());//记录开始载入时间
- // ************ 检测网速核心代码 end *************
-
- }
- }
-
- });
- return result;
- })();
-
-
-
- //播放影片
- function playervideo(server){
- console.log(token);
- $.ajax({
- type: "post",
- url: "http://www.xxx.com/api/video",
- data: {"data":JSON.stringify(mydata1)},
- headers:{"token":token},
- async: true,
- success: function(data) {
- console.log(data);
- var json = data;
- video_list_pic = 'http://www.xxx.com/upfiles/' + json[0].video_list_pic;
- console.log(video_list_pic);
- video_list_path = server + json[0].video_list_path;
- console.log(video_list_path);
- setTimeout(xplayer(video_list_path,video_list_pic),3000);
- form.render();
- }
- })
- }
- </script>