あなたの問題は「コード関連」ではないと思います。それは実際のビデオ自体ともっと関係があります。動画をシームレスにループできるように編集すると、さらに効果的です。
これを行う方法についてのガイダンスが表示されますので、こちらをご覧ください。
これがお役に立てば幸いです。
編集: ビデオをイントロ部分とループ部分の 2 つのセクションに分割してみてください。それぞれの <video>
要素を作成し、同じ場所に配置して、2 番目のビデオを非表示にします。イントロに「終了」イベントを設定して、表示を切り替えて 2 番目のビデオを開始します。次に、2 番目のビデオ要素にループ属性を設定できます。
preload
少なくともループするビデオに属性がある限り、2 つのビデオをシームレスに一緒に再生するのに問題はないはずです。
それでもうまくいかない場合は、同じループ動画で 2 つの動画要素を作成してみてください。1 つが再生されている間、もう 1 つを非表示にして currentTime をゼロに戻すことができるため、誰も見ていないときにシークの遅延が発生します。
上記のいずれもうまくいかない場合は、javascript を使用して別の方法を試すことができます。以下のコードはテストしていないことに注意してください。2 秒目からビデオを開始し、ビデオが 4 秒目に達すると (2 秒目から) 再び開始します。
function playVideo() {
var starttime = 2; // start at 2 seconds
var endtime = 4; // stop at 4 seconds
var video = document.getElementById('player1');
//handler should be bound first
video.addEventListener("timeupdate", function() {
if (this.currentTime >= endtime) {
this.play();
}
}, false);
//suppose that video src has been already set properly
video.load();
video.play(); //must call this otherwise can't seek on some browsers, e.g. Firefox 4
try {
video.currentTime = starttime;
} catch (ex) {
//handle exceptions here
}
}