Javascript实现视频文件播放功能

简介: Javascript实现视频文件播放功能

应用CSS基础和JavaScript的函数功能,制作一个视频播放器。使用CSS完成相应的布局样式,利用JavaScript函数来监听进度条,然后使用鼠标点击按钮实现对视频的播放。

CSS部分:

1. <style>
2.         * {
3. margin: 0;
4. padding: 0;
5.         }
6. .body{
7. height: 100%;
8. width: 100%;
9. background-image: url(风景.jpg);
10. position: fixed;
11.         }
12. figcaption {
13. text-align: center;
14. font-family: "Microsoft YaHei";
15. font-size: 24px;
16. font-weight: 700;
17. line-height: 150px;
18.         }
19. .player {
20. width:640px;
21. height:360px;
22. margin: 10px auto;
23. background-color: pink;
24. background:url("login_on.gif")
25.             top center no-repeat;
26. background-size: auto 100%;
27. position: relative;
28. border-radius: 10px;
29. overflow: hidden;
30.         }
31. .player video {
32. height:100%;
33. display: block;
34. margin: 0px auto;
35. display: block;
36.         }
37. .controls {
38. width: 620px;
39. height:40px;
40. background-color: black;
41. position: absolute;
42. left: 10px;
43. bottom: 10px;
44. border-radius: 10px;
45.         }
46. .switch {
47. width: 20px;
48. height: 20px;
49. position: absolute;
50. top:10px;
51. left: 10px;
52. display: block;
53. text-align: center;
54. line-height: 20px;
55. color: yellow;
56.         }
57. .progerss {
58. width: 400px;
59. height:10px;
60. position: absolute;
61. background-color:beige;
62. left: 40px;
63. top:15px;
64. border-radius: 4px;
65. overflow: hidden;
66.         }
67. .cur-progress {
68. width:0%;
69. height:100%;
70. background: yellow;
71.         }
72. .time {
73. width: 120px;
74. height: 20px;
75. text-align: center;
76. line-height: 20px;
77. position: absolute;
78. left: 450px;
79. top:10px;
80. font-size: 12px;
81. color: #fff;
82.         }
83. .exted {
84. width: 20px;
85. height: 20px;
86. position: absolute;
87. top:10px;
88. right: 10px;
89. text-align: center;
90. line-height: 20px;
91. color: yellow;
92.         }
93. </style>

HTML部分:

1. <body class="body">
2. <figure>
3. <figcaption>视频播放</figcaption>
4. <div class="player">
5. <video src="商丘古城--夜景.mp4"></video>
6. <div class="controls">
7. <a href="#" class="switch icon-play" title="播放"></a>
8. <div class="progerss">
9. <div class="cur-progress"></div>
10. </div>
11. <div class="time">
12. <span class="curr-time">00:00:00</span>/
13. <span class="total-time">00:00:00</span>
14. </div>
15. <a href="#" class="exted icon-fullscreen" title="全屏"></a>
16. </div>
17. </div>
18. </figure>
19. </body>

Javascript部分:

1. <script>
2.         var video = document.querySelector("video")
3.         var playBtn = document.querySelector(".switch");
4.         var crrProgress = document.querySelector(".cur-progress");
5.         var crrTime = document.querySelector(".curr-time");
6.         var totalTime = document.querySelector(".total-time");
7.         var exted = document.querySelector(".exted");
8.         var tTime;
9.         var cTime;
10.         playBtn.onclick = function () {
11. if(video.paused){
12.                 video.play();
13.                 this.classList.remove("icon-play");
14.                 this.classList.add("icon-pause");
15.                 playBtn.title = "暂停";
16.             }else{
17.                 video.pause();
18.                 this.classList.remove("icon-pause");
19.                 this.classList.add("icon-play");
20.                 playBtn.title = "播放";
21.             }
22.         }
23.         video.oncanplay = function () {
24.             tTime = video.duration;
25.             var h = Math.floor(tTime / 3600);
26.             var m = Math.floor(tTime % 3600 / 60);
27.             var s = Math.floor(tTime % 60);
28.             h = h >= 10 ? h :"0" + h;
29.             m = m >= 10 ? m :"0" + m;
30.             s = s >= 10 ? s :"0" + s;
31.             totalTime.innerHTML = h + ":" + m + ":" + s;
32.         }
33.         video.ontimeupdate = function () {
34.             cTime = video.currentTime;
35.             var h = Math.floor(cTime / 3600);
36.             var m = Math.floor(cTime % 3600 / 60);
37.             var s = Math.floor(cTime % 60);
38.             h = h >= 10 ? h :"0" + h;
39.             m = m >= 10 ? m :"0" + m;
40.             s = s >= 10 ? s :"0" + s;
41.             crrTime.innerHTML = h + ":" + m + ":" + s;
42.             var value = cTime / tTime;
43.             crrProgress.style.width = value * 100 + "%";
44.         }
45.         exted.onclick = function () {
46.             video.webkitRequestFullScreen();
47.         }
48. </script>

效果图:

JavaScript介绍:

       JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。

       JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。

       JavaScript的标准是ECMAScript 。截至 2012 年,所有浏览器都完整的支持ECMAScript 5.1,旧版本的浏览器至少支持ECMAScript 3 标准。2015年6月17日,ECMA国际组织发布了ECMAScript的第六版,该版本正式名称为 ECMAScript 2015,但通常被称为ECMAScript 6 或者ES2015。

JavaScript脚本语言具有以下特点:

(1)脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。

(2)基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。

(3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。

(4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应。

(5)跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提是机器上的浏览器支 持JavaScript脚本语言,JavaScript已被大多数的浏览器所支持。 不同于服务器端脚本语言,例如PHP与ASP,JavaScript主要被作为客户端脚本语言在用户的浏览器上运行,不需要服务器的支持。所以在早期程序员比较倾向于使用JavaScript以减少对服务器的负担,而与此同时也带来另一个问题,安全性。

目录
相关文章
|
1月前
|
编解码 JavaScript 前端开发
如何在网页播放英文的m3u8文件(基于Javascript搭建的在线网页工具)
什么是m3u8?又该如何在网页中高效、便捷地播放英文的m3u8文件呢?今天这篇文章就带你一起了解,并推荐一种基于Javascript搭建的在线网页工具,让你轻松解决播放问题。
634 0
|
6月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
292 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
6月前
|
前端开发 JavaScript
【Javascript系列】Terser除了压缩代码之外,还有优化代码的功能
Terser 是一款广泛应用于前端开发的 JavaScript 解析器和压缩工具,常被视为 Uglify-es 的替代品。它不仅能高效压缩代码体积,还能优化代码逻辑,提升可靠性。例如,在调试中发现,Terser 压缩后的代码对删除功能确认框逻辑进行了优化。常用参数包括 `compress`(启用压缩)、`mangle`(变量名混淆)和 `output`(输出配置)。更多高级用法可参考官方文档。
461 11
|
11月前
|
JavaScript 前端开发 内存技术
js文件的入口代码及需要入口代码的原因
js文件的入口代码及需要入口代码的原因
135 0
|
11月前
|
JavaScript 前端开发 API
|
8月前
|
JavaScript 前端开发 安全
盘点原生JS中目前最没用的几个功能API
在JavaScript的发展历程中,许多功能与API曾风光无限,但随着技术进步和语言演化,部分功能逐渐被淘汰或被更高效的替代方案取代。例如,`with`语句使代码作用域复杂、可读性差;`void`操作符功能冗余且影响可读性;`eval`函数存在严重安全风险和性能问题;`unescape`和`escape`函数已被`decodeURIComponent`和`encodeURIComponent`取代;`arguments`对象则被ES6的剩余参数语法替代。这些变化体现了JavaScript不断优化的趋势,开发者应紧跟技术步伐,学习新技能,适应新技术环境。
126 10
|
8月前
|
JavaScript 前端开发
【Vue.js】监听器功能(EventListener)的实际应用【合集】
而此次问题的核心就在于,Vue实例化的时机过早,在其所依赖的DOM结构尚未完整构建完成时就已启动挂载流程,从而导致无法找到对应的DOM元素,最终致使计算器功能出现异常,输出框错误地显示“{{current}}”,并且按钮的交互功能也完全丧失响应。为了让代码结构更为清晰,便于后续的维护与管理工作,我打算把HTML文件中标签内的JavaScript代码迁移到外部的JS文件里,随后在HTML文件中对其进行引用。
127 8
|
9月前
|
JavaScript 容器
带方向感知功能的js图片遮罩层插件
带方向感知功能的js图片遮罩层插件
|
JavaScript 前端开发 API
Next.js 实战 (六):如何实现文件本地上传
这篇文章介绍了在Next.js中如何实现文件上传到本地的方法。文章首先提到Next.js官方文档中没有提供文件上传的实例代码,因此开发者需要自行实现,通常有两种思路:使用Node.js原生上传或使用第三方插件如multer。接着,文章选择了使用Node.js原生上传的方式来讲解实现过程,包括如何通过哈希值命名文件、上传到指定目录以及如何分类文件夹。然后,文章展示了具体的实现步骤,包括编写代码来处理文件上传,并给出了代码示例。最后,文章通过一个效果演示说明了如何通过postman模拟上传文件,并展示了上传后的文件夹结构。
221 0
Next.js 实战 (六):如何实现文件本地上传