基于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 
 5 
 6     
 7         
 8         JPlayer Test
 9         
10         
11         
12         
13         
14         
15         
16     
17 
18 class="wrapper">
19     class="left-wrapper">
20         class="jp-video jp-video-360p">
21             class="jp-type-single">
22                 
23                 class="jp-jplayer"> 
24                 
25                 class="jp-jplayer">
26             
27            
28     
29     class="right-wrapper">
30         class="jp-video jp-video-360p">
31             class="jp-type-single">
32                 class="jp-jplayer">
33                 class="jp-gui" align="left">
34                     class="jp-video-play">
35                         
36                     
37                     
38                     
39                     
40                     class="jp-interface">
41                         class="jp-progress">
42                             class="jp-seek-bar">
43                                 class="jp-play-bar">
44                             
45                         
46                         class="jp-current-time"> 
47                         class="jp-duration"> 
48                         class="jp-controls-holder">
49                             class="jp-controls">
50                                 
51                                 
52                             
53                             class="jp-volume-controls">
54                                 
55                                 
56                                 class="jp-volume-bar">
57                                     class="jp-volume-bar-value">
58                                 
59                             
60                             class="jp-toggles">
61                                 
62                             
63                         
64                         class="jp-details">
65                             class="jp-title" aria-label="title"> 
66                         
67                     
68                 
69             
70         
71     
72 
73 
74 
75 

 新建一个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 }

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

转载于:https://www.cnblogs.com/Oven5217/p/Nemo.html


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部