Domain Restrictions Messaging

In diesem Thema erfahren Sie, wie Sie entsprechende Fehlermeldungen anzeigen, wenn ein Video aufgrund von Domäneneinschränkungen nicht abgespielt werden darf. Standardmäßig informiert Brightcove Player den Benutzer nicht darüber, dass ein Video domänenbeschränkt ist.

Überblick

Es ist möglich einzuschränken, wo ein Video über Domain-Einschränkungen angezeigt werden kann. Das Konfigurieren von Einschränkungen für Player-Inhalte Das Dokument zeigt Ihnen, wie Sie mit Video Cloud Domäneneinschränkungen anwenden. In dem Dokument, das Sie gerade lesen, erfahren Sie, wie Sie Code implementieren, um Benutzer darüber zu informieren, dass der Player Domänenbeschränkungen verwendet.

Standardmäßig informiert Brightcove Player den Benutzer nicht darüber, dass sich ein Video, das er anzeigen möchte, in einem Player mit Domänenbeschränkung befindet. Der Player zeigt einfach einen schwarzen Bildschirm an. Wenn Sie die Konsole anzeigen, wird Folgendes angezeigt.

Fehler bei der Domäneneinschränkungskonsole

Dies ist nicht besonders hilfreich, aber wenn Sie die überprüfen Netzwerk Tab und klicken Sie auf a Name Das entspricht Ihrer Video-ID. Überprüfen Sie dann die Vorschau Auf der Registerkarte sehen Sie einen aufschlussreicheren Fehler.

Registerkarte Netzwerknetzwerk der Domänennachrichtenkonsole

In diesem Dokument wird eine Strategie implementiert, mit der der Benutzer wissen soll, dass das Video, das er ansehen möchte, domänenbeschränkt ist.

Fehlerobjekt des Spielerkatalogs

Der Schlüssel zum Erstellen einer benutzerfreundlichen Nachricht ist der error Objekt in Brightcove Player enthalten catalog. Ein Beispiel für einen Fehler bei der Domäneneinschränkung ist unten in einem Screenshot von der Browserkonsole dargestellt. Beachten Sie, dass das Objekt a enthält data Eigenschaft, die selbst ein Array enthält. Das Array enthält den letzten Fehler, den der Katalog beim Laden eines Videos festgestellt hat. In dem Beispiel sehen Sie, dass das Element im Array ein Problem mit Domäneneinschränkungen meldet.

Katalogfehlerobjekt

Behandle bc-catalog-error

Es ist möglich, dass die Handhabung von Fehlern im normalen ready() Abschnitt im script Block Probleme verursachen kann. Zum Beispiel kann es vorkommen, dass das bc-catalog-error Ereignis ausgelöst werden könnte, bevor der Spieler bereit ist, und wenn Sie auf den Fehler im ready() Abschnitt hören, Sie können den Fehler nicht behandeln. Möglicherweise stellen Sie fest, dass Ihr Code kein Problem enthält, aber das Problem kann vom Browser abhängig sein, also seien Sie vorsichtig. Aus diesem Grund verwendet der Fehlerbehandlungscode in diesem Dokument das one() Ereignisbehandlungsmethode zum Abhören der bc-catalog-error in einem separaten Codeblock anstatt innerhalb der ready() Sektion.

Nachricht in HTML

Sobald Sie die Struktur des erzeugten Fehlers und dessen Position verstanden haben, können Sie mit JavaScript einen beschreibenden Fehler für den Benutzer anzeigen. Die grundlegenden Implementierungsschritte sind:

  • Erstellen Sie ein Zielelement, in dem die Nachricht angezeigt werden soll.
  • Stellen Sie sicher, dass der Spieler bereit ist, darauf zu reagieren.
  • Überprüfen Sie, ob ein Fehler aufgetreten ist.
  • Wenn ja, überprüfen Sie, ob es sich bei dem Fehler um ein Problem mit Domäneneinschränkungen handelt.
  • Wenn ja, zeigen Sie dem Benutzer eine Nachricht an.

Der folgende Code implementiert diese Schritte.

  • Zeile 8: Fügen Sie ein HTML-Element ein, in diesem Fall einen Absatz, in den Text eingefügt werden soll. Geben Sie dem Element eine id für Targeting-Zwecke.
  • Zeile 13: Verwenden Sie die one() Methode fügen Sie einen Ereignis-Listener für das bc-catalog-error Ereignis nur einmal hinzu.
  • Zeile 16: Benutze ein if Anweisung, um sicherzugehen, dass ein Fehler aufgetreten ist.
  • Zeile 17: Weisen Sie einer Variablen die spezifischen Fehlerinformationen aus dem Fehlerobjekt des Brightcove Player-Katalogs zu.
  • Zeile 18: Benutze ein if Anweisung, um sicherzustellen, dass die spezifischen Fehlerinformationen vorhanden sind UND die Art des Fehlers von einer Domäneneinschränkung herrührt.
  • Zeile 19: Fügen Sie eine entsprechende Textnachricht in das in Zeile 12 erstellte HTML-Element ein.
  <video-js id="myPlayerID"
    data-video-id="3495887198001"
    data-account="1507807800001"
    data-player="4c8eb732-ba76-485c-a906-407365721633"
    data-embed="default"
    controls=""></video-js>

    <p id="textTarget"></p>

  <script src="https://players.brightcove.net/1507807800001/4c8eb732-ba76-485c-a906-407365721633_default/index.min.js"></script>

  <script type="text/javascript">
    videojs.getPlayer('myPlayerID').one('bc-catalog-error', function(){
      var myPlayer = this,
        specificError;
      if (myPlayer.catalog.error !== undefined) {
        specificError = myPlayer.catalog.error.data[0];
        if (specificError !== undefined & specificError.error_subcode == "DOMAIN") {
          document.getElementById("textTarget").innerHTML = "The video you are trying to watch cannot be viewed as it is domain restricted.";
        };
      };
    });

    videojs.getPlayer('myPlayerID').ready(function() {
      var myPlayer = this;
      console.log('in ready');
    });
  </script>

Der folgende Screenshot zeigt die Meldung, die unter dem Player angezeigt wird.

Fehler unter Spieler

Nachricht über Fehler-Plugin

Möglicherweise möchten Sie, dass die Nachricht im Player angezeigt wird, wenn das Video domänenbeschränkt ist. Sie können dies mit dem Fehler-Plugin tun. Das Fehler-Plugin wird automatisch in den Player geladen, sodass Sie diesen Vorgang nicht explizit ausführen müssen. Einzelheiten zum Fehler-Plugin, das über das hier Erwähnte hinausgeht, finden Sie in der Plugin für Fehlermeldungen anzeigen Dokument.

  • Zeile 43: Verwenden Sie die one() Methode fügen Sie einen Ereignis-Listener für das bc-catalog-error Ereignis nur einmal hinzu.
  • Zeilen 46-53: Rufen Sie den Spieler an error() Methode, die als JSON-Argument übergeben wird, das das definiert errors anzuzeigende Informationen. Beachten Sie, dass die Wahl von -3 Der Fehlercode ist willkürlich und die einzige Anleitung besteht darin, keinen Standardfehlercode (derzeit 1-5) zu verwenden.
  • Zeile 57: Ruf den error() Methode zum Anzeigen der benutzerdefinierten Fehlerinformationen. Die Logik, die verwendet wird, um zu bestimmen, wann der Domäneneinschränkungsfehler aufgetreten ist, ist dieselbe wie oben. Das als Argument übergebene Objekt definiert, welche Fehlermeldung angezeigt werden soll.
  <script type="text/javascript">
    videojs.getPlayer('myPlayerID').one('bc-catalog-error', function(){
      var myPlayer = this,
        specificError;
      myPlayer.errors({
        'errors': {
          '-3': {
            'headline': 'The video you are trying to watch cannot be viewed because of domain restrictions.',
            'type': 'DOMAIN'
          }
        }
      });
      if (typeof(myPlayer.catalog.error) !== 'undefined') {
        specificError = myPlayer.catalog.error.data[0];
        if (specificError !== 'undefined' & specificError.error_subcode == "DOMAIN") {
          myPlayer.error({code:'-3'});
        };
      };
    });

    videojs.getPlayer('myPlayerID').ready(function() {
      var myPlayer = this;
    });
  </script>

Der folgende Screenshot zeigt die Anzeige des Fehler-Plugins des definierten Fehlers.

definierter Fehler

Allgemeine Fehleranzeige

Die beiden obigen Abschnitte befassen sich speziell mit der Anzeige des Fehlers, der beim Anzeigen eines geobeschränkten Videos aus einem eingeschränkten Gebietsschema generiert wird. Einige Fehler geben nicht den Detaillierungsgrad an, den die Domänenbeschränkung bietet. Ein Beispiel für ein Fehlerobjekt dieses Typs wird hier angezeigt. Beachten Sie, dass die Daten Das Feld ist leer, während es mit dem Domäneneinschränkungsfehler wichtige Fehlerinformationen enthielt.

allgemeines Fehlerobjekt

Der folgende Code zeigt, wie Informationen von angezeigt werden catalog.error egal wie detailliert. Auf hoher Ebene führt der Code Folgendes aus:

  • Überprüft, ob ein Katalogfehler aufgetreten ist.
  • Überprüft, ob im Fehlerobjekt die data Feld enthält spezifische Fehlerinformationen. Wenn dies NICHT der Fall ist, wird die allgemeine Fehlermeldung in den HTML-Code eingefügt.
  • Wenn bestimmte Fehlerinformationen vorliegen UND es sich um Domäneneinschränkungen handelt, wird eine entsprechende Nachricht in den HTML-Code eingefügt.
  • Wenn bestimmte Fehlerinformationen vorhanden sind und diese nicht mit Domäneneinschränkungen zusammenhängen, wird die Meldung des bestimmten Fehlers in den HTML-Code eingefügt.
  <script type="text/javascript">
    videojs.getPlayer('myPlayerID').one('bc-catalog-error', function(){
      var myPlayer = this,
        specificError;
      if (myPlayer.catalog.error != undefined) {
        specificError = myPlayer.catalog.error.data[0];
        if (specificError == undefined) {
          document.getElementById("textTarget").innerHTML = "The following error has occurred: <strong>" + myPlayer.catalog.error.message + "</strong>";
        } else if (specificError.error_subcode == "DOMAIN") {
          document.getElementById("textTarget").innerHTML = "The video you are trying to watch cannot be viewed because of domain restrictions.";
        } else {
          document.getElementById("textTarget").innerHTML = "The following error has occurred: " + specificError.message;
        };
      };
    });

    videojs.getPlayer('myPlayerID').ready(function() {
      var myPlayer = this;
    });
  </script>

Der folgende Screenshot zeigt die allgemeine Fehlermeldung, die in HTML angezeigt wird. Natürlich können Sie auch das Fehler-Plugin verwenden, um die Nachricht anzuzeigen, wie im vorherigen Abschnitt dieses Dokuments gezeigt.

Allgemeine Fehlermeldung unter dem Player