利用html5自定义实现播放器代码分享


本文摘自PHP中文网,作者巴扎黑,侵删。

本篇文章主要介绍了从零实现一个自定义html5播放器的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

本次的分享是一个基于HTML5标签实现的一个自定义视频播放器。其中实现了播放暂停、进度拖拽、音量控制及全屏等功能。

效果预览

点我查看 源码仓库 。

核心思路

我相信一定会有些没有接触过制作自定义播放器的童鞋对于 标签的认识会停留在此。

1

2

3

<video controls="controls" autoplay="autoplay">

  <source src="movie.ogg" type="video/ogg" />

</video>

其中controls属性经过设定,会在界面中显示一个浏览器自带的控制条。如果对于UI没有要求的需求,其内置控制器已经可以满足大部分的需求。当然了如果是这样你们也不会看到这篇分享了=。=

隐藏控制条并模拟

那么实现一个自定义功能的播放器关键就在于,我们不使用原生的控制器,将其隐藏掉之后,在下方同样的位置通过html、css来模拟所需样式,同时通过js来调用vedio标签所暴露给我们的接口函数及属性,以及检测用户的操作行为来同步的模拟UI与视频播放数据的相应变化。

几个核心函数及属性的用法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

myVid=document.getElementById("video1");

//控制视频开关

myVid.play() //播放

myVid.pause() //暂停

//模拟视频进度条

myVid.currentTime=5; //返回或设定当前视频播放位置

myVid.duration // 返回视频总长度

//模拟视频音量

myVid.volume //音量

//获取视频当前状态后判断何时从loading切换为播放

myVid.readyState

//0 = HAVE_NOTHING - 没有关于音频/视频是否就绪的信息

//1 = HAVE_METADATA - 关于音频/视频就绪的元数据

//2 = HAVE_CURRENT_DATA - 关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒

//3 = HAVE_FUTURE_DATA - 当前及至少下一帧的数据是可用的

//4 = HAVE_ENOUGH_DATA - 可用数据足以开始播放

在所有实现中的关键点,较为繁琐的是对于进度条的模拟。其中使用了video标签中的currentTime以及duration属性,通过当前播放时间与总播放时间的比值,就可以计算出进度条相对于总长的位置。同时用户通过拖拽进度条所最后设置的长度也可以用来反向推算出此时视频应该播放的位置。

阅读剩余部分

相关阅读 >>

自定义实现可以播放暂停、进度拖拽、音量控制及全屏的h5播放器

HTML5多媒体audio和video详细介绍(一)

HTML5实现一个简单的在线画板

如何选择web前端模板引擎(推荐)

用h5实现手机摇一摇的实例详解

h5的头部meta标签如何使用

浅谈前端的正则表达式

HTML5/css3专题 css3打造百度贴吧的3d翻牌效果的经典案例

HTML5中必须知道的十件事

h5移动端各种各样的列表的制作方法详解(三)

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...