Video JSで動画のUIを共通化する
目次
デモ
解説
今回はVideo JSで動画のUIを共通化する方法を紹介します。
Video JSのインストール
Videojsのインストール方法は公式サイトを参照してください。
今回はnpm install を実行します。
npm install video.js
Video JSの使い方
video-js クラスを持つvideo要素を作成します。 以下をimportすることでVideo JSのスタイルが適用されます。
import "video.js/dist/video-js.css";
以下のようにvideo要素を作成し、videojs関数を呼び出すことでVideo JSを使用することができます。 めっちゃ簡単ですね。
import videojs from "video.js";
const videoEl = document.getElementById("js-video");
const video = videojs(videoEl, {
language: "ja",
notSupportedMessage: "再生出来ません。",
});
あとは自分好みにカスタマイズしてみましょう。 今回は再生ボタンを押したときにボタンを非表示にするコードです。 フォーカスに対応しております。
import videojs from "video.js";
import "video.js/dist/video-js.css";
window.addEventListener("DOMContentLoaded", function () {
const videoEl = document.getElementById("js-video");
const playButtonBox = document.querySelector(".js-play-button-box");
const playButton = document.querySelector(".js-play-button");
if (!playButtonBox || !playButton || !videoEl) return;
const video = videojs(videoEl, {
language: "ja",
notSupportedMessage: "再生出来ません。",
});
// ビデオが再生されたときにボタンを非表示にする
video.on("play", function () {
playButtonBox.style.visibility = "hidden";
playButtonBox.style.opacity = "0";
});
// ビデオが一時停止または終了したときにボタンを表示する
video.on("pause", function () {
playButtonBox.style.visibility = "visible";
playButtonBox.style.opacity = "1";
});
video.on("ended", function () {
playButtonBox.style.visibility = "visible";
playButtonBox.style.opacity = "1";
});
playButton.addEventListener("click", () => {
video.play();
const vjsPlayControl = document.querySelector(".vjs-play-control");
if (!vjsPlayControl) return;
vjsPlayControl.focus();
});
});