サポート サポート問い合わせ先 | システムステータス システムステータス
ページ内容

    エラーメッセージプラグインを表示する

    このトピックでは、デフォルトのエラーメッセージの動作を変更し、カスタムエラーメッセージを作成し、エラーをディスパッチする方法を学習します。

    概要

    エラーメッセージプラグインにより、 player エラーが発生したときにユーザーフレンドリーなメッセージを表示します。 デフォルトのスタイルシートでは、ビデオ要素自体の上に半透明のオーバーレイとしてメッセージが表示されます。 既存のメッセージテキストを変更し、独自のスタイルを追加できます。 必要なときにトリガーされるカスタムメッセージを作成することもできます。

    エラーメッセージのプラグイン

    上の画像に示されているエラーメッセージは、 player 無効な srcsources プロパティ。

    エラーメッセージプラグインはデフォルトのプラグインで、自動的に Brightcove Player。 ただし、ロードしないことを選択できます。 このプラグインがないと、限られた一連のエラーメッセージが表示され、一部のエラーはブラウザコンソールにのみ表示されます。 作成時にデフォルトのプラグインをロードしない方法の詳細については、 player、を参照してください。 Player プラグインの概要 の資料をご参照ください。

    STARTED GET

    のすべてのインスタンスを更新するには playerを使用して、カスタムプラグインを実装できます。 Brightcove Playerからのモジュール Studio。 このアプローチは、以下のセクションで使用され、エラーメッセージプラグインを更新します。 player。 コードのページからこのプラグインを更新することを選択した場合、影響を受けるのはそのインスタンスのみです。 player.

    プラグインをページコードから更新するには、まず Brightcove Player。 この例では、JavaScriptで次の名前の変数を作成しています myPlayer への参照を割り当てる player.

    <video-js id="myPlayerID"
      data-video-id="4443311217001"
      data-account="1507807800001"
      data-player="default"
      data-embed="default"
      class="video-js" controls></video-js>
    <script src="https://players.brightcove.net/1507807800001/default_default/index.min.js"></script>
    <script type="text/javascript">
      videojs.getPlayer('myPlayerID').ready(function(){
        var myPlayer = this;

    標準エラー

    このプラグインには、ランタイムエラーコード値に基づいた標準のHTML5ビデオエラーのデフォルトエラーメッセージがあります。

    • エラーコード:1
      • 種類:MEDIA_ERR_ABORTED
      • 見出し:ビデオのダウンロードがキャンセルされました
      • お問合わせ内容:メディアの再生を中止しました
    • エラーコード:2
      • 種類:MEDIA_ERR_NETWORK
      • 見出し:ビデオの接続が失われました。インターネットに接続していることを確認してください
      • お問合わせ内容:ネットワークエラーにより、メディアダウンロードが途中で失敗しました。 現在、MP4および/またはプログレッシブダウンロードビデオ形式に最も役立ちます。 を参照してください 既知の問題点 詳細については、このドキュメントのセクションを参照してください。
    • エラーコード:3
      • 種類:MEDIA_ERR_DECODE
      • 見出し:ビデオが悪い、またはブラウザで再生できない形式です
      • お問合わせ内容:メディアの再生が破損の問題またはブラウザでサポートされていない機能で使用されたメディアのために中止されました。
    • エラーコード:4
      • 種類:MEDIA_ERR_SRC_NOT_SUPPORTED
      • 見出し:このビデオは利用できないか、このブラウザではサポートされていません
      • お問合わせ内容:サーバーまたはネットワークが故障したか、フォーマットがサポートされていないために、メディアをロードできませんでした。
    • エラーコード:5
      • 種類:MEDIA_ERR_ENCRYPTED
      • 見出し:視聴しようとしている動画が暗号化されており、復号化する方法がわかりません
      • お問合わせ内容:メディアは暗号化されており、復号化する鍵はありません。

    エラーに関連するエラーコードがない場合は、汎用メッセージが表示されます。

    • エラーコード:不明
      • メッセージ:MEDIA_ERR_UNKNOWN
      • 説明:予期しない問題が発生しました。すぐに確認してもう一度お試しください

    テキストの上書き

    変更可能なエラーメッセージには、次の3つの部分があります。

    • headline これは上部のメッセージテキストです。
    • type : これは エラーコード: テキスト。
    • message : これは 技術的な詳細: テキスト。
    エラーメッセージのプラグイン

    次の例は、標準エラーのメッセージテキストをエラーコード値でオーバーライドする方法を示しています。 4。 プロパティは次のように定義されます。

    • plugins:このプロパティには、プロパティと値の配列が含まれています。 このプラグインでは、 name の値を持つプロパティ errors.
    • options:このプロパティは、データをプラグインに渡すために使用されます。
    • errors:このプロパティは、更新するエラーコードを定義します。 ここでは、 headline, typeおよび message.

    ページコードでの使用

    コードにerrorsスクリプトを含めると、次のようにメッセージテキストを上書きできます。

    myPlayer.errors({
      "errors": {
        "4": {
          "headline": "This is a custom error message",
          "type": "custom type",
          "message": "these are details"
        }
      }
    });

    カスタムプラグインの使用

    あなたのすべてのインスタンスを更新したい場合 player、カスタムプラグインを作成して、 player in Video Cloud Studio's Playersモジュール。 プラグインの詳細については、 設定 Player プラグイン の資料をご参照ください。

    標準メッセージテキストを上書きするプラグインを作成するには、次の手順に従います。

    1. インターネットでアクセス可能な場所に保存されたJavaScriptファイルを作成します。 Brightcove Player プラグインコード。 これはこれに似ているはずですが、独自の値を使用します。

      videojs.registerPlugin('errorText', function() {
        var myPlayer = this;
      
        myPlayer.errors({
          "errors": {
            "4": {
              "headline": "The Live Stream will begin soon",
              "type": "CUSTOM_TYPE",
              "message": "Please come back, once the live event has begun!"
            }
          }
        });
      });
    2. の中に Players の作成と管理 モジュール、選択 プラグイン 左側のナビゲーションから。

    3. 拡大する プラグインを追加する ボタンをクリックし、 カスタムプラグイン.

      カスタムプラグイン
      カスタムプラグイン
    4. プラグインの詳細ページで、次の値を追加します。

      • プラグイン名 -プラグイン名
      • JavaScriptのURL -あなたの場所 player 最初のステップからのプラグイン
      プラグインの詳細
      プラグインの詳細
    5. 現在地に最も近い 保存 ボタン。
    6. あなたの公開 player.

    Brightcove 定義されたカスタムエラー

    カスタムエラーを定義することもできます。 Brightcove このセクションで説明する多数のカスタムエラーが定義されており、次のセクションで詳しく説明するカスタムエラーを作成することもできます。

    • Brightcove カスタムエラーコード値を文字列にすることをお勧めします。 提供されたエラーのうち2つは歴史的な理由から負の数を使用しますが、英数字/説明文字列は衝突の問題を起こしにくいでしょう。
    • カスタムエラーメッセージには任意の名前を付けることができます。 Brightcove そのタイプがで始まることをお勧めします PLAYER_ERR 標準化されたものに対して MEDIA_ERR 混乱を避けるために。
    • 詳細に このセクションの後半カスタムエラーを却下するかどうかを決めることができます。

    5つのカスタムエラーメッセージが参照として追加されました:

    • エラーコード:-1
      • 本文: PLAYER_ERR_NO_SRC
      • 説明:ビデオが読み込まれていません
    • エラーコード:-2
      • 本文: PLAYER_ERR_TIMEOUT
      • 説明:ビデオをダウンロードできませんでした
    • エラーコード: 設定されていません
      • 本文: PLAYER_ERR_DOMAIN_RESTRICTED
      • 説明:この動画は現在のドメインで再生できません
    • エラーコード: 設定されていません
      • 本文: PLAYER_ERR_IP_RESTRICTED
      • 説明:この動画は現在のIPアドレスで制限されています
    • エラーコード: 設定されていません
      • 本文: PLAYER_ERR_GEO_RESTRICTED
      • 説明:この動画は現在の地域での再生が制限されています

    ユーザー定義のカスタムエラー

    独自のカスタムエラーを定義するとき Brightcove あなたが使用しないことをお勧めします。 コード。 (上記のセクションでは、これは Brightcove 彼らが定義している新しいカスタムエラーでやっています。) PLAYER_ERR_ あなたのカスタムエラーのプレフィックスを一貫性のために書いておきますが、もちろん名前を付けることもできます。

    コードにerrorsスクリプトを含める場合は、次のようにカスタムメッセージを追加できます。

    videojs.getPlayer('myPlayerID').ready(function() {
      var myPlayer = this;
      //custom error
      myPlayer.errors({
        "errors": {
          "PLAYER_ERR_AGE_GATE": {
            "headline": "You must be at least 18 years of age.",
            "message": "Content may be considered inappropriate for some users."
        }
      }
    });

    カスタムエラーの表示

    カスタムエラーを定義するときは、 Brightcove Player あなたがそれを表示したいときを知る。 これを行うには、独自のコードを作成して、メッセージを表示するタイミングを決定します。 次に、 error() 次のようにメッセージを表示します。

    //display custom message
    var age_appropriate = false;
    myPlayer.on("loadstart", function () {
      if(!age_appropriate) {
        myPlayer.error({code:'PLAYER_ERR_AGE_GATE'});
      }
    });

    ここで age_appropriate 変数がに設定されています false独自のコードを追加して、カスタムエラーメッセージをいつ表示するかを決定します。

    エラーは次のようにユーザーに表示されます。

    ユーザーカスタムエラーメッセージ

    カスタムエラーを非表示にできないようにする

    デフォルトでは、カスタムエラーメッセージはビデオビューアによって拒否されます。 次のスクリーンショットが示すように、 OK ボタンをクリックしてウィンドウを閉じます。 X 右上隅にあります。

    破棄可能なエラーメッセージ

    ビデオビュワーがエラーメッセージを却下することを許可しない場合は、それを行うことができます。 あなたが error() メソッドでは、 dismiss プロパティへ false.

    myPlayer.error({code:'age-gate-error', dismiss: false});

    これを行うと、次のようなエラーメッセージが表示され、エラーを閉じることはできません。

    破棄不可能なエラーメッセージ

    getAll()メソッド

    あなたが使用することができます getAll() 特定の方法で登録されたすべてのエラーを確認する方法 player。 あなたは呼び出すことができます getAll() メソッドの後にいつでも エラー プラグインが初期化されました。たとえば、 player.errors() が呼び出されました。 このメソッドを呼び出す例は次のとおりです。

    console.log('myPlayer.errors.getAll()',myPlayer.errors.getAll());

    コンソール表示の例ですが、いくつかのエラーが詳細に展開されています:

    getAllコンソールの表示

    ディスパッチエラー

    開発時には、構成の変更が成功したかどうかをテストするためにエラーをディスパッチすることができます。 次のコードスニペットに示すようなコードを使用してこれを行うことができます。 この場合、コードにボタンが追加されるので、選択した時刻にエラーをディスパッチできます。

    <video-js id="myPlayerID"
      data-video-id="4443311217001"
      data-account="1507807800001"
      data-player="default"
      data-embed="default"
      class="video-js" controls></video-js>
    <script src="https://players.brightcove.net/1507807800001/default_default/index.min.js"></script>
    <p><button onclick="changeVideo()">change video</button></p>
    <script type="text/javascript">
      var changeVideo;
      videojs.getPlayer('myPlayerID').ready(function() {
        var myPlayer = this;
        changeVideo = function(){
          myPlayer.error({code:'2'});
        }
      });
    </script>

    エラーのローカライズ

    エラープラグインは複数の言語をサポートしています。 言語サポートを追加するには、プラグインがロードされた後、使用する特定の言語ファイルをロードします。

    <script src="lang/es.js"></script>

    それでは、 プログラムによるローカライズ Brightcove Player エラーメッセージをローカライズするためのドキュメント。

    bc-catalog-error

    正常時のエラー処理 ready() スクリプトブロックのセクションは問題を引き起こす可能性があります。 たとえば、bc-catalog-errorイベントが、 player 準備ができています。エラーをリッスンすると ready() エラーを処理することはできません。 この問題は、ジオフィルタリング、ビデオが非アクティブ、ビデオがスケジューリング範囲外、または別のアカウントで使用されている場合に発生する可能性があります。 コードに問題はないが、ブラウザに依存する可能性があるので、注意してください。

    たとえば、ビデオが非アクティブのときにメッセージを表示するプラグインコードを次に示します。

    videojs.registerPlugin('inactiveErrorCheck', function() {
      var myPlayer = this;
      myPlayer.one('bc-catalog-error', function(){
        var specificError;
        myPlayer.errors({
          'errors': {
              'inactive-video-error': {
              'headline': 'The video you are trying to watch is inactive.',
              'dismiss': false
            }
          }
        });
        if (typeof(myPlayer.catalog.error) !== 'undefined') {
          specificError = myPlayer.catalog.error.data[0];
          if (specificError !== 'undefined' & specificError.error_code == "VIDEO_NOT_PLAYABLE") {
            myPlayer.error({code:'inactive-video-error'});
          };
        };
      });
    });

    過大エラー率

    不合理な数の報告されたエラーのように見える場合は、同じセッションに対して重複したエラーイベントが発生し、この誇張されたエラーレートが発生する可能性があることを理解することが重要です。 Brightcove Player エラーが正確な時間にアナリティクスに送信されます。 player。 たとえば、中にメディアがない場合 player、そしてコードはどういうわけか呼び出し play() 1000回連続して、千 PLAYER_ERR_NO_SRC エラーはアナリティクスに報告されます。

    何回もエラーが発生して分析が不正になる場合は、以下のロジックを使用して実際の問題をよりよく理解することを検討する必要があります。

    number_of_sessions_with_errors / total_number_of_sessions
    ではなく
    count of errors/number of views

    既知の問題点

    • HLSソースを再生するとき、ネットワーク接続が失われた後の動作は、おそらくあなたが期待するものではありません。 詳細は次のとおりです。
      • バージョン6.xの Brightcove Player HLSセグメントは無限に要求され、 MEDIA_ERR_NETWORK これまでに登場する。
      • バージョン5.xの Brightcove Player 一定期間後(30 +秒)、a PLAYER_ERR_TIMEOUT エラーが表示されます。
    • Windows 10のEdgeにビデオをロードするとき(両方の Studio パブリックURL)では、 MEDIA_ERR_SRC_NOT_SUPPORTED エラーが表示され、ビデオは再生できません。
    • Android搭載端末やiPhoneでは、エラーメッセージのタップイベントは親ビデオ要素までバブルアップされません。 つまり、表示されるとエラーメッセージを閉じることはできません。 ユーザーがフルスクリーンモードになっている場合、この状態を離れる方法がないため、この現象は問題になる可能性があります。

      この問題は現在取り組んでおり、今後修正される予定です player リリース。 今のところ、次のような回避策を試すことができます。

      player.on("touchstart", function(e) {
        if (player.error_) {
          player.error(null);
          e.preventDefault();
        }
      })

    変更履歴

    見ます 変更履歴はこちら.


    ページの最終更新日:28年2020月XNUMX日