html---自定义视频播放控制台

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="gbk">
        <style>
         #box{
          width:500px;
          height:40px;
          background:#ff0000;
          border-radius:10px;  <!--圆角-->
          box-shadow:1px 1px 2px 2px #232;   <!--阴影-->
          border:1px solid #ff0000
         }
         .play{   <!--用css画三角形-->
          width:0px;height:0px;
          border-left:16px solid #fff;
          border-top:12px solid rgba(255,255,255,0); <!--rgba指定颜色-->
          border-bottom:12px solid rgba(255,255,255,0);
          float:left;
          margin-top:10px;
          margin-left:10px;cursor:pointer;
         }
         .pause{   <!--用css画两条竖线-->
           width:6px;height:18px;
           border-left:4px solid #fff;
           border-right:4px solid #fff;
           float:left;
           margin-top:10px;
           margin-left:10px;cursor:pointer;
         }

        #progress{
          float:left;
          width:60%;height:8px;background:#fff;
          box-shadow:1px 1px 2px 2px #232;
          border-radius:5px;
          margin-top:16px;
          margin-left:16px;
          position:relative;
        }
        #bar{
         width:10%;height:100%;background:#ccc;border-radius:3px;
         display:inline-block;position:absolute;top:0;left:0;
        }
        #control{
          width:17px;height:17px;position:absolute;border-radius:100%;
          left:0;top:-4px;background:#fff;box-shadow:1px 1px 2px 2px #132;
          cursor:pointer;
        }
        .soundon{
          width:10px;height:8px;
          border-right:13px solid #fff;
          border-top:6px solid rgba(255,255,255,0);
          border-bottom:6px solid rgba(255,255,255,0);
          float:left;
          margin-top:10px;
          margin-left:10px;cursor:pointer;
        }

        .soundoff{
          width:10px;height:8px;
          border-right:13px solid #000;
          border-top:6px solid rgba(255,255,255,0);
          border-bottom:6px solid rgba(255,255,255,0);
          float:left;
          margin-top:10px;
          margin-left:3px;cursor:pointer;
        }

         #volume{
          float:left;
          width:15%;height:5px;background:#fff;
          box-shadow:1px 1px 2px 2px #232;
          border-radius:5px;
          margin-top:16px;
          margin-left:2px;
          position:relative;
        }
        #volume-bar{
         width:10%;height:100%;background:#ccc;border-radius:3px;
         display:inline-block;position:absolute;top:0;left:0;
        }
        #volume-control{
          width:15px;height:15px;position:absolute;border-radius:100%;
          left:0;top:-4px;background:#fff;box-shadow:1px 1px 2px 2px #132;
          cursor:pointer;
        }
        #full{
          width:15px;height:15px;border:3px solid #ccc;cursor:pointer;float:left;
          margin-top:10px;margin-left:15px;transition:0.5s all;
        }
        #full:hover{
          width:20px;height:20px;border:3px solid #ccc;cursor:pointer;float:left;
          margin-top:7px;margin-left:13px;
        }
        </style>
        <script>
           window.onload=function  () {
            //box对象
            var box=document.getElementById("box");
            //视频对象
            var video=document.getElementById("video");
            //播放按钮
            var play=document.getElementById("play");
            //进度条
            var progress=document.getElementById("progress");
            //灰色进度条
            var bar=document.getElementById("bar");
            //声音按钮
            var control=document.getElementById("control");

            //喇叭
            var sound=document.getElementById("sound");

            //全屏
            var full=document.getElementById("full")
            full.addEventListener("click",function  () {
               //video.mozRequestFullScreen()
               video.webkitRequestFullScreen()
            },false)
            play.onclick=function  () {
              if(video.paused){
                play.className="pause";
                video.play();
              }else{
                play.className="play";
                video.pause();
              }
            }
            //进度条
            video.addEventListener("timeupdate",function  () {
              var scales=video.currentTime/video.duration;
              bar.style.width=progress.offsetWidth*scales+"px";
              control.style.left=progress.offsetWidth*scales+"px";
            },false);

            //进度条拖拽
           control.onmousedown=function  (e) {
             video.pause();
             document.onmousemove=function  (e) {
               var leftv=e.clientX-progress.offsetLeft-box.offsetLeft;
               if(leftv<=0){
                leftv=0;
               }
               if(leftv>=progress.offsetWidth){
               leftv=progress.offsetWidth;
               }
               control.style.left=leftv+"px"
             }
             document.onmouseup=function  () {
               var scales=control.offsetLeft/progress.offsetWidth;
                video.currentTime =video.duration*scales;
                video.play();
                document.onmousemove=null;
                document.onmousedown=null;
             }
           }
              sound.onclick=function  () {
                if(video.muted){
                   video.muted=false;
                   sound.className="soundon"
                }else{
                  video.muted=true;
                  sound.className="soundoff"
                }
              }
           }
        </script>
    </head>
    <body>
       <video src="iceage4.mp4" controls=controls id="video">
       </video>
       <div id="box">
            <!--播放暂停按钮-->
            <div id="play" class="play">
            </div>
            <!--进度条-->
            <div id="progress">
                 <span id="bar">
                 </span>
                 <div id="control">
                 </div>
            </div>
            <!--喇叭-->
            <div id="sound" class="soundon">
            </div>
            <!--声音控制-->
            <div id="volume">
                 <span id="volume-bar">
                 </span>
                 <div id="volume-control">
                 </div>
            </div>

            <div id="full">
            </div>
       </div>
    </body>
</html>
时间: 2024-11-07 19:17:27

html---自定义视频播放控制台的相关文章

Android进阶:自定义视频播放器开发(下)

上一篇文章我们主要讲了视频播放器开发之前需要准备的一个知识,TextureView,用于对图像流的处理.这篇文章开始构建一个基础的视频播放器. 一.准备工作 在之前的文章已经说过了,播放器也是一个view,我们要在这个view上播放视频流.所以我们要自定义一个简单的viewgroup,比如继承FrameLayout.还出就是布局简单,其他控件可以往上面添加.大家见过的视频播放器的控制器都是放在视频的上方的.这样就是用FrameLayout布局是最好的. class SmallVideoPlaye

自定义视频播放器(功能包括:播放/暂停,全屏,跳播)

最终效果: 1.demo结构 fontawesome字体下载:http://fontawesome.dashgame.com/ loading.gif:百度loading.gif选择一张下载 2.index.html 功能包括:播放/暂停,全屏,跳播 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>自定义视频播放器</title> <li

HTML5+CSS3+JQuery打造自定义视频播放器

来源:http://www.html5china.com/HTML5features/video/201109206_1994.html 简介HTML5的<video>标签已经被目前大多数主流浏览器所支持,包括还未正式发布的IE9也声明将支持<video>标签,利用浏览器原生特性嵌入视频有很多好处,所以很多开发者想尽快用上,但是真正使用前还有些问题要考虑,尤其是 Opera/Firefox 和IE/Safari浏览器所支持的视频编码不同的问题,Google几个月前发布的开源视频编码

Swift中使用MPMoviePlayerController实现自定义视频播放器界面

默认情况下播放器自带各种控制按钮,比如前进后退播放暂停等: var url = NSBundle.mainBundle().URLForResource("1", withExtension: "mp4") var play1 = MPMoviePlayerViewController(contentURL: url) self.presentMoviePlayerViewControllerAnimated(play1) 效果如下: 有时候希望自定义播放器界面.各

使用CSS3+JQuery打造自定义视频播放器

简介 HTML5的<video>标签已经被目前大多数主流浏览器所支持,包括还未正式发布的IE9也声明将支持<video>标签,利用浏览器原生特性嵌入视频有很多好处,所以很多开发者想尽快用上,但是真正使用前还有些问题要考虑,尤其是 Opera/Firefox 和IE/Safari浏览器所支持的视频编码不同的问题,Google几个月前发布的开源视频编码VP8有望能解决这一问题,另外Google还发布了开放网络媒体项目WebM,旨在帮助开发者为开放网络制作出世界级媒体格式,Opera,

android 自定义视频播放器之2/1

很久没更新博客,相信大家年后都比较忙. 今天给大家带来了一款视频播放器,首先确认的得有几点. 1.首先得有个播放视频的view: 2.加点额外功能进去左边上下滑动调节亮度,右边上下滑动调节声量: 3.视频当然得有快进和快退,左右滑动快进和快退: 4.可全屏播放: 5.暂时只做了离线播放.下篇博客再去研究在线播放.视频路径 这是视频本地路径,视频资源的话你们自己去找,文件夹会自动创建,放在该文件夹下面就可以了 private String Path = Environment.getExterna

自定义SpringBoot控制台输出的图案

pringboot启动的时候,控制台输出的图案叫banner banner?啥玩意儿?相信有些人,一定是一脸懵逼... ——这个就不陌生了吧,这个是我们启动springboot的时候,控制台输出的... 一开始我在接触jeesite这个开源项目的时候,觉得很奇怪, 为什么人家是springboot,我也是springboot, 人家显示的是jeesite,我是spring! 后来,好奇宝宝去查了一下,原来这个是可以自定义的,哈哈... 小可爱应该知道好奇宝宝要做啥了吧~ 怎么改写这个banner

Android自定义视频播放器(网络/本地)

最近因公司项目要求需要写一个播放器,自带的又不太好用,也不太好看.自能自定义啦.查看了很多资料,都没有完善的,还好得以为前辈的指点得以完成,感谢Yang.本篇里面我有可能有些地方写得不好(都附上了注释).希望各路大神指点,虚心受教. 先来个图(源码在后面附上) 视频列表里面的数据是本地的,如果你需要使用网络的只需要在此获取服务器的数据展示就行了.播放页面在后面. package com.eteng.moblieplayer.video; import android.content.Conten

Android进阶:自定义视频播放器开发(上)

随着快手,抖音,西瓜视频等视频APP的崛起,视频播放已经成为主流,此时作为Android研发的你,想要提高自己的能力还不知道怎么开发视频播放器怎么行?所以今天就带着大家一起开发一个简易播放器:SmallVideoPlayer 需求分析 我们观察一个视频播放器,可以看到视频播放器除了正在播放的视频还有很多控件,比如播放按钮,暂停按钮,播放进度条,播放计时器等.这么多控件显然无法播放视频,但是他们都在控制视频的播放.由此可见视频播放器可以分为两层,一层为视频播放器控制层,一层为真正的视频播放层. 所

Android进阶 自定义视频播放器

随着快手,抖音,西瓜视频等视频APP的崛起,视频播放已经成为主流,此时作为Android研发的你,想要提高自己的能力还不知道怎么开发视频播放器怎么行?所以今天就带着大家一起开发一个简易播放器:SmallVideoPlayer 一.需求分析 我们观察一个视频播放器,可以看到视频播放器除了正在播放的视频还有很多控件,比如播放按钮,暂停按钮,播放进度条,播放计时器等.这么多控件显然无法播放视频,但是他们都在控制视频的播放.由此可见视频播放器可以分为两层,一层为视频播放器控制层,一层为真正的视频播放层.