一个基于html5的video视频播放器

html5的video标签使得加载视频方便了许多,上午无事,做了一个小demo,包含了一些很基本的功能。播放,进度这些。主要是了解一下相关api。

html:

                <!-- 视频 1  -->
                <div class="vsb-container" containerID="1" columns="1">
                    <div class="vsb-space sec_side_10 mb15 fluid clear" columns="1">
                        <div class="sec_23">
                            <div class="sec_23_video mb15">
                                <!-- <img src="images/videobg_03.jpg"/> -->
                                <video width=‘100%‘ height="100%" preload="auto" poster="images/videobg_03.jpg">
                                    <source src="video/12143.mp4" type="video/mp4">
                                </video>
                            </div>
                            <div class="sec_23_progress psr ml25 mb10">
                                <img class="progress" src="images/ico/sec_side_10_1_03.jpg"/>
                                <img class="progress_btn" style="left: 0;" src="images/ico/sec_side_10_07.jpg"/>
                            </div>
                            <div class="sec_23_control">
                                <img class="img1" src="images/ico/sec_side_10_11.jpg"/>
                                <img class="img2" src="images/ico/sec_side_10_17.jpg"/>
                                <img class="img3" src="images/ico/sec_side_10_14.jpg"/>
                                <img class="img4" src="images/ico/sec_side_10_20.jpg"/>
                                <img class="img5" src="images/ico/sec_side_10_22.jpg"/>
                            </div>
                        </div>
                    </div>
                </div>
                <!-- 视频 1  end -->
<style>
.sec_23_video{width: 180px;height: 108px;overflow: hidden;}
.sec_23_progress{width: 131px;height: 8px;}
.sec_23_progress .progress_btn{position: absolute;top: 0;}
.sec_23_control img{float: left;cursor: pointer;}
.sec_23_control .img1{margin: 0 18px 0 23px;}
.sec_23_control .img2{margin-right: 16px;margin-top: 7px;}
.sec_23_control .img3{margin-right: 15px;margin-top: 2px;cursor: default;}
.sec_23_control .img4{margin-right: 10px;margin-top: 8px;}
.sec_23_control .img5{margin-top: 7px;}
</style><script>
var oSec=$(‘.sec_23‘);//大的区块
var video=oSec.find(‘video‘)[0];//视频文件
var oBtn=oSec.find(‘.sec_23_control img‘);//controls按钮
var oProgress=oSec.find(‘.progress‘);//进度条
var oProgressBtn=oSec.find(‘.progress_btn‘);//进度条的块
videodemo(video,oBtn.eq(0)[0],oBtn.eq(1)[0],oBtn.eq(3)[0],oProgress[0],oProgressBtn[0]);//参数依次为:视频文件,播放按钮,停止按钮,快退按钮,进度条背景,进度条按钮
function videodemo(video,btnplay,btnrestart,btnrewind,progress,btnprogress){
    var iNowTime=0;//当前视频播放的事件,从0秒开始播放
    var iScale=(progress.offsetWidth-btnprogress.offsetWidth)/video.duration//进度条长度与视频长度的比例
    btnplay.onclick=function(){
        if(video.paused){
            video.play();
        }else{
            video.pause();
        }
    }
    btnrestart.onclick=function(){
        video.currentTime=0;
        video.pause();
    }
    btnrewind.onclick=function(){
        iNowTime=video.currentTime-10;
        video.currentTime=iNowTime;
    }
    bind(video,‘timeupdate‘,function(){
         btnprogress.style.left=Math.floor(video.currentTime*iScale)+‘px‘;
    });
    drag(btnprogress,{
        l:0,
        r:progress.offsetWidth-btnprogress.offsetWidth,
        t:0,
        b:0
    },function(site){
        btnprogress.style.left=site.left+‘px‘;
        iNowTime=parseInt(btnprogress.style.left);
        video.currentTime=iNowTime;
    });
}

function bind(obj, ev, fn) {
    if (obj.addEventListener) {
        obj.addEventListener(ev, fn, false);
    } else {
        obj.attachEvent(‘on‘ + ev, function() {
            fn.call(obj);
        });
    }
}
</script>

//ps:本函数用到的一些参数如下:
//video对象相关属性:
//currentTime 属性设置或返回音频/视频播放的当前位置(以秒计),当设置该属性时,播放会跳跃到指定的位置。
//duration 属性返回当前音频/视频的长度,以秒计。
//video对象相关方法:
//play() 播放
//pause() 暂停
// video对象的事件(video对象的事件众多,这里只用到了一个,根据js权威指南 21.2.4节,这些事件只可以addEventListener()方法注册处理函数,未测试ie下是否有效);
// timeupdate 视频播放过程中,每秒触发4~60次,这里用来刷新播放事件更改进度条

好像不能上传附件。图片就不上传了。css样式改一下即可

时间: 2024-08-26 09:46:18

一个基于html5的video视频播放器的相关文章

分享一个基于HTML5实现的视频播放器

什么是hivideo? 最近一段时间在使用PhoneGap开发一个App应用,App需要播放视频,本想直接使用html5的video,但使用它在全屏播放时不支持横屏播放,只能放弃.最终决定还是自己封装一个播放器算了,免得以后要扩展功能麻烦. 最近迷上hi这个单词,所以我给这个播放器取名叫做:hivideo. hivideo是一款基于html5的视频播放器,摒弃video原有的播放控制条样式,自己重写了一次.支持暂停.播放进度控制.声音控制.全屏播放.如果是要在手机端使用hivideo,全屏播放时

分享一个基于HTML5实现的视频播放器【转】

什么是hivideo? 最近一段时间在使用PhoneGap开发一个App应用,App需要播放视频,本想直接使用html5的video,但使用它在全屏播放时不支持横屏播放,只能放弃.最终决定还是自己封装一个播放器算了,免得以后要扩展功能麻烦. 最近迷上hi这个单词,所以我给这个播放器取名叫做:hivideo. hivideo是一款基于html5的视频播放器,摒弃video原有的播放控制条样式,自己重写了一次.支持暂停.播放进度控制.声音控制.全屏播放.如果是要在手机端使用hivideo,全屏播放时

HTML5实现的视频播放器01

HTML5实现的视频播放器 什么是hivideo? 最近一段时间在使用PhoneGap开发一个App应用,App需要播放视频,本想直接使用html5的video,但使用它在全屏播放时不支持横屏播放,只能放弃.最终决定还是自己封装一个播放器算了,免得以后要扩展功能麻烦. 最近迷上hi这个单词,所以我给这个播放器取名叫做:hivideo. hivideo是一款基于html5的视频播放器,摒弃video原有的播放控制条样式,自己重写了一次.支持暂停.播放进度控制.声音控制.全屏播放.如果是要在手机端使

100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)【转】

转自:http://blog.csdn.net/leixiaohua1020/article/details/8652605 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 简介 流程图 simplest_ffmpeg_player标准版代码 simplest_ffmpeg_player_suSU版代码 结果 FFMPEG相关学习资料 补充问题 ===================================================== 最简单的基于FFmp

最简单的基于FFMPEG+SDL的视频播放器 ver2 (採用SDL2.0)

===================================================== 最简单的基于FFmpeg的视频播放器系列文章列表: 100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x) 最简单的基于FFMPEG+SDL的视频播放器 ver2 (採用SDL2.0) 最简单的基于FFmpeg的解码器-纯净版(不包括libavformat) 最简单的基于FFMPEG+SDL的视频播放器:拆分-解码器和播放器 最简单的基于FFMPEG的Hellowor

最简单的基于FFMPEG+SDL的视频播放器 ver2 (采用SDL2.0)

简介 之前做过一个FFMPEG+SDL的简单播放器:<100行代码实现最简单的基于FFMPEG+SDL的视频播放器>.该播放器采用SDL1.2显示视频.最近有不少人反映SDL已经升级到2.0版本了,甚至官网的Wiki上都只有SDL2.0的文档了,因此下载了SDL 2.0 并且进行了简单的研究.随后对此前的播放器进行了修改,将SDL1.2换成了SDL2.0. 注:<100行代码实现最简单的基于FFMPEG+SDL的视频播放器>文章中提到的很多知识这里不再重复.本文重点记录SDL1.2

最简单的基于FFMPEG+SDL的视频播放器:拆分-解码器和播放器

本文补充记录<最简单的基于FFMPEG+SDL的视频播放器>中的两个例子:FFmpeg视频解码器和SDL像素数据播放器.这两个部分是从视频播放器中拆分出来的两个例子.FFmpeg视频解码器实现了视频数据到YUV数据的解码,而SDL像素数据播放器实现了YUV数据的显示.简而言之,原先的FFmpeg+SDL视频播放器实现了: 视频数据->YUV->显示器 FFmpeg视频解码器实现了: 视频数据->YUV SDL像素数据播放器实现了: YUV->显示器 FFmpeg视频解码

用JavaCV改写“100行代码实现最简单的基于FFMPEG+SDL的视频播放器 ”

FFMPEG的文档少,JavaCV的文档就更少了.从网上找到这篇100行代码实现最简单的基于FFMPEG+SDL的视频播放器.地址是http://blog.csdn.net/leixiaohua1020/article/details/8652605. 用JavaCV重新实现并使用opencv_highgui进行显示. 1 import com.googlecode.javacpp.IntPointer; 2 import com.googlecode.javacpp.Pointer; 3 im

基于&lt;最简单的基于FFMPEG+SDL的视频播放器 ver2 (采用SDL2.0)&gt;的一些个人总结

最近因为项目接近收尾阶段,所以变的没有之前那么忙了,所以最近重新拿起了之前的一些FFMPEG和SDL的相关流媒体播放器的例子在看. 同时自己也用FFMPEG2.01,SDL2.01结合MFC以及网上罗列的一些资料,打算打造一款自己的简易播放器. 最先开始是阅读了<An ffmpeg and SDL Tutorial>以及来源与(http://blog.csdn.net/love4mario/article/details/17652355)中的中文资料,同时认真对tutorial01-08中的