当前位置: 首页 > article >正文

html5 实现视频播放

常用属性

  • controls: 显示默认的播放控制条。
  • autoplay: 页面加载时自动播放视频。
  • loop: 视频播放结束后自动重新播放。
  • muted: 静音播放视频。
  • poster: 在视频加载前显示的预览图。

例子:

<video src="my_video_file.mp4" controls autoplay loop muted poster="review.jpg"></video>

一、实现视频循环播放:

loop属性确保视频循环播放

autoplay属性使视频在页面加载时自动播放

muted属性则静音播放,避免自动播放视频时的声音干扰

<video class="video_box" loop autoplay muted>
	<source src="my_video_file.mp4" type="video/mp4">
	<span>This video browser does not support</span>
</video>

二、使用JavaScript控制视频播放

1、通过监听视频的ended事件,在视频播放结束时重新播放

<video id="myVideo">
	<source src="my_video_file.mp4" type="video/mp4">
	<span>This video browser does not support</span>
</video>
<script>
	const myVideo = document.getElementById('myVideo');
	myVideo.addEventListener('ended', () => {
	  myVideo.play();
	});
</script>

2、通过检查视频的currentTime属性,实现更精细的控制

<video id="myVideo">
	<source src="my_video_file.mp4" type="video/mp4">
	<span>This video browser does not support</span>
</video>
<script>
	const myVideo = document.getElementById('myVideo');
	myVideo.addEventListener('timeupdate', () => {
		if (myVideo.currentTime >= myVideo.duration - 0.2) {
			myVideo.currentTime = 0;
			myVideo.play();
		}
	});
</script>

三、css动画加JavaScript控制视频效果

<style>
	.video_fade_in {animation: fadeIn 2s;}
	.video_fade_out {animation: fadeOut 2s;}
	@keyframes fadeIn {from { opacity: 0; }to { opacity: 1; }}	
	@keyframes fadeOut {from { opacity: 1; }to { opacity: 0; }}
</style>
<video class="video_fade_in">
	<source src="my_video_file.mp4" type="video/mp4">
	<span>This video browser does not support</span>
</video>
<video id="myVideo" class="video_fade_out">
	<source src="my_video_file.mp4" type="video/mp4">
	<span>This video browser does not support</span>
</video>
<!-- 在视频播放结束后淡入淡出 -->
<script>
	const myVideo = document.getElementById('myVideo');
	myVideo.addEventListener('ended', () => {
	  myVideo.classList.add('video_fade_out');
	  setTimeout(() => {
	    myVideo.classList.remove('video_fade_out');
	    myVideo.currentTime = 0;
	    myVideo.play();
	  }, 2000);
	});
</script>


http://www.kler.cn/a/401609.html

相关文章:

  • CSS3_动画(九)
  • 安全平行切面的概念以及对安全行业影响
  • Springboot3.3.5 启动流程之 tomcat启动流程介绍
  • RPA真的是人工智能吗?
  • MySQL时间字段TIMESTAMP和DATETIME
  • 如何在C#中处理必盈接口返回的股票数据?
  • 【设计模式】模板方法模式 在java中的应用
  • javaScript交互补充3(JSON数据)
  • JavaEE-多线程基础知识
  • C++ ─── 哈希表(unordered_set 和unordered_map) 开散列和闭散列的模拟实现
  • 搜维尔科技:基于Touch力反馈与VR技术的虚拟气管切开术的虚拟操作软件平台
  • CentOS 环境下通过 YUM 安装软件
  • OpenAI 助力数据分析中的模式识别与趋势预测
  • 疫情期间基于Spring Boot的图书馆管理系统
  • 基于yolov8、yolov5的行人检测识别系统(含UI界面、训练好的模型、Python代码、数据集)
  • Vue所有图片预加载加上Token请求头信息、图片请求加载鉴权
  • 小米运动健康与华为运动健康在苹手机ios系统中无法识别蓝牙状态 (如何在ios系统中开启 蓝牙 相册 定位 通知 相机等功能权限,保你有用)
  • 23种设计模式-模板方法(Template Method)设计模式
  • Unix发展历程的深度探索
  • 时代变迁对传统机器人等方向课程的巨大撕裂
  • react 使用中注意事项提要
  • CSS3中的伸缩盒模型(弹性盒子、弹性布局)之伸缩容器、伸缩项目、主轴方向、主轴换行方式、复合属性flex-flow
  • Java 多线程详解
  • 掌握SEO提升网站流量的关键在于长尾关键词的有效运用
  • Pytest 学习 @allure.severity 标记用例级别的使用
  • 使用Python实现智能食品市场预测的深度学习模型