基于jPlayer三分屏的制作方法

发布时间 - 2026-01-10 21:59:14    点击率:

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

首先,需要下载jPlayer,jPlayer是一个JavaScript写的完全免费和开源的jQuery多媒体库插件,我觉得他最大的好处就是兼容性,并且页面也简洁大方,个人比较喜欢。jPlayer可到其官网下载最新版本(http://www.jplayer.cn)。并且官网有开发文档和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="css/jplayer.blue.monday.css" rel="stylesheet" type="text/css" />
  <script type="text/javascript" src="js/jquery.min.js"></script>
  <script type="text/javascript" src="css/jquery.jplayer.min.js"></script>
  <script type="text/javascript" src="js/jplayer.playlist.min.js"></script>
  <script type="text/javascript" src="test.js"></script>
 </head>
<body>
<div class="wrapper">
 <div class="left-wrapper" style="float: left; width: 320px">
  <div id="jp_container_2" class="jp-video jp-video-360p">
   <div class="jp-type-single">
    <!-- 左上的屏幕 -->
    <div ondblclick="fullScreen()" id="jquery_jplayer_2" class="jp-jplayer"></div> 
    <!-- 左下的屏幕 -->
    <div ondblclick="fullScreen()" id="jquery_jplayer_3" class="jp-jplayer"></div>
   </div>
  </div> 
 </div>
 <div class="right-wrapper" style="float: left;">
  <div id="jp_container_1" class="jp-video jp-video-360p" style="border-bottom: none; border-left: none;">
   <div class="jp-type-single">
    <div ondblclick="fullScreen()" id="jquery_jplayer_1" class="jp-jplayer"></div>
    <div class="jp-gui" align="left">
     <div class="jp-video-play" style="margin-left: -160px">
      <button class="jp-video-play-icon">play</button>
     </div>
     
     <!-- 控制面板 -->
     <!-- width: 959px; margin-left: -320px; -->
     <div id="controller" class="jp-interface" style="border: 1px solid #009be3;">
      <div class="jp-progress">
       <div class="jp-seek-bar">
        <div class="jp-play-bar"></div>
       </div>
      </div>
      <div class="jp-current-time">&nbsp;</div>
      <div class="jp-duration">&nbsp;</div>
      <div class="jp-controls-holder">
       <div class="jp-controls">
        <button class="jp-play">play</button>
        <button class="jp-stop">stop</button>
       </div>
       <div class="jp-volume-controls">
        <button class="jp-mute">mute</button>
        <button class="jp-volume-max">max volume</button>
        <div class="jp-volume-bar">
         <div class="jp-volume-bar-value"></div>
        </div>
       </div>
       <div class="jp-toggles">
        <button class="jp-full-screen">full screen</button>
       </div>
      </div>
      <div class="jp-details">
       <div class="jp-title" aria-label="title">&nbsp;</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); 
}

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# jPlayer三分屏  # jQuery多媒体库插件  # 网页视频播放器  # jquery插件Jplayer使用方法简析  # 基于jQuery的网页影音播放器jPlayer的基本使用教程  # jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例  # Vim的分屏功能命令大全  # jquery插件splitScren实现页面分屏切换模板特效  # JQuery分屏指示器图片轮换效果实例  # C#分屏控件用法实例  # 实现opencv图像裁剪分屏显示示例  # jQuery多媒体插件jQuery Media Plugin使用详解  # jQuery Flash/MP3/Video多媒体插件  # 全屏  # 绑定  # 官网  # 单击  # 新建一个  # 的是  # 是一个  # 是在  # 我觉得  # 第一个  # 也就  # 第二个  # 只有一个  # 双击  # 第三个  # 挺好  # 可到  # 比较喜欢  # 里了  # 比较容易 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何使用模型观察者?(Observer代码示例)  大学网站设计制作软件有哪些,如何将网站制作成自己app?  什么是javascript作用域_全局和局部作用域有什么区别?  晋江文学城电脑版官网 晋江文学城网页版直接进入  网站制作软件有哪些,制图软件有哪些?  如何在腾讯云免费申请建站?  BootStrap整体框架之基础布局组件  Python面向对象测试方法_mock解析【教程】  如何用西部建站助手快速创建专业网站?  利用vue写todolist单页应用  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  简单实现Android文件上传  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  如何为不同团队 ID 动态生成多个非值班状态按钮  非常酷的网站设计制作软件,酷培ai教育官方网站?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  如何获取PHP WAP自助建站系统源码?  Laravel Session怎么存储_Laravel Session驱动配置详解  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  实例解析angularjs的filter过滤器  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  微信小程序 input输入框控件详解及实例(多种示例)  JavaScript如何实现继承_有哪些常用方法  如何快速搭建高效WAP手机网站?  高防服务器租用如何选择配置与防御等级?  详解MySQL数据库的安装与密码配置  Laravel如何实现API速率限制?(Rate Limiting教程)  三星网站视频制作教程下载,三星w23网页如何全屏?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  Laravel如何自定义错误页面(404, 500)?(代码示例)  如何在局域网内绑定自建网站域名?  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  如何解决hover在ie6中的兼容性问题  Laravel如何生成URL和重定向?(路由助手函数)  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  网站制作免费,什么网站能看正片电影?  如何获取免费开源的自助建站系统源码?  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  Python制作简易注册登录系统  Laravel distinct去重查询_Laravel Eloquent去重方法