三分屏,这里的三分屏只是在一个播放器里同时播放三个视频,但是要求只有一个控制面板同时控制它们,要求它们共享一个时间轨道。这次只是简单的模拟了一下功能,并没有深入的研究。
首先,需要下载jPlayer,jPlayer是一个JavaScript写的完全免费和开源的jQuery多媒体库插件,我觉得他最大的好处就是兼容性,并且页面也简洁大方,个人比较喜欢。jPlayer可到其官网下载最新版本()。并且官网有开发文档和Demo,所以还是比较容易上手的。
关于简单的视频播放器和音频播放器这里不再赘述了,官网的Demo挺好的,这里直奔主题。
首先当然是引入jPlayer相关文件。
首先是css文件夹,这里为了方便,某些文件也放到css文件夹里了:
然后是js文件夹:
因为jPlayer是在jQuery的插件,所以jquery的包自然也就少不了了。
新建一个test.jsp页面,下面是代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>JPlayer Test</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- 引入相关文件 --> <link href="https://www.jb51.net/css/jplayer.blue.monday.css" type="text/css" /> <script type="text/javascript" src="https://www.jb51.net/js/jquery.min.js"></script> <script type="text/javascript" src="https://www.jb51.net/css/jquery.jplayer.min.js"></script> <script type="text/javascript" src="https://www.jb51.net/js/jplayer.playlist.min.js"></script> <script type="text/javascript" src="https://www.jb51.net/test.js"></script> </head> <body> <div> <div> <div> <div> <!-- 左上的屏幕 --> <div ondblclick="fullScreen()"></div> <!-- 左下的屏幕 --> <div ondblclick="fullScreen()"></div> </div> </div> </div> <div> <div> <div> <div ondblclick="fullScreen()"></div> <div> <div> <button>play</button> </div> <!-- 控制面板 --> <!-- width: 959px; margin-left: -320px; --> <div> <div> <div> <div></div> </div> </div> <div> </div> <div> </div> <div> <div> <button>play</button> <button>stop</button> </div> <div> <button>mute</button> <button>max volume</button> <div> <div></div> </div> </div> <div> <button>full screen</button> </div> </div> <div> <div aria-label="title"> </div> </div> </div> </div> </div> </div> </div> </div> </body> </html>
新建一个test.js文件,下面是代码:
var flag = false; var isFull = false; $(document).ready(function() { // 实例化第一个视频 $("#jquery_jplayer_1").jPlayer({ ready: function() { $(this).jPlayer("setMedia", { title: "This is video Title", m4v: "http://www.jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v", /* m4v: "video/003.webm", */ poster: "http://www.jplayer.org/video/poster/Big_Buck_Bunny_Trailer_480x270.png" }); }, swfPath: "../../dist/jplayer", supplied: "m4v", size: { width: "640px", height: "360px", cssClass: "jp-video-360p" }, useStateClassSkin: true, autoBlur: false, smoothPlayBar: true, keyEnabled: true, remainingDuration: true, toggleDuration: true }); // 实例化第二个视频 $("#jquery_jplayer_2").jPlayer({ ready: function() { $(this).jPlayer("setMedia", { title: "This is video Title", m4v: "http://www.jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v", /* m4v: "video/003.webm", */ poster: "http://www.jplayer.org/video/poster/Big_Buck_Bunny_Trailer_480x270.png" }); }, swfPath: "../../dist/jplayer", supplied: "m4v", size: { width: "320px", height: "180px", cssClass: "jp-video-360p" }, useStateClassSkin: true, autoBlur: false, smoothPlayBar: true, keyEnabled: true, remainingDuration: true, toggleDuration: true }); // 实例化第三个视频 $("#jquery_jplayer_3").jPlayer({ ready: function() { $(this).jPlayer("setMedia", { title: "This is video Title", m4v: "http://www.jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v", /* m4v: "video/003.webm", */ poster: "http://www.jplayer.org/video/poster/Big_Buck_Bunny_Trailer_480x270.png" }); }, swfPath: "../../dist/jplayer", supplied: "m4v", size: { width: "320px", height: "180px", cssClass: "jp-video-360p" }, useStateClassSkin: true, autoBlur: false, smoothPlayBar: true, keyEnabled: true, remainingDuration: true, toggleDuration: true }); // 绑定初始化事件,用于在页面加载的时候初始化控制条的位置 $("#jquery_jplayer_1").bind($.jPlayer.event.ready, function(event) { $("#controller").css({ width: "959px", margin: "0px 0px 0px -320px" }); }); // 绑定页面大小变更事件,用于页面大小变化的时候,设置控制条的位置 $("#jquery_jplayer_1").bind($.jPlayer.event.resize, function(event) { if (!isFull) { $("#controller").css({ width: "100%", margin: "0" }); isFull = true; } else { $("#controller").css({ width: "959px", margin: "0px 0px 0px -320px" }); isFull = false; } }); // 绑定单击事件,用于单击屏幕控制视频的播放与暂停 $('#jquery_jplayer_1, #jquery_jplayer_2, #jquery_jplayer_3').bind("click", function(){ var $jplayer1 = $('#jquery_jplayer_1'); var $jplayer2 = $('#jquery_jplayer_2'); var $jplayer3 = $('#jquery_jplayer_3'); var status = $jplayer1.data("jPlayer").status; if (status.paused) { $jplayer1.jPlayer("play"); $jplayer2.jPlayer("play"); $jplayer3.jPlayer("play"); } else { $jplayer1.jPlayer("pause"); $jplayer2.jPlayer("pause"); $jplayer3.jPlayer("pause"); } }); }); // 双击屏幕时,进入全屏状态 function fullScreen() { $("#jquery_jplayer_1").jPlayer("option", "fullScreen", true); }
以上就是全部信息,需要注意的是,进入全屏状态的时候,只有主屏幕进入全屏,其它两个小的屏幕并不会进入全屏状态。