Video.jsにより動画を再生し、プルアップメニュを用いて、音声や解像度を切替えます。

Video.jsの多音声化の作成

Video.jsのコントロールバー上のアイコンにより多音声メニューを表示させて、音声の切替えを可能とします。

作成したコードは、「BrightcovePlayer」を使用しています。

  • 21-22行目の「video-js 」タグで、「data-account」などによりデータを設定し、32行目のスクリプトを用いて音声の切替えを可能とします。

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="myPlayerID" data-video-id="6033855353001" data-account="1752604059001"
                    data-player="BJAZNkRV" data-embed="default" class="video-js" controls width="640px"
                    height="360px"></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="//players.brightcove.net/1752604059001/BJAZNkRV_default/index.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;
}

main.js

console.log('start01');

videojs.getPlayer("myPlayerID").ready(function () {
    var myPlayer = this;
    myPlayer.on("loadedmetadata", function () {
        var browser_language, track_language, audioTracks;
        // +++ Get the browser language +++
        browser_language = navigator.language || navigator.userLanguage; // IE <= 10
        browser_language = browser_language.substr(0, 2);

        // +++ Get the audio tracks +++
        audioTracks = myPlayer.audioTracks();

        console.log('audioTracks audioTracks', audioTracks);

        // +++ Loop through audio tracks +++
        for (var i = 0; i < audioTracks.length; i++) {
            track_language = audioTracks[i].language.substr(0, 2);

            // +++ Set the enabled audio track language +++
            if (track_language) {
                // When the track language matches the browser language, then enable that audio track
                if (track_language === browser_language) {
                    // When one audio track is enabled, others are automatically disabled
                    audioTracks[i].enabled = true;
                }
            }
        }
    });
});

Video.jsの多音声化の実行

ブラウザからURL「http://localhost/videojs-Audio4/」にアクセスし、再生アイコンをクリックし、表示された画面のコントロールバー上の「ヘッドフォン」アイコンをクリックします。登録された多言語のプルアップメニューが表示されます。

Video.jsでの解像度切替えの作成

Video.jsのコントロールバー上のアイコンにより、解像度切替えニューを表示させて、解像度の切替えを可能とします。

作成したコードは、「Video.js Resolution Switcher 」プラグインを使用しています。

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://kmoskwiak.github.io/videojs-resolution-switcher/node_modules/video.js/dist/video-js.min.css"
        rel="stylesheet">
    <link
        href="https://kmoskwiak.github.io/videojs-resolution-switcher/node_modules/videojs-resolution-switcher/lib/videojs-resolution-switcher.css"
        rel="stylesheet">

    <title>動画再生-jsxx</title>
</head>

<body>
    <video id="video_1" class="video-js vjs-default-skin" controls data-setup='{}'>
        <source src="https://vjs.zencdn.net/v/oceans.mp4?sd" type='video/mp4' label='SD' res='480' />
        <source src="https://vjs.zencdn.net/v/oceans.mp4?hd" type='video/mp4' label='HD' res='1080' />
        <source src="https://vjs.zencdn.net/v/oceans.mp4?phone" type='video/mp4' label='phone' res='144' />
        <source src="https://vjs.zencdn.net/v/oceans.mp4?4k" type='video/mp4' label='4k' res='2160' />
    </video>
    <script src="https://kmoskwiak.github.io/videojs-resolution-switcher/node_modules/video.js/dist/video.js"></script>
    <script
        src="https://kmoskwiak.github.io/videojs-resolution-switcher/node_modules/videojs-resolution-switcher/lib/videojs-resolution-switcher.js"></script>
    <script>videojs('video_1').videoJsResolutionSwitcher()</script>
</body>

</html>

Video.jsでの解像度切替えの実行

ブラウザからURL「http://localhost/videojs-Resolution/」にアクセスし、再生アイコンをクリックし、表示された画面のコントロールバー上の「歯車」アイコンをクリックします。登録された解像度のプルアップメニューが表示されます。