サポートに連絡する| システムステータス
ページコンテンツ

    エラーメッセージの表示

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

    概要

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

    error message plugin

    上の画像に示されているエラーメッセージは、無効なものでプレーヤーを更新することによって作成されましたsrcの値sourcesプロパティ。

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

    はじめに

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

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

    <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_ERRLYPTED
      • 見出し :視聴しようとしている動画は暗号化されており、復号化する方法がわかりません
      • メッセージ :メディアは暗号化されており、それを復号化する鍵がありません。

    エラーに関連付けられたエラーコードがない場合は、一般的なメッセージが表示されます。

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

    テキストのオーバーライド

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

    • headline :これは、上部にあるメッセージテキストです。
    • type :これはエラーコード:テキストです。
    • message :これは技術的な詳細:テキスト。
    error message plugin

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

    • plugins :このプロパティには、プロパティと値の配列が含まれます。このプラグインでは、nameerrorsプロパティにの値を指定するだけで済みます。
    • options :このプロパティは、プラグインにデータを渡すために使用されます。
    • errors :このプロパティでは、更新するエラーコードを定義します。ここでは、のメッセージテキストを上書きしていますheadlinetype、およびmessage

    ページコードでの使用

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

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

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

    プレーヤーのすべてのインスタンスを更新する場合は、カスタムプラグインを作成し、Video Cloud Studio の Players モジュールでプレーヤーに追加します。プラグインの詳細については、「Player プラグインの設定」ドキュメントを参照してください。

    標準メッセージテキストをオーバーライドするプラグインを作成するには、次の手順を実行します。

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

      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. の中にプレイヤーモジュール、選択プラグイン左のナビゲーションから。

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

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

      • プラグイン名 -プラグイン名
      • JavaScriptのURL -最初のステップからのプレーヤープラグインの場所
      Plugin details
      プラグインの詳細
    5. [ 保存] ボタンを選択します。
    6. プレイヤーを公開します。

    Brightcoveが定義したカスタムエラー

    カスタムエラーも定義できます。ブライトコーブでは、このセクションで説明する多数のカスタムエラーを定義し、カスタムエラーを作成することもできます。詳細については、次のセクションを参照してください。

    • ブライトコーブでは、カスタムエラーコードの値は文字列にすることをお勧めします。提供されたエラーのうちの 2 つは過去の理由から負の数を使用しますが、英数字/記述文字列は衝突の問題の原因となる可能性が低くなります。
    • カスタムエラーメッセージには、任意の名前を付けることができます。Brightcoveは、タイプがで始まることをお勧めしますPLAYER_ERR対標準化MEDIA_ERR混乱を避けるために。
    • このセクションの後半で詳述するように、カスタムエラーは許可しないかどうかを指定できます。

    5 つのカスタムエラーメッセージがリファレンスとして追加されました。

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

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

    独自のカスタムエラーを定義する場合は、コードを使用しないことをお勧めします。(上記のセクションでは、ブライトコーブが定義している新しいカスタムエラーでこれが現在実行されていることがわかります)。PLAYER_ERR_一貫性のためにカスタムエラーにプレフィックスを使用することも検討する必要がありますが、もちろん好きな名前を付けることもできます。

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

    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、カスタムエラーメッセージを表示するタイミングを決定するために、独自のコードを追加します。

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

    user custom error message

    カスタムエラーを却下できないようにする

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

    dismissible error message

    ビデオビューアがエラーメッセージを閉じることを許可したくない場合は、それを行うことができます。error()メソッドを呼び出すと、dismissプロパティをfalse

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

    これを行うと、エラーメッセージが次のように表示され、エラーを閉じる方法はありません。

    not dismissible error message

    getAll()メソッド

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

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

    詳細についていくつかのエラーが展開されたコンソール表示の例は次のとおりです。

    getAll console display

    ディスパッチエラー

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

    <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-エラー

    ready()スクリプトブロックの通常のセクションでエラーを処理すると、問題が発生する可能性があります。たとえば、プレーヤーの準備ができている前に BC-catalog-error イベントが送出され、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 は、プレーヤーに報告されたときと同じ数量で分析にエラーを送信します。例えば、プレーヤーにメディアがなく、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 秒以上)後にPLAYER_ERR_TIMEOUT エラーが表示されます。
    • Windows 10 の Edge(スタジオ内とパブリックURLの両方)でビデオを読み込むと、 MEDIA_ERR_SRC_NOT_SUPPORTEDエラーが表示され、ビデオを再生できません。
    • Android デバイスと iPhone では、エラーメッセージのタップイベントは、親ビデオ要素までバブルされません。これは、エラーメッセージが表示されたら閉じることができないことを意味します。ユーザーがフルスクリーンモードの場合、この状態を離れる方法がないため、この動作は問題になる可能性があります。

      この問題は現在取り組んでいるため、今後のプレーヤーリリースで修正する必要があります。今のところ、あなたはこのような回避策を試すことができます:

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

    更新履歴

    更新履歴はこちらをご覧ください


    ページの最終更新日30 Sep 2021