如何让MP4视频从指定时间点播放、定点停止并自动循环?
解决方案
你的原代码问题在于:使用#t=60,100片段参数只能让视频第一次从60秒播放到100秒,但浏览器原生loop属性会让视频循环时回到整个视频的开头,而非重新定位到片段起始点,所以无法实现指定区间的循环播放。
下面是可行的实现方案,通过JavaScript控制播放区间和循环逻辑:
实现代码
HTML部分
<video id="loopVideo" autoplay muted> <source src="../images/myvideo.mp4" type="video/mp4"> </video>
JavaScript部分
const video = document.getElementById('loopVideo'); const startSecond = 60; // 起始播放秒数 const endSecond = 100; // 结束播放秒数 // 视频元数据加载完成后,直接跳转到起始点 video.addEventListener('loadedmetadata', () => { video.currentTime = startSecond; }); // 实时监控播放时间,到达结束点时跳回起始点实现循环 video.addEventListener('timeupdate', () => { if (video.currentTime >= endSecond) { video.currentTime = startSecond; // 无需额外调用play(),autoplay已确保视频处于播放状态,跳转后会继续播放 } });
关键说明
muted属性是现代浏览器允许自动播放的必要条件(禁止无交互自动播放带声音的媒体)loadedmetadata事件确保视频时长等元数据加载完成后再设置起始时间,避免设置失败- 通过
timeupdate事件实时检测播放进度,到达结束点时强制跳回起始点,实现指定区间的循环播放
内容的提问来源于stack exchange,提问作者DXB-DEV
相关产品推荐
相关产品推荐

