h5直播源码,如何实现一个简易播放器? - 云豹科技

news/2025/10/18 9:21:22/文章来源:https://www.cnblogs.com/yunbaomengnan/p/19149207

h5直播源码,如何实现一个简易播放器?

利用 html + js + css 实现一个播放器的简单功能
我们在页面开发过程中会遇到,在页面中播放视频的需求。通常我们利用成熟的 视频播放插件来处理

如: video.js 。但是,为了我们的个人成长,也需要了解下如何实现一个简单的 h5 播放器功能。

要实现一个播放功能通常包括:

1、video 标签的使用
2、模拟视频进度条
3、控制播放和暂停
4、控制音量
5、快进和回退

布局

<div class="player"><video src="./video.mp4" class="player_video"></video><div class="player_controls"><div class="progress"><div class="progress_fill"></div></div><button class="player_button toggle" title="Toggle Play">►</button><inputtype="range"class="player_range"name="playbackRate"min="0.5"max="2"step="0.1"value="1"/><button data-skip="-10" class="player_button">« 10s</button><button data-skip="25" class="player_button">25s »</button></div>
</div>

样式

// .scss
html {box-sizing: border-box;
}*,
*:before,
*:after {box-sizing: inherit;
}body {background: #fff;min-height: 100vh;background-size: cover;display: flex;align-items: center;justify-content: center;margin: 0;padding: 0;
}
.player {width: 750px;border: 2px solid #000;position: relative;font-size: 0;overflow: hidden;.player_video {width: 100%;}&:fullscreen {max-width: none;width: 100%;}&:-webkit-full-screen {max-width: none;width: 100%;}&:hover .progress {height: 15px;}&:hover .player_controls {transform: translateY(0);}
}
.player_controls {display: flex;position: absolute;bottom: 0;width: 100%;transform: translateY(100%) translateY(-5px);transition: all 0.3s;flex-wrap: wrap;background: rgba(0, 0, 0, 0.7);& > * {flex: 1;}.player_button {background: none;border: 0;outline: none;line-height: 1;color: #fff;text-align: center;padding: 0;cursor: pointer;max-width: 50px;&:focus {border-color: #ffc600;}}.player_range {width: 10px;height: 30px;}.progress {flex: 10;position: relative;display: flex;flex-basis: 100%;height: 5px;transition: height 0.3s;background: rgba(0, 0, 0, 0.5);cursor: ew-resize;.progress_fill {// width: 10%;background: #ffc600;flex: 0;flex-basis: 10%;}}
}
// 进度条
input[type='range'] {-webkit-appearance: none;background: transparent;width: 100%;margin: 0 5px;&:focus {outline: none;}&::-webkit-slider-runnable-track {width: 100%;height: 8.4px;cursor: pointer;box-shadow: 1px 1px 1px rgba(0, 0, 0, 0), 0 0 1px rgba(13, 13, 13, 0);background: rgba(255, 255, 255, 0.8);border-radius: 1.3px;border: 0.2px solid rgba(1, 1, 1, 0);}&::-webkit-slider-thumb {height: 15px;width: 15px;border-radius: 50px;background: #ffc600;cursor: pointer;-webkit-appearance: none;margin-top: -3.5px;box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);}&:focus::-webkit-slider-runnable-track {background: #bada55;}&::-moz-range-track {width: 100%;height: 8.4px;cursor: pointer;box-shadow: 1px 1px 1px rgba(0, 0, 0, 0), 0 0 1px rgba(13, 13, 13, 0);background: #ffffff;border-radius: 1.3px;border: 0.2px solid rgba(1, 1, 1, 0);}&::-moz-range-thumb {box-shadow: 0 0 0 rgba(0, 0, 0, 0), 0 0 0 rgba(13, 13, 13, 0);height: 15px;width: 15px;border-radius: 50px;background: #ffc600;cursor: pointer;}
}

脚本

 const player = document.querySelector('.player');const video = document.querySelector('.player_video');const toggle = document.querySelector('.toggle');// 播放 or 暂停function toggleVideo() {const methods = video.paused ? 'play' : 'pause';video[methods]();}function updateButton() {const image = this.paused ? '►' : '❚ ❚';toggle.textContent = image;}// 控制播放
video.addEventListener('click', toggleVideo);
video.addEventListener('play', updateButton);
video.addEventListener('pause', updateButton);
toggle.addEventListener('click', toggleVideo);

以上就是h5直播源码,如何实现一个简易播放器?, 更多内容欢迎关注之后的文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/939377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误

让普通用户在Linux系统中使用Docker命令,通常需要解决权限问题,尤其是避免遇到无法访问 /var/run/docker.sock的错误。docker.sock是一个Unix套接字,Docker客户端使用它同Docker守护进程进行通信。默认情况下,这个…

完整教程:【Linux】操作系统的认识

完整教程:【Linux】操作系统的认识2025-10-18 09:13 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !imp…

C# Avalonia 16- Animation- PathBasedAnimation

C# Avalonia 16- Animation- PathBasedAnimation写一个辅助类PathHelper,用于将PathGeometry转换为对应离散的Point,用于路径追踪。using System; using System.Collections.Generic; using Avalonia; using Avaloni…

2025年危险品运输公司权威推荐榜:安全高效,专业服务值得信赖!

2025年危险品运输公司权威推荐榜:安全高效,专业服务值得信赖!随着全球化工产业的快速发展,危险品运输行业的需求也在不断增加。为了确保危险品在运输过程中的安全性与效率,选择一家专业的危险品运输公司显得尤为重…

2025 年联轴器厂家最新推荐排行榜:聚焦万向、膜片、齿式等多类型产品,精选行业优质厂家

在现代工业生产中,联轴器作为连接机械传动部件的核心组件,直接影响设备运行的稳定性与效率,广泛应用于冶金、矿山、石油化工等关键领域。当前市场上联轴器品牌数量众多,产品质量参差不齐,部分企业存在技术落后、售…

2025 年换热器厂家最新推荐榜单:涵盖不锈钢钛哈氏合金等材质及列管式螺旋板等类型,为企业采购提供优质选择

引言在化工、环保、制药、食品等众多关键行业中,换热器作为核心热能交换设备,其质量稳定性、热交换效率与节能性能,直接关系到企业生产流程的连续性、能源成本控制及生产安全合规性。当前换热器市场企业数量繁杂,部…

2025 年最新推荐!反应釜制造厂家榜单重磅发布,聚焦不锈钢钛合金哈氏合金等多类型设备优质厂商

一、反应釜制造企业推荐榜推荐一:江苏旭阳化工设备有限公司 推荐指数:★★★★★ 口碑评分:9.9 分 品牌介绍:创建于 2009 年,坐落于靖江经济技术开发区城南园区,是集研发、生产和进出口贸易于一体的高科技企业。…

多模态、世界模型和主动智能丨Convo AIRTE2025

多模态是从 LLM 到 AGI 的必经之路。从 AI 视频生成到可实时交互的世界模型,从被动响应到主动感知与交互,再到下一代多模态大模型的设计与构建——由商汤科技和 RTE 开发者社区联合出品的 「多模态技术专场」 将展望…

2025年发电机组厂家推荐排行榜,柴油/燃气/船用/静音箱式/移动拖车/集装箱式/上柴/玉柴/潍柴/康明斯/沃尔沃/道依茨/帕金斯/MTU发电机组公司精选

2025年发电机组厂家推荐排行榜:柴油/燃气/船用/静音箱式/移动拖车/集装箱式/上柴/玉柴/潍柴/康明斯/沃尔沃/道依茨/帕金斯/MTU发电机组公司精选随着能源需求的不断增长和技术的快速发展,发电机组在各行各业中的应用越…

2025 防火隔断厂家最新推荐排行榜:甲级防火玻璃隔断厂家深度剖析,精选优质品牌助力采购决策

随着建筑行业对消防安全的要求日益严苛,防火隔断作为保障建筑安全的核心设施,市场需求持续攀升,但行业乱象却让采购者陷入选择困境。部分品牌缺乏核心技术,产品耐火性能不达标,火灾时无法有效阻隔火势与有毒烟气;…

clickhouse数据库 数据插入 去重和覆盖

一、存在则忽略(只插入全新用户)from clickhouse_driver import Client import pandas as pd client = Client(host=localhost, port=9000, database=default)# 0) 待写入的新数据 df_new = pd.DataFrame({ user_id:…

nacos客户端(接口调用者)如何感知被调用服务下线? (二)

🧩 一、问题背景 场景: 你有两个微服务:order-service(调用方 / Consumer)product-service(被调用方 / Provider)当 product-service 的一个实例下线(比如机器宕机或应用关闭)时, order-service 要知道它已…

2025 水泥墩源头厂家最新推荐排行榜:光伏 / 交通 / 围挡等多品类优选,实力品牌权威榜单发布

水泥墩作为市政基建、光伏电站、交通防护等领域的核心基础建材,其质量直接关系到工程安全与使用寿命。当前市场中厂家数量繁杂,部分企业为逐利偷工减料,导致产品强度不足、尺寸偏差大,难以抵御恶劣环境;部分厂家工…

2025年鸡精生产线/高速混合机/WDG农药生产线/鸡粉干燥设备/海鲜精干燥设备厂家推荐排行榜,调味料干燥设备/全自动配料/螺带混合机优质品牌!

2025年鸡精生产线/高速混合机/WDG农药生产线/鸡粉干燥设备/海鲜精干燥设备厂家推荐排行榜,调味料干燥设备/全自动配料/螺带混合机优质品牌!随着食品加工和化工行业的快速发展,相关生产设备的需求也在不断增加。鸡精…

2025 年过滤机厂家最新推荐排行榜:胶带式 / 盘式真空 / 脱水 / 带式真空 / 水平带式过滤机企业精选及选购指南

在工业生产与环保处理领域,固液分离环节的效率与质量直接关乎企业生产进度、产品品质及环保合规性,而过滤机作为该环节的核心设备,其重要性不言而喻。当前过滤机市场品牌繁杂、产品质量参差不齐,部分设备存在过滤速…

nacos客户端(接口调用者)如何感知被调用服务下线?(一)

Nacos 客户端(接口调用者)感知被调用服务下线的过程,依赖于 Nacos 的服务注册与发现机制、健康检查机制以及客户端缓存更新策略。核心逻辑是:Nacos 服务器实时维护服务实例状态,客户端通过 “主动拉取 + 被动推送…

2025年防水织带/鞋垫/编织包/针织包/飞织包包/松紧带/鞋带/织带/飞织鞋面厂家推荐排行榜,品质与创新的完美结合!

2025年防水织带/鞋垫/编织包/针织包/飞织包包/松紧带/鞋带/织带/飞织鞋面厂家推荐排行榜,品质与创新的完美结合!随着技术的不断进步和消费者需求的多样化,防水织带、鞋垫、编织包/针织包/飞织包包、松紧带、鞋带、织…

2025年压铸机械手厂家推荐排行榜,铝镁合金压铸周边自动化,压铸岛专业解决方案!

2025年压铸机械手厂家推荐排行榜,铝镁合金压铸周边自动化,压铸岛专业解决方案!随着制造业的不断发展和技术进步,压铸、压铸机械手、铝镁合金压铸周边自动化以及压铸岛等设备的需求日益增长。为了帮助筛选优质的压铸…

在MySQL中 redolog undolog binlog 写入的场景,顺序

🧩 一、三个日志的基本概念日志类型作用层面主要功能存放位置Redo Log InnoDB 引擎层 记录“数据页的物理修改” InnoDB 特有(ib_logfile)Undo Log InnoDB 引擎层 用于事务回滚 & MVCC InnoDB 表空间中Binlog …

2025年证卡打印机厂家权威推荐榜:含证件/PVC卡/IC卡/ID卡/智能卡,宝瑞迪/BOOD品牌优选!

2025年证卡打印机厂家权威推荐榜:含证件/PVC卡/IC卡/ID卡/智能卡,宝瑞迪/BOOD品牌优选!随着科技的不断进步和信息化管理的需求日益增长,证卡打印机在各行各业中的应用越来越广泛。无论是企业、学校、政府机关还是医…