Video.jsにより動画を再生し、イベント処理を行い、プラグインを使用します。Video.jsについては「Video.js Guides」を参照します。
Video.jsの外観
Video.jsの外観の名称を次に示します。
コンポーネント・セレクタの対応を次に示します。
| コンポーネント | セレクタ |
|---|---|
| BigPlayButton | .video-js.vjs-mouse .vjs-big-play-button |
| コントロールバー | .video-js .vjs-control-bar ( コントロールバーのアイコンによって継承されますが、プログレスコントロールではありません) |
| プレイトグル | .video-js .vjs-play-control |
| ミュートトグル | .vjs-volume-panel.vjs-control.vjs-volume-panel-horizontal |
| VolumeBar | .vjs-volume-bar.vjs-slider-bar.vjs-slider.vjs-slider-horizontal |
| VolumeLevel | .video-js .vjs-volume-level |
| CurrentTime Display | .video-js .vjs-current-time |
| timedivider | .video-js .vjs-time-divider |
| durationDisplay | .video-js .vjs-duration |
| SeekBar | .video-js .vjs-progress-control.vjs-control |
| loadProgressBar | .video-js .vjs-load-progress |
| PlayProgressBar | .video-js .vjs-play-progress.vjs-slider-bar |
| AudioTrack | .video-js .vjs-control-bar .vjs-audio-button |
| ChaptersButton | .video-js .vjs-chapters-button.vjs-menu-button |
| CaptionsButton | .video-js .vjs-captions-button.vjs-menu-button |
| fullScreenT | .video-js .vjs-fullscreen-control.vjs-control |
| dockText | .vjs-dock-text ( dockTitle と dockDescription の両方に継承) |
| dockTitle | .vjs-dock-title |
| dockDescription | .vjs-dock-description |
Video.jsによる動画再生アプリの作成
Video.jsにより動画再生アプリを作成し、イベント処理を付与します。
- 21行目の「video-js」タグによりVideoJSを設定します。
index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<link href="https://vjs.zencdn.net/8.3.0/video-js.css" rel="stylesheet" />
<link href="style.css" rel="stylesheet">
<title>動画再生-js</title>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-6">
<video-js id="video1" data-setup='{}'>
<source src="./video/-152740.mp4">
</video-js>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
crossorigin="anonymous"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://vjs.zencdn.net/8.3.0/video.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>
]
再生開始のアイコンをオレンジ色にします。
style.css
.video-js .vjs-big-play-button {
background: orange;
}
- 5-22行目でVideoJSを初期化します。オプションの設定方法については「Video.js Setup」
- 25-27行目でイベントを登録します。イベントの処理については「Event Target」、イベントの種類については、「Video.js API」の左側メニュー「Events」に示します。
、オプションの種類については「Video.js Options Reference」に示します。
main.js
console.log('start06');
let player = videojs('video1', {
//コントローラ表示、アクセスしたら自動再生、事前ロードする(一部ブラウザではできない)
controls: true,
preload: 'auto',
fill: false,
responsive: true,
//再生速度の設定
playbackRates: [0.25, 0.5, 1, 1.5, 2, 4,],
//ローディングの表示
LoadingSpinner: true,
//音量は縦に表示
controlBar: {
volumePanel: { inline: false },
}
});
//生成したvideo.jsのオブジェクトに対して、イベントリスナの設定ができる。トリガーはvideoタグのものと同様
player.on("loadstart", function () { console.log("start"); });
player.on("volumechange", function () { console.log("音量が変わった"); });
player.on("ended", function () { console.log("end"); });
Video.jsによる動画再生アプリの実行
ブラウザからURL「http://localhost/videojs-base/」にアクセスすると次の立ち上げ画面が表示されます。再生開始のアイコンはオレンジ色で表示されます。開始時のイベントがコンソールに表示されます。
コントロールパネルが表示され、再生アイコンをクリックすると再生が開始され、終了時のイベントがコンソールに表示されます。ボリュームを変更するとイベントがコンソールに表示されます。
Video.jsのプラグインの作成
Video.jsのプラグインを作成します。なおプラグインの作成方法については、「Video.js Plugins」に示します。
「index.html」「style.css」は上記と同じファイルになります。プラグインは、Video.jsが用意しているベースのプラグインを継承して作成します。
- 42行目で作成したクラス「ExamplePlugin」をインスタンス化「examplePlugin」します。
main.js
console.log('start04');
// Video.jsの用意するClassを読み込む
const kPlugin = videojs.getPlugin('plugin');
// 継承する形でClassを定義
class ExamplePlugin extends kPlugin {
constructor(player, options) {
super(player, options);
if (options.customClass) {
player.addClass(options.customClass);
}
player.on('playing', function () {
console.log('プラグインが呼ばれました!');
});
}
}
const video1 = videojs('video1', {
//コントローラ表示、アクセスしたら自動再生、事前ロードする(一部ブラウザではできない)
controls: true,
preload: 'auto',
fill: false,
responsive: true,
//再生速度の設定
playbackRates: [0.25, 0.5, 1, 1.5, 2, 4,],
//ローディングの表示
LoadingSpinner: true,
//音量は縦に表示
controlBar: {
volumePanel: { inline: false },
}
});
videojs.registerPlugin('examplePlugin', ExamplePlugin);
// プラグインを呼び出す
video1.examplePlugin({ 'customClass': 'custom-class' });
Video.jsのプラグインの実行
ブラウザからURL「http://localhost/videojs-Plugin/」にアクセスし、再生アイコンをクリックするとコンソールにプラグインが実行された「プラグインが呼ばれました!」が表示されます。




