Plugin für Fehlermeldungen anzeigen

In diesem Thema erfahren Sie, wie Sie das Standardverhalten von Fehlermeldungen ändern, benutzerdefinierte Fehlermeldungen erstellen und Fehler versenden.

Überblick

Mit dem Plugin für Fehlermeldungen kann der Player benutzerfreundliche Meldungen anzeigen, wenn ein Fehler auftritt. Das Standard-Stylesheet zeigt Nachrichten als halbtransparente Überlagerung über dem Videoelement an. Sie können vorhandenen Nachrichtentext ändern und eigene Stile hinzufügen. Sie können sogar benutzerdefinierte Nachrichten erstellen, die ausgelöst werden, wenn Sie möchten.

Fehlermeldung Plugin

Die im obigen Bild gezeigte Fehlermeldung wurde erstellt, indem der Player mit einem ungültigen aktualisiert wurde src Wert in der sources Eigentum.

Das Plugin für Fehlermeldungen ist ein Standard-Plugin und wird automatisch mit dem Brightcove Player geladen. Sie können jedoch festlegen, dass es nicht geladen werden soll. Ohne dieses Plugin werden nur wenige Fehlermeldungen angezeigt, und einige Fehler werden nur in der Browserkonsole angezeigt. Einzelheiten dazu, wie Sie beim Erstellen eines Players kein Standard-Plugin laden, finden Sie in der Player Plugin Übersicht Dokument.

Los geht's

Um alle Instanzen Ihres Players zu aktualisieren, können Sie ein benutzerdefiniertes Plugin mithilfe des Brightcove Players-Moduls von Studio implementieren. Dieser Ansatz wird in den folgenden Abschnitten verwendet, um das Plugin für Fehlermeldungen für Ihren Player zu aktualisieren. Wenn Sie dieses Plugin von einer Codeseite aus aktualisieren, wirkt sich dies nur auf diese Instanz Ihres Players aus.

Um das Plugin von Ihrem Seitencode zu aktualisieren, erhalten Sie zunächst einen Verweis auf den Brightcove Player. In diesem Beispiel erstellen wir im JavaScript eine Variable mit dem Namen myPlayer und ihm einen Verweis auf den Spieler zuweisen.

<video-js id="myPlayerID"
  data-video-id="4443311217001"
  data-account="1507807800001"
  data-player="default"
  data-embed="default"
  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;

Standardfehler

Dieses Plugin enthält eine Reihe von Standardfehlermeldungen für die Standard-HTML5-Videofehler, die auf dem Wert des Laufzeitfehlercodes basieren:

  • Fehlercode: 1
    • Typ: MEDIA_ERR_ABGEBROCHEN
    • Überschrift: Der Videodownload wurde abgebrochen
    • Nachricht: Sie haben die Medienwiedergabe abgebrochen
  • Fehlercode: 2
    • Typ: MEDIA_ERR_NETZWERK
    • Überschrift: Die Videoverbindung ist verloren gegangen, bitte bestätigen Sie, dass Sie mit dem Internet verbunden sind
    • Nachricht: Ein Netzwerkfehler führte dazu, dass der Medien-Download in Teilweg fehlschlug. Derzeit am hilfreichsten für Videoformate MP4 und/oder progressiven Download. Siehe die Bekannte Probleme Abschnitt in diesem Dokument für Details.
  • Fehlercode: 3
    • Typ: MEDIA_ERR_DECODE
    • Überschrift: Das Video ist schlecht oder in einem Format, das nicht in Ihrem Browser abgespielt werden kann
    • Nachricht: Die Medienwiedergabe wurde aufgrund eines Korruptionsproblems oder aufgrund der verwendeten Medien, die Ihr Browser nicht unterstützt hat, abgebrochen.
  • Fehlercode: 4
    • Typ: MEDIA_ERR_SRC_NOT_SUPPORTED
    • Überschrift: Dieses Video ist entweder nicht verfügbar oder wird in diesem Browser nicht unterstützt
    • Nachricht: Das Medium konnte nicht geladen werden, weil der Server oder das Netzwerk fehlgeschlagen ist oder weil das Format nicht unterstützt wird.
  • Fehlercode: 5
    • Typ: MEDIA_ERR_VERSCHLÜSSELT
    • Überschrift: Das Video, das Sie sich ansehen möchten, ist verschlüsselt und wir wissen nicht, wie wir es entschlüsseln sollen
    • Nachricht: Das Medium ist verschlüsselt und wir haben nicht die Schlüssel, um es zu entschlüsseln.

Wenn einem Fehler kein Fehlercode zugeordnet ist, wird eine allgemeine Meldung angezeigt:

  • Fehlercode: unbekannt
    • Nachricht: MEDIA_ERR_UNKNOWN
    • Beschreibung: Es ist ein unerwartetes Problem aufgetreten. Schauen Sie bald wieder vorbei und versuchen Sie es erneut

Text überschreiben

Es gibt drei Teile der Fehlermeldung, die Sie ändern können:

  • headline: Dies ist der Nachrichtentext oben.
  • type: Dies ist das Fehlercode: Text.
  • message: Dies ist das Technische Details: Text.
Fehlermeldung Plugin

Das folgende Beispiel zeigt, wie der Nachrichtentext für den Standardfehler mit einem Fehlercodewert von überschrieben wird 4. Die Eigenschaften sind wie folgt definiert:

  • plugins: Diese Eigenschaft enthält ein Array von Eigenschaften und Werten. Für dieses Plugin müssen Sie nur das angeben name Eigenschaft mit dem Wert von errors.
  • options: Diese Eigenschaft wird verwendet, um Daten an das Plugin zu übergeben.
  • errors: Diese Eigenschaft definiert den Fehlercode, den Sie aktualisieren möchten. Hier überschreiben wir den Nachrichtentext für die headline , type , und message.

Verwendung im Seitencode

Wenn Sie das Fehlerskript in Ihren Code aufnehmen, können Sie den Nachrichtentext wie folgt überschreiben:

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

Verwenden eines benutzerdefinierten Plugins

Wenn Sie alle Instanzen Ihres Players aktualisieren möchten, erstellen Sie ein benutzerdefiniertes Plugin und fügen Sie es Ihrem Player im Players-Modul von Video Cloud Studio hinzu. Weitere Informationen zu Plugins finden Sie in der Player-Plugins konfigurieren Dokument.

Gehen Sie folgendermaßen vor, um ein Plugin zum Überschreiben des Standardnachrichtentextes zu erstellen:

  1. Erstellen Sie mit Ihrem Brightcove Player-Plugin-Code eine JavaScript-Datei, die an einem über das Internet zugänglichen Ort gespeichert ist. Es sollte ähnlich aussehen, aber mit Ihren eigenen Werten:

    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. In dem Spieler Modul auswählen Plugins von der linken Navigation.

  3. Erweitern Sie die Fügen Sie ein Plugin hinzu Schaltfläche und wählen Sie Benutzerdefiniertes Plugin.

    Benutzerdefiniertes Plugin
    Benutzerdefiniertes Plugin
  4. Fügen Sie auf der Seite mit den Plugin-Details Werte für Folgendes hinzu:

    • Plugin Name - Ihr Plugin-Name
    • JavaScript-URL - Der Speicherort Ihres Player-Plugins vom ersten Schritt an
    Plugin Details
    Plugin Details
  5. Wähle aus Speichern Taste.
  6. Veröffentlichen Sie Ihren Spieler.

Brightcove hat benutzerdefinierte Fehler definiert

Benutzerdefinierte Fehler können ebenfalls definiert werden. Brightcove hat eine Reihe von benutzerdefinierten Fehlern definiert, die in diesem Abschnitt erläutert werden. Sie können auch benutzerdefinierte Fehler erstellen, die im nächsten Abschnitt beschrieben werden.

  • Brightcove empfiehlt, benutzerdefinierte Fehlercodewerte als Zeichenfolge zu verwenden. Sie werden sehen, dass zwei der angegebenen Fehler aus historischen Gründen negative Zahlen verwenden, aber alphanumerische / beschreibende Zeichenfolgen verursachen mit geringerer Wahrscheinlichkeit Kollisionsprobleme.
  • Benutzerdefinierte Fehlermeldungen können beliebig benannt werden. Brightcove empfiehlt, dass der Typ mit beginnt PLAYER_ERR gegen die standardisierte MEDIA_ERR um Verwirrung zu vermeiden.
  • Wie detailliert später in diesem Abschnitt können Sie benutzerdefinierte Fehler abweisen oder nicht.

Fünf benutzerdefinierte Fehlermeldungen wurden als Referenz hinzugefügt:

  • Fehlercode: -1
    • Nachricht: PLAYER_ERR_NO_SRC
    • Beschreibung: Es wurde kein Video geladen
  • Fehlercode: -2
    • Nachricht: PLAYER_ERR_TIMEOUT
    • Beschreibung: Das Video konnte nicht heruntergeladen werden
  • Fehlercode: Nicht eingestellt
    • Nachricht: PLAYER_ERR_DOMAIN_RESTRICTED
    • Beschreibung: Dieses Video darf nicht auf Ihrer aktuellen Domain abgespielt werden
  • Fehlercode: Nicht eingestellt
    • Nachricht: PLAYER_ERR_IP_RESTRICTED
    • Beschreibung: Dieses Video ist auf Ihre aktuelle IP-Adresse beschränkt
  • Fehlercode: Nicht eingestellt
    • Nachricht: PLAYER_ERR_GEO_RESTRICTED
    • Beschreibung: Dieses Video darf nicht in Ihrer aktuellen geografischen Region abgespielt werden

Benutzerdefinierte benutzerdefinierte Fehler

Wenn Sie Ihre eigenen benutzerdefinierten Fehler definieren, empfiehlt Brightcove, keine zu verwenden Code. (You see in the section above that this is what Brightcove is now doing with the newer custom errors they are defining.) Sie sollten auch die Verwendung von in Betracht ziehen PLAYER_ERR_ Präfix für Ihre benutzerdefinierten Fehler aus Gründen der Konsistenz, aber Sie können sie natürlich benennen, wie Sie möchten.

Wenn Sie das Fehlerskript in Ihren Code aufnehmen, können Sie benutzerdefinierte Nachrichten wie folgt hinzufügen:

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."
    }
  }
});

Benutzerdefinierte Fehler anzeigen

Wenn Sie benutzerdefinierte Fehler definieren, müssen Sie Brightcove Player darüber informieren, wann Sie sie anzeigen möchten. Erstellen Sie dazu Ihren eigenen Code, um festzulegen, wann die Nachricht angezeigt werden soll. Dann benutzen Sie die error() Funktion zum Anzeigen der Nachricht wie folgt:

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

Hier die age_appropriate Variable ist auf gesetzt false Sie würden jedoch Ihren eigenen Code hinzufügen, um zu bestimmen, wann Ihre benutzerdefinierten Fehlermeldungen angezeigt werden sollen.

Der Fehler wird dem Benutzer wie folgt angezeigt:

Benutzerdefinierte Fehlermeldung

Benutzerdefinierte Fehler nicht abweisbar machen

Standardmäßig kann eine benutzerdefinierte Fehlermeldung vom Video-Viewer nicht angezeigt werden. Wie der folgende Screenshot zeigt, gibt es eine OK Klicken Sie auf die Schaltfläche, um das Fenster zu schließen, sowie auf eine Schaltfläche X. in der oberen rechten Ecke.

abweisbare Fehlermeldung

Wenn Sie dem Videobetrachter NICHT erlauben möchten, die Fehlermeldung zu schließen, können Sie dies tun. Wenn Sie die anrufen error() Methode können Sie die einstellen dismiss Eigentum an false.

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

Wenn Sie dies tun, wird die Fehlermeldung wie folgt angezeigt, ohne dass der Fehler behoben werden kann.

nicht abweisbare Fehlermeldung

Methode getAll ()

Du kannst den ... benutzen getAll() Methode, um alle für einen bestimmten Spieler registrierten Fehler anzuzeigen. Sie können die anrufen getAll() Methode jederzeit nach dem Fehler Plugin wurde zum Beispiel nach initialisiert player.errors() genannt worden. Ein Beispiel für den Aufruf der Methode ist:

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

Ein Beispiel für die Konsolenanzeige mit einigen Fehlern, die für Details erweitert wurden, ist:

getAll Konsolenanzeige

on() -Methode

Sie können auch alle Fehler mit der on() -Methode abhören, und zwar wie folgt:
myPlayer.on('error'), function () {
  ...
}

Wenn Sie Anzeigen spielen und alle Fehler aufspüren wollen, müssen Sie dies verwenden:

myPlayer.on(['error','aderror')], function () {
  ...
}

Versandfehler

In der Entwicklung möchten Sie möglicherweise Fehler versenden, um zu testen, ob Ihre Konfigurationsänderungen erfolgreich sind. Sie können dies mit einem Code tun, der dem im folgenden Codeausschnitt gezeigten ähnlich ist. In diesem Fall wird dem Code eine Schaltfläche hinzugefügt, damit Sie den Fehler zu einem bestimmten Zeitpunkt auslösen können.

<video-js id="myPlayerID"
  data-video-id="4443311217001"
  data-account="1507807800001"
  data-player="default"
  data-embed="default"
  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>

Lokalisieren Sie Fehler

Das Fehler-Plugin unterstützt mehrere Sprachen. Um die Sprachunterstützung hinzuzufügen, laden Sie nach dem Laden des Plugins die bestimmte Sprachdatei, die Sie verwenden möchten:

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

Sie können dann die in der gezeigten Techniken verwenden Programmgesteuertes Lokalisieren von Brightcove Player Dokument zum Lokalisieren von Fehlermeldungen.

bc-Katalogfehler

Es ist möglich, dass die Handhabung von Fehlern im normalen ready() Abschnitt im Skriptblock Probleme verursachen kann. Zum Beispiel kann es vorkommen, dass das Ereignis bc-catalog-error ausgelöst wird, bevor der Player bereit ist, und wenn Sie auf den Fehler im warten ready() Abschnitt, werden Sie nicht in der Lage sein, den Fehler zu behandeln. Dieses Problem kann auftreten, wenn die Geofilterung verwendet wird, ein Video inaktiv ist, ein Video außerhalb des Planungsbereichs liegt oder sich in einem anderen Konto befindet. 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.

Hier ist beispielsweise der Plugin-Code, der eine Meldung anzeigt, wenn ein Video inaktiv ist:

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'});
      };
    };
  });
});

Übertriebene Fehlerrate

Wenn Sie eine scheinbar unangemessene Anzahl gemeldeter Fehler erhalten, ist es wichtig zu wissen, dass Sie doppelte Fehlerereignisse für dieselbe Sitzung erhalten können, wodurch diese übertriebene Fehlerrate entsteht. Brightcove Player sendet Fehler genau zum richtigen Zeitpunkt und in der gleichen Menge an Analytics, wie sie dem Player gemeldet werden. Zum Beispiel, wenn sich keine Medien in einem Player befinden und der Code irgendwie aufruft play() tausendmal hintereinander, tausendmal PLAYER_ERR_NO_SRC Fehler werden an Analytics gemeldet.

Wenn es einige Sitzungen mit unzähligen Fehlern gibt, die die Analyse verzerren, sollten Sie die folgende Logik verwenden, um ein besseres Gefühl für die tatsächlichen Probleme zu erhalten:

number_of_sessions_with_errors / total_number_of_sessions
lieber als
count of errors/number of views

Bekannte Probleme

  • Bei der Wiedergabe von HLS-Quellen entspricht das Verhalten nach dem Verlust der Netzwerkverbindung wahrscheinlich nicht Ihren Erwartungen. Die Details sind:
    • In Version 6.x von Brightcove Player werden HLS-Segmente endlos angefordert und nein MEDIA_ERR_NETWORK erscheint jemals.
    • In Version 5.x von Brightcove Player nach einer gewissen Zeit (30+ Sekunden) a PLAYER_ERR_TIMEOUT Fehler erscheint.
  • Beim Laden von Videos in Edge unter Windows 10 (sowohl im Studio als auch in öffentlichen URLs) a MEDIA_ERR_SRC_NOT_SUPPORTED Fehler wird angezeigt und das Video kann nicht abgespielt werden.
  • Auf Android-Geräten und iPhones sprudeln die Tippereignisse für Fehlermeldungen nicht zum übergeordneten Videoelement. Dies bedeutet, dass Sie eine Fehlermeldung nicht schließen können, sobald sie angezeigt wird. Dieses Verhalten kann ein Problem sein, wenn sich der Benutzer im Vollbildmodus befindet, da er diesen Status nicht verlassen kann.

    Dieses Problem wird derzeit bearbeitet und sollte in einer zukünftigen Player-Version behoben werden. Im Moment können Sie eine Umgehung wie folgt versuchen:

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

Änderungsliste

Das Fehler-Plugin ist jetzt in den Player integriert, und Änderungen an der Plugin-Funktionalität werden in den Versionshinweisen des Brightcove-Players bekannt gegeben.

Historische Versionshinweise finden Sie im Changelog hier.