当前位置:主页 > jquery插件 > 音频视频 >

HTML5,CSS3,jQuery自制video播放器

栏目分类:音频视频   模板编号:JQ00029    发布日期:2017-04-17   来源:网络   浏览次数:次     在线预览
不用object或者embed标签插入就能完成video的播放,那要感谢html5和css3的强大功能了

现在我们就step by step的详细指导吧,大家千万不要嫌长哦,不敢兴趣的地方可以直接略过O(∩_∩)O:

step1:HTML5 标记

<!--Meta tags-->
<!--Title-->
<!--Stylesheets-->
<!--jQuery-->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

Step 2: 下载 jPlayer插件

然后在head里面引用,当然是基于Jquery的插件


Step 3: Player 标记

html如下:

<!--container for everything-->
<div id="jp_container_1" class="jp-video jp-video-360p">
    <!--container in which our video will be played-->
    <div id="jquery_jplayer_1" class="jp-jplayer"></div>
    <!--main containers for our controls-->
    <div class="jp-gui">
        <div class="jp-interface">
            <div class="jp-controls-holder">
            </div><!--end jp-controls-holder-->
        </div><!--end jp-interface-->
    </div><!--end jp-gui-->
    <!--unsupported message-->
    <div class="jp-no-solution">
        <span>Update Required</span>
        Here's a message which will appear if the video isn't supported. A Flash alternative can be used here if you fancy it.
    </div>
</div><!--end jp_container_1-->

Update Required Here’s a message which will appear if the video isn’t supported. A Flash alternative can be used here if you fancy it.


Step 4: Controls 标记

html如下:

<!--play and pause buttons-->
<a class="jp-play" tabindex="1" href="javascript:;">play</a>
<a class="jp-pause" tabindex="1" href="javascript:;">pause</a>
<!--progress bar-->
<span class="time-sep">/</span>
<!--mute / unmute toggle-->
<a class="jp-mute" title="mute" tabindex="2" href="javascript:;">mute</a>
<a class="jp-unmute" title="unmute" tabindex="2" href="javascript:;">unmute</a>
<!--volume bar-->
<!--full screen toggle-->
<a class="jp-full-screen" title="full screen" tabindex="3" href="javascript:;">full screen</a>
<a class="jp-restore-screen" title="restore screen" tabindex="3" href="javascript:;">restore screen</a>

主要包含:

  • 播放,停止按钮

  • 进度条

  • 时间提醒

  • 静音切换

  • 卷栏

  • 全屏切换

  • Step 5: 添加视频

  • jPlayer插件目前支持以下视频格式:

  • mp3

  • mp4 (AAC/H.264)

  • ogg (Vorbis/Theora)

  • webm (Vorbis/VP8)

  • wav

使用代码如下:

<!--instantiate--><script type="text/javascript">// <![CDATA[
$(document).ready(function(){
  
    $("#jquery_jplayer_1").jPlayer({
        ready: function () {
            $(this).jPlayer("setMedia", {
                m4v: "mi4.m4v",
                ogv: "mi4.ogv",
                webmv: "mi4.webm",
                poster: "mi4.png"
            });
        },
        swfPath: "js",
        supplied: "webmv, ogv, m4v",
        size: {
            width: "570px",
            height: "340px",
            cssClass: "jp-video-360p"
        }
    });
  
});
// ]]></script>

更多使用方法见:jplayer.org

Step 6: Video 基本样式

css代码如下:

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,and,address,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video,input,textarea,select{background:transparent;border:0;font-size:100%;margin:0;outline:0;padding:0;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}del{text-decoration:line-through}hr{background:transparent;border:0;clear:both;color:transparent;height:1px;margin:0;padding:0}mark{background-color:#ffffb3;font-style:italic}input,select{vertical-align:middle}ins{background-color:red;color:white;text-decoration:none}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0}a{text-decoration:none;}
  
body {
    margin:0;
    padding:0;
    background:url("bg.jpg") repeat;
}
  
.jp-video {
    font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
    position:relative;
  
    -webkit-box-shadow:0px 0px 20px rgba(0,0,0,.3);
    -moz-box-shadow:0px 0px 20px rgba(0,0,0,.3);
    box-shadow:0px 0px 20px rgba(0,0,0,.3);
}
.jp-video-360p {
    width:570px;
    margin: 100px auto;
}
.jp-video-full {
    width:480px;
    height:270px;
    position:static !important;
    position:relative
}
.jp-video-full .jp-jplayer {
    top: 0;
    left: 0;
    position: fixed !important; position: relative; /* Rules for IE6 (full-screen) */
    overflow: hidden;
    z-index:1000;
}
  
.jp-video-full .jp-gui {
    position: fixed !important; position: static; /* Rules for IE6 (full-screen) */
    top: 0;
    left: 0;
    width:100%;
    height:100%;
    z-index:1000;
}
.jp-video-full .jp-interface {
    position: absolute !important; position: relative; /* Rules for IE6 (full-screen) */
    bottom: 0;
    left: 0;
    z-index:1000;
}

Step 7:基本控制样式

css样式如下:
 
.jp-interface {
    position: relative;
    width:100%;
    height: 35px;
  
    background-image: -webkit-linear-gradient(top, rgb(242, 242, 242), rgb(209, 209, 209));
    background-image: -moz-linear-gradient(top, rgb(242, 242, 242), rgb(209, 209, 209));
    background-image: -o-linear-gradient(top, rgb(242, 242, 242), rgb(209, 209, 209));
    background-image: -ms-linear-gradient(top, rgb(242, 242, 242), rgb(209, 209, 209));
    background-image: linear-gradient(top, rgb(242, 242, 242), rgb(209, 209, 209));
    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f2f2f2', EndColorStr='#d1d1d1');
  
    -webkit-box-shadow:
        inset 0px 1px 0px #f7f7f7,
        inset 0px -1px 0px #e2e2e2;
    -moz-box-shadow:
        inset 0px 1px 0px #f7f7f7,
        inset 0px -1px 0px #e2e2e2;
    box-shadow:
        inset 0px 1px 0px #f7f7f7,
        inset 0px -1px 0px #e2e2e2;
}
  
div.jp-controls-holder {
    clear: both;
    width:570px;
    margin: 0 auto;
  
    position: relative;
    overflow:hidden;
}

Step 8: 停止播放按钮

css样式如下:

a.jp-play,
a.jp-pause {
    width:40px;
    height:35px;
    float:left;
    text-indent:-9999px;
    outline:none;
}
  
a.jp-play {
    background: url("sprite.png") 0 0 no-repeat;
}
  
a.jp-pause {
    background: url("sprite.png") -40px 0 no-repeat;
    display: none;
}
  
.separator {
    background-image:url("separator.png");
    background-repeat:no-repeat;
    width: 2px;
    height: 35px;
    float:left;
    margin-top: 7px;
    margin-right: 10px;
}

Step 9: 进度条样式

css样式如下:

.jp-progress {
    background: #706d6d;
  
    -webkit-border-radius:5px;
    -moz-border-radius:5px;
    border-radius:5px;
  
    -webkit-box-shadow:
        inset 0px 1px 4px rgba(0,0,0,.4),
        0px 1px 0px rgba(255,255,255,.4);
    -moz-box-shadow:
        inset 0px 1px 4px rgba(0,0,0,.4),
        0px 1px 0px rgba(255,255,255,.4);
    box-shadow:
        inset 0px 1px 4px rgba(0,0,0,.4),
        0px 1px 0px rgba(255,255,255,.4);
  
    width:280px;
    height:10px;
    float:left;
    margin-top: 13px;
}
  
.jp-seek-bar {
    width:0px;
    height:100%;
    cursor: pointer;
}
  
.jp-seeking-bg {
    background:#575555;
    -webkit-border-radius:5px;
    -moz-border-radius:5px;
    border-radius:5px;
}
  
.jp-play-bar {
    background: url("play-bar.png") left repeat-x;
    width:0px;
    height:10px;
    position:relative;
    z-index: 9999;
  
    -webkit-border-radius:5px;
    -moz-border-radius:5px;
    border-radius:5px;
}
  
.jp-play-bar span {
    position:absolute;
    top: -3px;
    right: -12px;
  
    background:url("handle.png") no-repeat center;
    width: 16px;
    height: 17px;
}

Step 10:当前时间 / 持续时间的css样式

css样式如下:

.jp-current-time,
.jp-duration {
    font-size:11px;
    font-family:Arial;
    color:#444444;
    margin-top: 12px;
    float:left;
}
.jp-current-time {
    float: left;
    display:inline;
}
.jp-duration {
    float: left;
    display:inline;
    text-align: right;
}
.jp-video .jp-current-time {
    margin-left:10px;
}
.jp-video .jp-duration {
    margin-right:10px;
}
.time-sep {
    float:left;
    margin: 13px 3px 0 3px;
  
    font-size:11px;
    font-family:Arial;
    color:#444444;
}

第 11 步: 卷按钮和栏

.jp-video a.jp-mute,
.jp-video a.jp-unmute {
    text-indent:-9999px;
    float:left;
  
    height: 35px;
    outline:none;
}
  
.jp-mute {
    float:left;
    background: url(../images/sprite.png) -80px 0 no-repeat;
    margin-top: 1px;
    margin-left: -10px;
    width: 35px;
}
  
a.jp-unmute {
    background: url(../images/sprite.png) -115px 0 no-repeat;
    margin-top: 1px;
    margin-left: -13px;
    display: none;
    width: 38px;
}
  
.jp-volume-bar {
    float:left;
    margin-top: 13px;
    margin-right: 10px;
    overflow:hidden;
    width:70px;
    height:10px;
    cursor: pointer;
  
    background: #706d6d;
  
    -webkit-border-radius:5px;
    -moz-border-radius:5px;
    border-radius:5px;
  
    -webkit-box-shadow:
        inset 0px 1px 4px rgba(0,0,0,.4),
        0px 1px 0px rgba(255,255,255,.4);
    -moz-box-shadow:
        inset 0px 1px 4px rgba(0,0,0,.4),
        0px 1px 0px rgba(255,255,255,.4);
    box-shadow:
        inset 0px 1px 4px rgba(0,0,0,.4),
        0px 1px 0px rgba(255,255,255,.4);
}
  
.jp-volume-bar-value {
    background: transparent;
    width:0px;
    height:10px;
    position: relative;
}
  
.jp-volume-bar-value span {
    position:absolute;
    top: 0px;
    right: 0px;
  
    background:url(../images/volume.png) no-repeat center;
    width: 11px;
    height: 10px;
}

第 12 步: 全屏按钮

CSS样式如下:

.jp-full-screen {
    background: url(../images/sprite.png) -150px 0 no-repeat;
    float:left;
    width: 40px;
    height: 35px;
    text-indent:-9999px;
    margin-left: -15px;
    outline:none;
}
  
.jp-restore-screen {
    background: url(../images/sprite.png) -150px 0 no-repeat;
    float:left;
    width: 40px;
    height: 35px;
    text-indent:-9999px;
    margin-left: -15px;
    outline:none;
}

到这里我们的 video player就完成了,是不是代码很多,看得头大,其实不用那么紧张,我们只需要看关键地方就行了,比如说,了解那个player是如何使用的,还有具体的界面也有对应的CSS注释,关键是这些代码可以单独提取出来复用,仅供给大家自制播放器的时候提供一个参考,感谢伟大的coder的默默无闻奉献

在线演示 立即下载
打赏本站
云盘密码:88k5
Copyright © 2014 资源盒子 版权所有   黔ICP备14004500号-3   TAG
轮播图 滚动代码 表单按钮 音频视频 客服代码 弹出提示 TAB选项卡 导航菜单 页面布局 图片展示 UI
织梦标签工具下载 ↑↓
织梦标签工具下载