1. ホーム
  2. Web制作
  3. html5

HTML5 動画再生プラグイン video.js のご紹介

2022-02-01 09:50:56

video.jsは、非常に人気のあるhtml5ビデオプラグインです。それは携帯電話でビデオを再生するために非常に適している(例えば、WeChatのWebページ)、強力で、フラッシュへのダウングレードをサポートしています、ie8と互換性があります。 http://videojs.com/     git&demo : http://files.cnblogs.com/files/stoneniqiu/video-js-5.11.4.zip

デフォルトの例を見てください。

controlsはコントロールバー、prloadはプリロード、posterは初期表示画像、data-setはjsonによるパラメータ設定、sourceは言わずもがな、trackは字幕のことです。

 これで一段落ですが、実際には他にもニーズがあります。

キャプションを付けないでください。

デモのaltファイルに、novttのjsを適用する必要がある。こうすることで、ビデオコントロールバーに文字の選択が表示されなくなります。もちろん、ページ内のtrack要素も不要になります。

<link href="~/js/video-js-5.11.4/alt/video-js-cdn.min.css" rel="stylesheet" />
<script src="~/js/video-js-5.11.4/alt/video.novtt.min.js"></script>

幅と高さの適応。

cssで自分で設定し始めたら、どうにもこうにもうまくいかないことがわかった。Video要素は通常の要素とは異なるので、内側の要素の幅と高さの比率を設定してレスポンシブにする必要があります。video.jsでは2つの方法が用意されています。

js:フルードをtrueに設定する。

 var player = videojs('video', { fluid: true }, function () {
           console.log('Good to go!');
           this.play(); // if you don't trust autoplay for some reason  
})

しかし、これもvideo要素の開始幅と高さを設定する必要があり、そうしないと開始画像が表示されません。

css:スタイルを直接追加することができます。.vjs-fluid, .vjs-4-3, .vjs-16-9 の3種類があり、最初のものは自動計算、最後の2つは比率を指定する。また、スタイルでは、画像を表示するための開始幅と高さを設定する必要があります

 <video id="video" class="video-js vjs-default-skin vjs-fluid" poster="http://vjs.zencdn.net/v/oceans.png& quot; width="375" height="200" controls preload="none"
           data-setup='{ "html5" : { "nativeTextTracks" : false } }'>
        <source src="@Model.Url" type="video/mp4">
        <p class="vjs-no-js"> JavaScript needs to be enabled to play videos, recommended to use <a href="http://videojs.com/html5-video-support/" target=& quot;_blank"> browsers that support HTML5</a> are recommended for access. </p>
    </video>

イベントのフォーカス。

私たちは一般的に、開始、一時停止、終了の3つのイベントに焦点を当てます。

 var player = videojs('video', { }, function () {
           console.log('Good to go!');
           // this.play(); // if you don't trust autoplay for some reason
       });
       player.on('play', function () {
           console.log('start/resume play');
       });
       player.on('pause', function () {
           console.log('pause playback');
       });
       player.on('ended', function () {
           console.log('ended playback');
       });

 そして更新イベント。

player.on('timeupdate', function() {
           console.log(player.currentTime());
       });

動画が終了したかどうかは、現在時刻と合計時刻が等しいかどうかで判断できます。

player.on('timeupdate', function () {  
    // If currentTime() === duration(), then the video has finished playing
    if (player.duration() ! = 0 && player.currentTime() === player.duration()) {
            // Playback is over
        }
    });

Android端末でinendedイベントが正しくトリガーされないという前任者の指摘がありました(スタンバイ)。

MIMEタイプの設定

iisのデフォルトのMIME設定では、mp4タイプが追加されないため、ローカルでの再生には問題がないが、サーバーに届いたときに404エラーとなる。そのため、iisのMIMEを以下のように設定する必要があります。

一般的なビデオフォーマット

flv形式は、関連する拡張子:.flv、コンテンツタイプ:application/octet-streamで追加されます。
f4v形式は拡張子:.f4v、コンテンツタイプ:application/octet-stream
mp4形式は、拡張子:.mp4、コンテンツタイプ:video/mp4です。
ogv形式は拡張子: .ogv , コンテンツタイプ: video/ogg
webm形式は、拡張子:.webm、コンテンツタイプ:video/webmです。
設定後、iisを再起動すると有効になります。

スタイルのカスタマイズ

 コードペンの正式なアドレスは以下の通りです。 http://codepen.io/heff/pen/EarCt 編集して遊べます。主なものは、再生ボタン、コントロールバー、プログレスバーです。デフォルトは上のような感じです。

 そしてこれ。 http://codepen.io/zanechua/pen/GozrNe    SublimeVideo

フラッシュ設定

再生技術は、ブラウザまたはプラグインでビデオまたはオーディオファイルを再生するために使用されます。h5の場合はvideoまたはaudio要素を使用し、flashの場合はflashプレーヤーを定義することになります。flashだけでなく、SilverlightやQuicktimeなどの再生技術もサポートされています。data-setupは、要素に直接定義することができ、サポートする技術を指定します。

<video data-setup='{"techOrder": ["html5", "flash", "other supported tech"]}'

またはJavaScriptを使用する。

videojs("videoID", {
  techOrder: ["html5", "flash", "other supported tech"]
});

ここでのデフォルトのルールは、再生するために最初の技術を使用し、それがうまくいかない場合は後のオプションを使用することです。例えば、上でhtml5が先に書かれていれば、html5を使った動画を全て再生します。flashを優先させたい場合は、その前に書くだけです。

 data-setup='{ "techOrder": ["flash","html5"] }'

page 要素の中で、video.js が現在使用するフラッシュ・オブジェクトを提供していることがわかります。

自動再生します。

video 要素に autoplay 属性を追加するか、js に autoplay:true を追加してください。

 <video id="video" autoplay poster="/images/bk.png" width="375" height="200" controls preload=& quot;none" > </video>

または

      var player = videojs('video', { autoplay:true }, function () {
           console.log('Good to go!');
           // this.play(); // insurance you can also actively call play()
       });

自動再生は常に煩わしいものです。その反対は、autoplay 属性を削除するか、false に設定することです。

その他

video.jsは拡張プラグインに対応しており、使い勝手が良い。

// Define a plugin
        function examplePlugin(options) {
            this.on('play', function (e) {
                console.log('playback has started!');
            });
        }
        //register
        videojs.plugin('examplePlugin', examplePlugin);
        // use
        player.examplePlugin({ exampleOption: true });

プラグイン内部では、プレーヤーapiを直接呼び出すことができます。プレイリストが必要な場合は、プレイリストプラグインもあるので調べてみてください。 https://github.com/brightcove/videojs-playlist   と http://videojs.com/advanced/   は、次のような効果があります。

概要

以上、HTML5動画再生プラグインvideo.jsの簡単な紹介でした、お役に立てれば幸いです。今後ともスクリプトハウスをよろしくお願いいたします。