Video.jsにより動画を再生し、ボタンを作成し、動画再生でスキップします。ボタンなどの処理方法については、「Components」に示します。
Video.jsのボタンの作成
Video.jsのコントロールバー上にテキストによるボタンを作成します。
「index.html」「style.css」は「Video.jsによる動画再生-イベント・プラグイン」と同じファイルになります。
videojsクラスから生成した動画プレイヤーのオブジェクトにgetChild(‘ControlBar’)というメソッドで、コントローラに様々なカスタマイズを施すことができます。getChildメソッドについては、「Adding a Component」に示します。
main.js
console.log('start02');
var player = videojs('video1', {
//コントローラ表示、アクセスしたら自動再生、事前ロードする(一部ブラウザではできない)
controls: true,
preload: 'auto',
fill: false,
responsive: true,
//ローディングの表示
LoadingSpinner: true,
//音量は縦に表示
controlBar: {
volumePanel: { inline: false },
}
});
const myButton = player.getChild('ControlBar').addChild('button', {
controlText: 'My button',
className: 'vjs-visible-text',
clickHandler: function (event) {
videojs.log('Clickedxxx');
}
});
Video.jsのボタンの実行
ブラウザからURL「http://localhost/videojs-button/」にアクセスし、再生アイコンをクリックし、表示された画面のコントロールバー上の「My button」をクリックします。コンソールに「VIDEOJS: Clickedxxx」と表示されます。
Video.jsのスキップの作成
Video.jsのコントロールバーを日本語化し、スキップアイコンを作成して動画をスキップさせます。
「index.html」「style.css」は「Video.jsによる動画再生-イベント・プラグイン」と同じファイルになります。
main.js
console.log('start01');
const player = videojs('video1', {
autoplay: false, // 自動再生を無効
fluid: false, // 動画コンテンツを親要素いっぱいに広げる
loop: false, // 繰り返し再生無効
controls: true, // コントローラ表示
preload: 'auto', // videoタグがロードされた瞬間に動画をダウンロード
languages: {
ja: {
'Play': '再生',
'Pause': '停止',
'Play Video': '再生',
'Mute': '消音',
'Playback Rate': '再生速度',
'Picture-in-Picture': 'ピクチャインピクチャ',
'Fullscreen': '全画面表示',
'Non-Fullscreen': '通常表示'
}
}, // 日本語の言語対応
language: 'ja' // 言語を日本語に設定
});
// コントローラに10秒戻しボタンと10秒送りボタンを追加
const rewindButton = player.getChild('ControlBar').addChild('button');
const forwardButton = player.getChild('ControlBar').addChild('button');
rewindButton.controlText('5秒戻し');
forwardButton.controlText('5秒送り');
// アイコンを設定
player.getChild('ControlBar')
.el()
.insertBefore(
rewindButton.el(),
player.getChild('ControlBar').getChild('pictureInPictureToggle').el()
)
.innerHTML = `<img src='img/rewind.jpg' width=20 />`;
player.getChild('ControlBar')
.el()
.insertBefore(
forwardButton.el(),
player.getChild('ControlBar').getChild('pictureInPictureToggle').el()
)
.innerHTML = `<img src='img/forward.jpg' width=20 />`;
// スキップ処理を追加
rewindButton.el().addEventListener('click', () => {
player.currentTime(player.currentTime() - 5);
});
forwardButton.el().addEventListener('click', () => {
player.currentTime(player.currentTime() + 5);
});
Video.jsのスキップの実行
ブラウザからURL「http://localhost/videojs-skip/」にアクセスし、再生アイコンをクリックし、表示された画面のコントロールバー上のスキップアイコンをクリックします。スキップアイコンに従って5秒前後にスキップします。

