如今,数字时代,视频就像空气一样无处不在,不论是学习、玩乐还是交友,总少不了它。我要给大家讲讲怎么自制一个牛气冲天的H5视频播放器。除了可以正常播放和暂停视频外,你还能随意拖拽进度条,调整音量大小,甚至全屏看片儿!接下来,咱们就一起来动手做!
为什么要自定义H5播放器?
大家都知道浏览器里的视频播放器功能很强了?但是,有时候我们可能还是想让它更符合自己的要求!比如说,让播放器跟你的网页看起来更搭配,或者是你想要一些特别的功能,像给视频加密这些。所以,自定义播放器就显得很重要,既可以提高用户体验,又能让你的网站看起来更专业、更吸引人。
隐藏原生控制条,自定义UI
咱们现在得把浏览器自带的那个菜单栏给藏起来,然后用HTML和CSS搭个我们自已的界面。这个步骤很重要,因为它会决定我们的页面好看不好看,好用不好用。用点CSS小技巧就可以搞定那些烦人的自带菜单,然后用HTML元素和CSS样式来做各种按钮呀、进度条呀这些交互控件。
用JavaScript控制播放器功能
要操控播放器,用的就是Javascript。用它就能让视频播啊停啊啥的,还有进度条也能拖动!在这儿,咱们就得用到HTML5那个video标签里自带的属性和方法了,像currentTime和duration这哥俩儿就能帮咱们搞清楚现在已经播了多久,总共还剩多长时间,然后就能算出进度条该在哪儿了。
实现音量控制
音量调控可是看视频必备的功能!JavaScript能帮我们监控音量调节按钮的变化,然后调整画面声音的大小。要是觉得不够好的话,还可以加上个记忆功能这样你上次设的音量就会被记住,下回再开视频就能直接用了。
全屏播放的实现
全屏看电影可是很爽!用HTML5的话,只要让视频全屏播放就行。不过,有些浏览器可能不太友好,所以咱们得处理下兼容性的小麻烦。
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 - 可用数据足以开始播放
注意事项
做个定制版的H5播放器时,有些点需要特别留意。首先得保证咱们自己做的这个控制器在各种设备和浏览器上都能用得溜,还有就是别忘了给视力不好的朋友们留个通道,让他们也能顺畅地用上咱们的播放器。
实战案例分析
这回咱们就玩儿一把实际操作!看看怎么做出来一个完整的H5视频播放器。我们先搞定HTML基础,然后加些炫酷的CSS,再加上JavaScript小能手,一步步让你的播放器正常运转起来。
//核心代码示例 var dragDis = 0 var processWidth = xxx //拖拽条总长 $('body').mousedown(function(e) { startX = e.clientX dragDis = startX - leftInit //leftInit为拖拽条起始点巨屏幕左侧的距离 dragTarget.css({ //拖拽按钮 left: dragDis }) dragProcess.css({ //进度条(蓝色进度条) width: dragDis }) // 令进度条和拖拽按钮渲染在同一位置 videoSource.pause() }).mousemove(function(e) { moveX = e.clientX disX = moveX - startX var left = dragDis + disX if(left > processWidth) { left = processWidth } else if(left同理音量的控制与其上行为基本一致,故在源码中作者将音量与进度部分通过不同元素进行判断是进行进度还是音量的拖拽控制。
通过查询视频流状态控制播放前的加载动画
function ifState() { var state = videoSource.readyState if(state === 4) { //状态为4即可播放 videoPlayer() } else { $('.play-sym-wrapper').remove() $('body').append('') //添加loading动画 setTimeout(ifState, 10) } } setTimeout(ifState, 10)让我们来读这篇文章,你会学到如何打造属于自己的H5视频播放器。然后,我想问你:你理想中的自定义播放器应该具备哪些特别的功能?赶快在评论里告诉我,别忘了给我点个赞并分享出去!
原文链接:https://www.icz.com/technicalinformation/web/2024/06/17774.html,转载请注明出处~~~
评论0