html5のvideo要素についての覚書

いまさらvideo要素を実装してみて気づいたことメモ。
iOSだとautoplayしないとかBASIC認証かけてるとiOSでうまく動かないとかトラップがまだ多い。

 <video playsinline autoplay class="fillWidth fadeIn wow collapse in" data-wow-delay="0.5s" poster="./assets/bg-top.png" id="video"> このブラウザは動画の再生に対応しておりません。ブラウザのアップデートを推奨いたします。 </video>

動画の再生/停止

video要素、audio要素をJavaScriptから操作する

<a id="play" onclick="vidplay()" class="btn btn-primary btn-xl">Play Video</a>
<script>		
	function vidplay() {
       var video = document.getElementById("video");
       var button = document.getElementById("play");
       if (video.paused) {
          video.play();
          button.textContent = "||";
       } else {
          video.pause();
          button.textContent = ">";
       }
    }

    function restart() {
        var video = document.getElementById("video");
        video.currentTime = 0;
    }

    function skip(value) {
        var video = document.getElementById("video");
        video.currentTime += value;
    }
</script>

音声ON/OFF

【jQuery】jQueryを使ってvideoタグで挿入した動画の音声のON・OFFを制御する

<button class="btn btn-primary">
        <a href="javascript:void(0);" id="sound_button" class="sound_on">SOUND</a>
        </button>
<script>
	$("#sound_button").click(function () {
        if($(this).hasClass("sound_off")) {
            $(this).removeClass("sound_off");
            $(this).addClass("sound_on");
            $(this).text("SOUND ON");
            $("video").prop('muted', true);
        } else {
            $(this).removeClass("sound_on");
            $(this).addClass("sound_off");
            $(this).text("SOUND OFF");
            $("video").prop('muted', false);
        }
	});
	</script>

シークボタン、オリジナルの再生/停止ボタン

https://liginc.co.jp/web/js/jquery/82904

動画のランダム表示

https://teratail.com/questions/34499

上記を参考に下記のように実装

<video id="video" autoplay loop></video>

<script type="text/javascript">
var video = document.getElementById("video");
video.poster = "poster.jpg";

var videolist = new Array(
  "video1.mp4",
  "video2.mp4",
  "video3.mp4",
  "video4.mp4" );
var videonum = Math.floor(Math.random() * videolist.length);    
video.src = videolist[vidoenum] ;

video.load();
</script>