【金秋打卡】第23天 进度条的实现
2022/11/16 4:24:15
本文主要是介绍【金秋打卡】第23天 进度条的实现,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:TypeScript封装播放器组件
课程章节:第5章 弹出层中的Video播放器组件开发 5.7
课程讲师:西门老舅
课程内容:
今天学习的内容是播放进度的联动,随着视频播放进度条自动更新进度。
在 playing
方法中,通过 video.currentTime 可以获取最新的进度,除以 video.duration 就能计算出此时播放进度的比例,然后动态修改进度条的width 即可。
同时通过 video.buffered.end(0)
可以获取视频缓存节点的时间,它永远大于 currentTime,可以用它来计算缓存的进度。
首先在 css 中,将进度条有关的 width 样式全部重置为 0:
.video-progress-now { width: 0; } .video-progress-suc { width: 0; }
然后通过相关 API 去动态设置进度:
handle() { // 进度条位置 let currentProcess = this.tempContainer.querySelector('.video-progress-now') as HTMLElement let sucProcess = this.tempContainer.querySelector('.video-progress-suc') as HTMLElement let barProcess = this.tempContainer.querySelector('.video-progress-bar') as HTMLElement function playing () { // 展示当前时长 (startTimeElm as HTMLElement).innerHTML = formateTime(videoElm.currentTime as number) // 计算位置比例 let scale = videoElm.currentTime / videoElm.duration let sucScale = videoElm.buffered.end(0) / videoElm.duration currentProcess.style.width = scale * 100 + '%' barProcess.style.width = scale * 100 + '%' sucProcess.style.width = sucScale * 100 + '%' } }
课程收获
这节课实现了播放器组件的进度条相关功能,主要借助 video 元素的 currentTime,duration 和 buffered 这三个属性。在此基础上还可以进行完善,实现拖拽滑块更新进度,点击进度条更新进度的功能。
这篇关于【金秋打卡】第23天 进度条的实现的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署