基于jPlayer的三分屏制作

三分屏,这里的三分屏只是在一个播放器里同时播放三个视频,但是要求只有一个控制面板同时控制它们,要求它们共享一个时间轨道。这次只是简单的模拟了一下功能,并没有深入的研究。

首先,需要下载jPlayer,jPlayer是一个JavaScript写的完全免费和开源的jQuery多媒体库插件,我觉得他最大的好处就是兼容性,并且页面也简洁大方,个人比较喜欢。jPlayer可到其官网下载最新版本(http://www.jplayer.cn)。并且官网有开发文档和Demo,所以还是比较容易上手的。

关于简单的视频播放器和音频播放器这里不再赘述了,官网的Demo挺好的,这里直奔主题。

首先当然是引入jPlayer相关文件。

首先是css文件夹,这里为了方便,某些文件也放到css文件夹里了:

然后是js文件夹:

因为jPlayer是在jQuery的插件,所以jquery的包自然也就少不了了。

新建一个test.jsp页面,下面是代码:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3
 4 <!DOCTYPE html>
 5 <html>
 6     <head>
 7         <meta charset="utf-8" />
 8         <title>JPlayer Test</title>
 9         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10         <!-- 引入相关文件 -->
11         <link href="css/jplayer.blue.monday.css" rel="stylesheet" type="text/css" />
12         <script type="text/javascript" src="js/jquery.min.js"></script>
13         <script type="text/javascript" src="css/jquery.jplayer.min.js"></script>
14         <script type="text/javascript" src="js/jplayer.playlist.min.js"></script>
15         <script type="text/javascript" src="test.js"></script>
16     </head>
17 <body>
18 <div class="wrapper">
19     <div class="left-wrapper" style="float: left; width: 320px">
20         <div id="jp_container_2" class="jp-video jp-video-360p">
21             <div class="jp-type-single">
22                 <!-- 左上的屏幕 -->
23                 <div ondblclick="fullScreen()" id="jquery_jplayer_2" class="jp-jplayer"></div>
24                 <!-- 左下的屏幕 -->
25                 <div ondblclick="fullScreen()" id="jquery_jplayer_3" class="jp-jplayer"></div>
26             </div>
27         </div>
28     </div>
29     <div class="right-wrapper" style="float: left;">
30         <div id="jp_container_1" class="jp-video jp-video-360p" style="border-bottom: none; border-left: none;">
31             <div class="jp-type-single">
32                 <div ondblclick="fullScreen()" id="jquery_jplayer_1" class="jp-jplayer"></div>
33                 <div class="jp-gui" align="left">
34                     <div class="jp-video-play" style="margin-left: -160px">
35                         <button class="jp-video-play-icon">play</button>
36                     </div>
37
38                     <!-- 控制面板 -->
39                     <!-- width: 959px; margin-left: -320px;  -->
40                     <div id="controller" class="jp-interface" style="border: 1px solid #009be3;">
41                         <div class="jp-progress">
42                             <div class="jp-seek-bar">
43                                 <div class="jp-play-bar"></div>
44                             </div>
45                         </div>
46                         <div class="jp-current-time">&nbsp;</div>
47                         <div class="jp-duration">&nbsp;</div>
48                         <div class="jp-controls-holder">
49                             <div class="jp-controls">
50                                 <button class="jp-play">play</button>
51                                 <button class="jp-stop">stop</button>
52                             </div>
53                             <div class="jp-volume-controls">
54                                 <button class="jp-mute">mute</button>
55                                 <button class="jp-volume-max">max volume</button>
56                                 <div class="jp-volume-bar">
57                                     <div class="jp-volume-bar-value"></div>
58                                 </div>
59                             </div>
60                             <div class="jp-toggles">
61                                 <button class="jp-full-screen">full screen</button>
62                             </div>
63                         </div>
64                         <div class="jp-details">
65                             <div class="jp-title" aria-label="title">&nbsp;</div>
66                         </div>
67                     </div>
68                 </div>
69             </div>
70         </div>
71     </div>
72 </div>
73 </body>
74
75 </html>

新建一个test.js文件,下面是代码:

  1 var flag = false;
  2 var isFull = false;
  3
  4 $(document).ready(function() {
  5     // 实例化第一个视频
  6     $("#jquery_jplayer_1").jPlayer({
  7         ready: function() {
  8             $(this).jPlayer("setMedia", {
  9                 title: "This is video Title",
 10                 m4v: "http://www.jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v",
 11                 /* m4v: "video/003.webm", */
 12                 poster: "http://www.jplayer.org/video/poster/Big_Buck_Bunny_Trailer_480x270.png"
 13             });
 14         },
 15         swfPath: "../../dist/jplayer",
 16         supplied: "m4v",
 17         size: {
 18             width: "640px",
 19             height: "360px",
 20             cssClass: "jp-video-360p"
 21         },
 22         useStateClassSkin: true,
 23         autoBlur: false,
 24         smoothPlayBar: true,
 25         keyEnabled: true,
 26         remainingDuration: true,
 27         toggleDuration: true
 28     });
 29
 30     // 实例化第二个视频
 31     $("#jquery_jplayer_2").jPlayer({
 32         ready: function() {
 33             $(this).jPlayer("setMedia", {
 34                 title: "This is video Title",
 35                 m4v: "http://www.jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v",
 36                 /* m4v: "video/003.webm", */
 37                 poster: "http://www.jplayer.org/video/poster/Big_Buck_Bunny_Trailer_480x270.png"
 38             });
 39         },
 40         swfPath: "../../dist/jplayer",
 41         supplied: "m4v",
 42         size: {
 43             width: "320px",
 44             height: "180px",
 45             cssClass: "jp-video-360p"
 46         },
 47         useStateClassSkin: true,
 48         autoBlur: false,
 49         smoothPlayBar: true,
 50         keyEnabled: true,
 51         remainingDuration: true,
 52         toggleDuration: true
 53     });
 54
 55     // 实例化第三个视频
 56     $("#jquery_jplayer_3").jPlayer({
 57         ready: function() {
 58             $(this).jPlayer("setMedia", {
 59                 title: "This is video Title",
 60                 m4v: "http://www.jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v",
 61                 /* m4v: "video/003.webm", */
 62                 poster: "http://www.jplayer.org/video/poster/Big_Buck_Bunny_Trailer_480x270.png"
 63             });
 64         },
 65         swfPath: "../../dist/jplayer",
 66         supplied: "m4v",
 67         size: {
 68             width: "320px",
 69             height: "180px",
 70             cssClass: "jp-video-360p"
 71         },
 72         useStateClassSkin: true,
 73         autoBlur: false,
 74         smoothPlayBar: true,
 75         keyEnabled: true,
 76         remainingDuration: true,
 77         toggleDuration: true
 78     });
 79
 80     // 绑定初始化事件,用于在页面加载的时候初始化控制条的位置
 81     $("#jquery_jplayer_1").bind($.jPlayer.event.ready, function(event) {
 82         $("#controller").css({
 83             width: "959px",
 84             margin: "0px 0px 0px -320px"
 85         });
 86     });
 87
 88     // 绑定页面大小变更事件,用于页面大小变化的时候,设置控制条的位置
 89     $("#jquery_jplayer_1").bind($.jPlayer.event.resize, function(event) {
 90         if (!isFull) {
 91             $("#controller").css({
 92                 width: "100%",
 93                 margin: "0"
 94             });
 95             isFull = true;
 96         } else {
 97             $("#controller").css({
 98                 width: "959px",
 99                 margin: "0px 0px 0px -320px"
100             });
101             isFull = false;
102         }
103     });
104
105     // 绑定单击事件,用于单击屏幕控制视频的播放与暂停
106     $(‘#jquery_jplayer_1, #jquery_jplayer_2, #jquery_jplayer_3‘).bind("click", function(){
107         var $jplayer1 = $(‘#jquery_jplayer_1‘);
108         var $jplayer2 = $(‘#jquery_jplayer_2‘);
109         var $jplayer3 = $(‘#jquery_jplayer_3‘);
110         var status = $jplayer1.data("jPlayer").status;
111         if (status.paused) {
112             $jplayer1.jPlayer("play");
113             $jplayer2.jPlayer("play");
114             $jplayer3.jPlayer("play");
115         } else {
116             $jplayer1.jPlayer("pause");
117             $jplayer2.jPlayer("pause");
118             $jplayer3.jPlayer("pause");
119         }
120     });
121 });
122
123 // 双击屏幕时,进入全屏状态
124 function fullScreen() {
125     $("#jquery_jplayer_1").jPlayer("option", "fullScreen", true);
126 }

以上就是全部信息,需要注意的是,进入全屏状态的时候,只有主屏幕进入全屏,其它两个小的屏幕并不会进入全屏状态。

时间: 2024-10-17 08:50:45

基于jPlayer的三分屏制作的相关文章

基于InstallShield2013LimitedEdition的安装包制作

原文:基于InstallShield2013LimitedEdition的安装包制作 在VS2012之前,我们做安装包一般都是使用VS自带的安装包制作工具来创建安装包的,VS2012.VS2013以后,微软把这个去掉,集成使用了InstallShield进行安装包的制作了,虽然思路差不多,但是处理还是有很大的不同,本文主要基于VS2013的基础上,介绍使用InstallShield2013LimitedEdition的安装包制作. 1.安装使用InstallShield2013LimitedEd

基于Ascensor.js全屏切换页面插件

今天给大家分享一款基于Ascensor.js全屏切换页面插件,这款实例 适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="general"> <div id="content"> <!--Contenu1--> <div> <div class="contenu&

基于HTML5 SVG全屏滑块切换特效

基于HTML5 SVG全屏滑块切换特效是一款基于jQuery+HTML5实现的全屏动画切换特效代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <section class="cd-slider-wrapper"> <ul class="cd-slider"> <li class="visible"> <div style=" position:fixed; z-inde

基于RTSP的流媒体播放器制作(2)

Section I Problem Specification 实验目的 本次实验室在MFC环境下使用socket制作的应用程序,实现对RTSP与RTP协议的解析并播放缓存的媒体流.实现一边下载一边播放的音乐播放器.客户端使用RTSP协议与LIVE555服务器进行通信,如果与服务器的通信无误就启动RTP线程开始缓存文件并进行播放.本次程序设计还包括一些其他功能: 1使用MFC进行界面的设计 2使用RTP将收到文件下载到本地,进行播放 3 播放控制,包括暂停,播放,终止,快进,快退,拖动播放时间播

【Linux】Ubuntu下录屏&amp;&amp;制作GIF

在做Android的时候,想制作GIF用来演示效果.一番摸索,找到了一个简单可行的办法: App在模拟器中运行,用录屏软件录制,再将视频转成GIF. 系统: Ubuntu 15.04 录屏软件: RecordMyDesktop 视频转GIF: mplay 上面两个软件均可在商店找到直接安装,控制台用命令安装也行,这个就不详述了. 1.打开RecordMyDesktop,可以对局部录屏,简单方便.录制完成后会生成一个 ogv视频文件 (假设就叫 video.ogv) 2.然后将这个文件扔到一个文件

团队软件开发_基于windows下截屏软件关于NABC框架的特点

经过我们小组数次的激烈讨论,就自己的能力和时间而言,我们小组的初步的计划是开发一款基于windows下的截图软件. 关于这个软件的功能,我们初步的想法如下: 1.能在windows下后台运行,有相应的快捷键,以便随时随地的截取用户所需要的信息: 2.在截屏开始钱前有一个关于形状的选择(如矩形,圆形等),当然,还有我们小组自认为比较好的随意形状的截图: 3.当随意形状截屏时,此软件还有磁性吸附轮廓的功能,以避免鼠标使用时截屏的轮廓不合理情况:

基于jQuery的宽屏可左右切换的焦点图插件

之前分享了很多实用的jQuery焦点图插件,大家可以看看.今天要继续为大家分享一款很不错的jQuery焦点图插件,它是宽屏展示的,而且有两个大气的按钮用来左右切换图片.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="Big_Slide_box"> <div id="Big_Slide"> <ul> <li style="background: #E81216;" id

第二篇:Power BI数据可视化之基于网页数据的报表制作(经典级示例)

前言 报表制作流程的第一步显然是从各个数据源导入数据,Power BI能从很多种数据源导入数据:如Excel,CSV,XML,以及各类数据库(SQL Server,Oracle,My SQL等),两大主流开源平台(Hadoop,Spark)等等.本文篇幅所限,无法一一说明,仅就网页获取数据的方式进行讲解(其他方式大同小异). 然后本文将在Power BI后台工作区(下简称后台区)对获取到的数据集进行塑形.所谓塑形就是确定数据集的列名以及数据类型,还有进行一些基本数据清洗转换工作,以保证Power

一个基于Qt的截屏程序

最近有一个arm板上的程序需要重写用户手册,在网上找了许久,没找到合适的截屏工具.于是只好自己动手做一个了. 因为arm板上有已经有了Qt环境,于是想到用 Qt的QPixmap::grabWindow 直接抓屏即可. 部署到arm设备后用com连接设备,抓屏,一步OK!虽然简单,但给编写手册的小伙伴们使用足够了. 代码没几行,贴上全部代码了. #include <QApplication> #include <QPixmap> #include <QDesktopWidget