HTML5でロード時に無限ループ動画を再生する


90

HTML5ページにビデオを配置して、ページの読み込み時に再生を開始し、完了したら、中断することなく最初にループバックしようと思っています。ビデオもする必要があり、NOT、それに関連するすべてのコントロールがあり、どちらかすべての「現代のブラウザと互換性がある、またはポリフィルのオプションがあります。

以前私は経由してこれを行っているだろうFlashFLVPlayback、私はの明確な舵取りを好むFlashHTML5球に。JavaScript setTimeoutを使用してスムーズなループを作成できると思いますが、ビデオ自体を埋め込むには何を使用すればよいですか?ビデオを思い通りにストリーミングできるものはありFLVPlaybackますか?

回答:


152

ループ属性は、それを行う必要があります。

<video width="320" height="240" autoplay loop>
  <source src="movie.mp4" type="video/mp4" />
  <source src="movie.ogg" type="video/ogg" />
  Your browser does not support the video tag.
</video>

loop属性に問題があった場合(これまでのように)、videoEndイベントをリッスンし、play()起動時にメソッドを呼び出します。

注1:AppleのiPad / iPhoneでの動作には、いくつかの制限があるため、わかりませんautoplay

注2:loop="true"および autoplay="autoplay"非推奨


1
確かに良いアドバイスです。私は結局javascriptvideoEndイベントをリッスンするためにを使用し、最初に戻ってループすることができます。私が言えることから、loop属性はすべてのブラウザでサポートされているわけではありません。iOSデバイスの場合、autoplayiOS 5の形や形式はまったくサポートされていないため、モバイル用の代替画像を使用しました。再度、感謝します。
stefmikhail

10
<video loop = "true">の使用は無効です w3.org/TR/html-markup/video.html-<video loop = "loop">または<video loop>のいずれかを使用-このルールは、ほぼすべてのHTML5タグに適用されます(tagnameのみ、またはXHTML5の場合はtagname = "tagname")

@vaxquis更新ありがとうございます。次回はAPIの変更を編集できます。
ロンギ2013年

5
問題ありません、メイト、いつも喜んでお手伝いします。それでも、XHTMLタイプの属性「autoplay = "autoplay"」とHTMLタイプの「ループ」を混在させることはしません。HTML5または<video .. 。autoplay = "autoplay" loop = "loop">、HTML5またはXHTML5として解析可能。スタイルを混在させると、XHTMLとしては無効ですが、HTMLに対しては不必要に冗長なマークアップが作成されます。

1
通常、autoplaySafari でのみ機能しますmutedwebkit.org/blog/7734/auto-play-policy-changes-for-macos
andreyrd

34

2018年4月の時点で、Chrome(および他のいくつかの主要なブラウザー)にも属性が必要になりmutedました。

したがって、使用する必要があります

<video width="320" height="240" autoplay loop muted>
  <source src="movie.mp4" type="video/mp4" />
</video>

13

iPhoneの場合、playsinlineも追加すると機能します。

<video width="320" height="240" autoplay loop muted playsinline>
  <source src="movie.mp4" type="video/mp4" />
</video>

:JSXのための小道具autoPlay loop muted playsInline
pomber

2

これは、次の2つの方法で実行できます。

1)loopビデオ要素で属性を使用する(最初の回答で言及):

2)そして、あなたはendedメディアイベントを使うことができます:

window.addEventListener('load', function(){
    var newVideo = document.getElementById('videoElementId');
    newVideo.addEventListener('ended', function() {
        this.currentTime = 0;
        this.play();
    }, false);

    newVideo.play();

});
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.