videoタグとは、HTML5から新たに追加された要素で動画を再生する時に使用するタグです。
このvideoタグについては色々と試行錯誤をしましたので、備忘録としてこの記事を書きます。
今回の記事では下記のデバイス・ブラウザで検証しております。
- win:Chrome 62.0.3202.75
- win:edge 41.16299.15.0
- win:IE11
- mac:Safari 10.1.2
- iOS 10.3.2:Safari
- Android 4.4.2:Chrome 61、標準ブラウザ
※2017年11月時点 対応ブラウザ状況確認 → http://caniuse.com/#search=video
videoタグの書き方
<video src="movie.mp4"></video>
下記の場合mp4が最初に再生されますが、mp4に対応していないブラウザではwebmが再生されます。
<video> <source src="movie.mp4" /> <source src="movie.webm" /> </video>
※2017年11月の時点で主要ブラウザはほぼmp4に対応しているので、mp4だけでも問題ないと思います。
Videoタグの属性
Demoページを用意しておりますので、こちら(別窓)をご確認ください。
※デモページを携帯電話回線で閲覧する場合、Wi-Fi環境での閲覧を推奨します。
<video src="movie.mp4" controls></video>
<video src="movie.mp4" muted></video>
<video src="movie.mp4" autoplay></video>
<video src="movie.mp4" loop></video>
- none → 動画が再生されるまで何もダウンロードしない
- metadata → メタデータ(動画のサイズ、トラックリスト、再生時間 等)のみダウンロードする
- auto → 動画データ全体をダウンロードする
<video src="movie.mp4" preload="auto"></video>
<video src="movie.mp4" poster="image.png"></video>
<video src="movie.mp4" playsinline muted></video>
再生範囲を指定する
<video src="movie.mp4#t=[starttime][,endtime]"></video>
- 「movie.mp4#t=5,10」5秒時点から10秒時点の範囲を再生
- 「movie.mp4#t=,8」始点から8秒時点の範囲を再生
- 「movie.mp4#t=,01:30:00」始点から1時間30分の範囲を再生
- 「movie.mp4#t=5」5秒時点から最後まで再生
JavaScriptで操作する
videoタグの属性で指定した内容を、JavaScriptで操作することが出来ます。
また、EdgeとIEは「#t=」での再生範囲の指定が出来ませんが、代替案としてJavaScriptのcurrentTimeで操作することが出来ます。
<video src="movie.mp4" id="video"></video>
// idが「video」の要素を取得 var video = document.getElementById('video'); // 自動再生する video.autoplay = true; // 繰り返し再生する video.loop = true; // 無音で再生する video.muted = true; // 再生位置を指定する video.currentTime = 5;
[参考サイト]JavaScriptでvideoを操作する
各ブラウザでの再生状況
再生 | 自動再生 | ループ再生 | |
---|---|---|---|
Chrome | ◯ | ◯ | ◯ |
Edge | ◯ | ◯ | ◯ |
IE11 | ◯ | ◯ | ◯ |
Safari | ◯ | ◯ | ◯ |
再生 | インライン再生 | 自動再生 | ループ再生 | |
---|---|---|---|---|
iPhone Safari iOS9以下 |
◯ | ✕ | ✕ | ✕ |
iPhone Safari iOS10以上 |
◯ | 無音なら◯ | 無音なら◯ | ◯ |
Android Chrome 52以下 |
◯ | ✕ | ✕ | ✕ |
Android Chrome 53以上 |
◯ | 無音なら◯ | 無音なら◯ | ◯ |
Android 標準ブラウザ |
◯ | ◯ | ✕ | ✕ |
スマホでの再生について
なので、どうしてもスマホで動画を使用したサイトを制作したい場合は、出来るだけ動画の容量を下げましょう。1MB以下を目標に...!
Androidの落とし穴
Basic認証下でも再生させるには、.htaccessにて解決できるようです。
最後に
素敵な動画サイトをよく見かけますが、実際に実装する際は難しい面も多々あって大変でした。
まとめた内容で間違いや現在はこうなってますよ!という部分がございましたらご指摘いただきたいです。
これは続けてやっていかないと忘れてしまいそうなので、動画を使用したサイト制作のご要望お待ちしております!