【发布时间】:2014-01-12 06:44:59
【问题描述】:
我知道这个问题已经被问过很多次了,我已经在 StackOverflow 上查看了每个问题。
我只是想在 HTML5 播放器中循环播放 5 秒的 MP4 视频并让它无缝播放。我在本地和网络空间都尝试过 jwplayer 和 video.js,但都没有成功。我试过使用“结束”事件;我试过预加载/预缓冲;我试过听视频的最后一秒,然后从头开始完全绕过停止/播放事件。我仍然总是看到抖动,而且我仍然总是看到加载图标(最新的 Chrome 和 Firefox)。
作为参考,这是我最新的 video.js 代码:
<video id="loop_me" class="video-js vjs-default-skin vjs-big-play-centered"
width="640" height="480"
data-setup='{"controls": false, "autoplay": true, "loop": true, "preload": "auto"}'>
<source src="video/loop_me.mp4" type="video/mp4" />
</video>
<script type="text/javascript">
var myPlayer = videojs("loop_me");
videojs("loop_me").ready(function(){
this.on("timeupdate", function(){
var whereYouAt = myPlayer.currentTime();
if (whereYouAt > 4) {
myPlayer.currentTime(1);
}
});
});
</script>
有没有人成功做到这一点?如果是这样,您能否发布一个完整的解决方案?我通常不会要求或想要这些,但我认为这次可能有必要。
【问题讨论】:
-
如果您想在将播放头重置到开头时避免暂停,您可能必须使用 HTML5 的
MediaSource功能将视频作为连续流提供给视频元素 -以updates.html5rocks.com/2011/11/… 为例 -
d'oh .... 有时明显的工作奇迹....
loop属性:<video id="video-loop" preload="auto" loop autoplay controls muted> -
接受的答案不是无缝的jsfiddle.net/blowsie/QQTqn
-
如果您在真实代码中碰巧使用了
poster属性,请在视频开始播放后尝试将其删除。对我来说,这修复了 Chrome 中循环之间的闪烁,海报图像将显示几分之一秒。
标签: javascript html video video.js