我试图在暂停时循环播放视频 URL(带有媒体片段)。我设置了一个监听器,以便在视频暂停时调用 LoopVideo() 函数:
function loopVideo() {
var video = document.getElementById('Video1');
var videoFile = 'file1.mp4#t=10,10';
video.src = videoFile;
video.play();
};
document.getElementById('Video1').addEventListener('paused', loopVideo(), false);
到目前为止,视频片段播放一次,但暂停时不会循环播放。我的代码有错误还是媒体片段有问题?
这是两年后的事了,但我要发布这个,因为我最近刚刚遇到这个问题。基本上我所做的是动态获取媒体片段中的值,然后在我的
timeupdate
视频事件侦听器中检查当前时间是否大于媒体片段的上限。如果它大于上限,我将当前时间设置为下限并播放视频。这是我使用的代码:
function checkMediaFragmentBounds(video, x,y) {
if(video.currentTime > y) {
video.currentTime = x;
video.play();
}
}
然后这是一个正在运行的 JSFiddle:JSFiddle,您还可以在其中看到我获取媒体片段边界的逻辑。希望这可以帮助其他人寻找这个答案,因为这就是我发现这是在寻找答案的方式。
如果将片段(以秒为单位)传递到 url,并在片段结束(并暂停)后触发“重新加载”,则可以制作自动循环视频
onpause="this.load()"
<video autoplay onpause="this.load()">
<source src="video.mp4#t=10,20" type="video/mp4">
</video>
<video autoplay onpause="this.load()">
<source src="video.mp4#t=10,20" type="video/mp4">
</video>
此代码运行完美,并且避免了任何 JS 代码。