Spielerkatalog

In diesem Thema lernen Sie, wie Sie Brightcove Player verwenden Katalog Bibliothek mit Methoden zum Anfordern von Anforderungen an den Video Cloud-Katalog. Die Katalogbibliothek macht es einfach, Informationen zu Video Cloud-Medien abzurufen und in einen Player zu laden.

Grundlegende Syntax

Die grundlegende Syntax für die Verwendung von catalog ist wie folgt:

  • Methoden: playerName.catalog.methodName()

Einige der catalog Methoden übergeben ein Objekt mit Parametern, die die Anforderung definieren. Das catalog Parameter Objekt wird im nächsten Abschnitt definiert und wird gegebenenfalls in den Methodenbeschreibungen angegeben.

catalog Parameter Objekt

Die folgende Tabelle beschreibt die Eigenschaften in der CatalogParams Objekt. Dieses echte Objekt (kein Konstruktor) definiert das Format für Parameter, die bei vielen Kataloganforderungen verwendet werden sollen.

Nennen Typ Beschreibung
type string

Die Art der Anfrage. Muss einer von sein Video , Wiedergabeliste , oder Suche.

policyKey string

Der Richtlinienschlüssel für dieses Konto. Dies ist standardmäßig der Richtlinienschlüssel des Players.** Beachten Sie, dass Sie, wenn Sie eine andere Konto-ID als Parameter übergeben, auch den entsprechenden Richtlinienschlüssel für dieses Konto übergeben müssen.

deliveryConfigId string

Die Lieferregeln id. Sehen Überblick: Lieferregeln.

[id] string

Eine Video- oder Wiedergabelisten-ID oder Referenz-ID mit dem Präfix "ref:". Required für Video- und Wiedergabelistenanfragen. DEPRECATED: Aus Gründen der Abwärtskompatibilität wird dies stattdessen als Suchabfrage unterstützt q. Dies kann als Unterobjekt bereitgestellt werden, bei dem es sich auch um ein Unterobjekt handelt CatalogParams Objekt, mit dem Parameter bereitgestellt werden können.

[q] string

Eine Suchabfrage. Required für Suchanfragen, für andere ignoriert.

[adConfigId] string

Ein Video könnte SSAI-Anzeigenkonfigurations-ID.

[tveToken] string

Ein optionales TVE-Token, das als Abfragezeichenfolgenparameter gesendet werden soll.

[limit] string

Unterstützt für playlist und search nur Typen. Begrenzen Sie die Anzahl der zurückgegebenen Videos.

[offset] string

Unterstützt für playlist und search nur Typen. Die Anzahl der zu überspringenden Videos.

[sort] string

Unterstützt für search Nur eingeben. Wie die Videos für die Suche sortiert werden sollen.

[bcovAuthToken] string Zur Verwendung mit dem Brightcove Playback Authorization Service (PAS).

getVideo( ) method

Das getVideo(params | videoID,callback,[adConfigId]) => XMLHttpRequest Methode macht a catalog Anforderung für das Video mit der angegebenen ID und Aufruf eines Rückrufs, wenn die Anforderung abgeschlossen ist.

Parameter

  • params | videoID:: Ein Objekt vom Typ catalog Parameter ODER eine Zeichenfolge, die die Video-ID oder eine Referenz-ID enthält, der ein Präfix vorangestellt ist ref:.

  • callback:: Eine Funktion, die aufgerufen wird, wenn die Anforderung abgeschlossen ist, unabhängig davon, ob sie erfolgreich ist oder nicht. Es wird mit zwei Argumenten aufgerufen:

    • Das erste Argument enthält ein Error-Objekt, wenn ein Fehler auftritt. Dieses Objekt enthält Details zum Fehler. Wenn kein Fehler auftritt, ist dieses Objekt null.

    • Wenn kein Fehler auftritt, ist das zweite Argument das angeforderte Videoobjekt. Wenn ein Fehler auftritt, enthält dieser Wert die leere Zeichenfolge.

  • [adConfigId]:: VERALTET Eine Video Cloud-Anzeigenkonfigurations-ID, die an die Playback-API weitergegeben wird. Übergeben Sie stattdessen die adConfigId im ersten params-Objekt.

Wert zurückgegeben

Das catalog Der Aufruf selbst gibt ein Objekt vom Typ zurück XMLHttpRequest. Ein Beispiel für dieses Objekt folgt:

Objekt anfordern

Obwohl der Anruf ein zurückgibt XMLHttpRequest Objekt, werden Sie höchstwahrscheinlich nie mit diesem Objekt beschäftigen. Der Grund ist, dass in der Rückruffunktion die JSON-Antwort automatisch analysiert wird und ein verwendbares Objekt an die Rückruffunktion übergeben wird, in diesem Fall ein Videoobjekt.

Beispiel: Video-ID als Zeichenfolge

Das folgende Beispiel zeigt eine Verwendung von getVideo() Methode:

<video-js id="myPlayerID"
  data-account="1507807800001"
  data-player="3bc25a34-086a-4060-8745-dd87af3d53b4"
  data-embed="default"
  data-video-id=""
  controls=""></video-js>
<script src="https://brightcove.net/1507807800001/3bc25a34-086a-4060-8745-dd87af3d53b4_default/index.min.js"></script>


<script type="text/javascript">
  videojs.getPlayer('myPlayerID').ready(function() {
    var myPlayer = this;
    myPlayer.catalog.getVideo('2114345471001', function(error, video){
    //deal with error
    myPlayer.catalog.load(video);
  });
});
</script>

Beispiel: Verwenden von catalogParams

Das Äquivalent des obigen Codes, jedoch unter Verwendung des CatalogParams-Objekts, sieht wie folgt aus:

<script>
  videojs.getPlayer('myPlayerID').ready(function() {
    var myPlayer = this,
      catalogParams = {};
    catalogParams.type = 'video';
    catalogParams.id = '2114345471001';
    myPlayer.catalog.getVideo(catalogParams, function(error, video){
    //deal with error
    myPlayer.catalog.load(video);
  });
});
</script>

getPlaylist( ) method

Das getPlaylist(params | playlistID,callback,[adConfigId]) => XMLHttpRequest Methode macht a catalog Anforderung der Wiedergabeliste mit der angegebenen ID und Aufruf eines Rückrufs, wenn die Anforderung abgeschlossen ist.

Parameter

  • params | playlistID:: Ein Objekt vom Typ catalog Parameter ODER eine Zeichenfolge, die die Wiedergabelisten-ID oder eine Referenz-ID enthält, der ein Präfix vorangestellt ist ref:.

  • callback:: Eine Funktion, die aufgerufen wird, wenn die Anforderung abgeschlossen ist, unabhängig davon, ob sie erfolgreich ist oder nicht. Es wird mit zwei Argumenten aufgerufen:

    • Das erste Argument enthält ein Error-Objekt, wenn ein Fehler auftritt. Dieses Objekt enthält Details zum Fehler. Wenn kein Fehler auftritt, ist dieses Objekt null.

    • Wenn kein Fehler auftritt, ist das zweite Argument das angeforderte Videoobjekt. Wenn ein Fehler auftritt, enthält dieser Wert die leere Zeichenfolge.

  • [adConfigId]:: VERALTET Eine Video Cloud-Anzeigenkonfigurations-ID, die an die Playback-API weitergegeben wird. Übergeben Sie stattdessen die adConfigId im ersten params-Objekt.

Wert zurückgegeben

Das catalog Aufruf selbst gibt eine zurück XMLHttpRequest. Obwohl der Anruf ein zurückgibt XMLHttpRequest Objekt, werden Sie höchstwahrscheinlich nie mit diesem Objekt beschäftigen. Der Grund ist, dass in der Rückruffunktion die JSON-Antwort automatisch analysiert wird und ein verwendbares Objekt an die Rückruffunktion übergeben wird, in diesem Fall ein Wiedergabelistenobjekt.

Beispiel

Das folgende Beispiel zeigt eine Verwendung von getPlaylist() Methode folgt:

<video-js id="myPlayerID"
  data-account="1752604059001"
  data-player="f50a2d3c-af51-4d8c-84e3-0c7cdec0edbe"
  data-embed="default"
  controls=""></video-js>

<script src="https://players.brightcove.net/1752604059001/f50a2d3c-af51-4d8c-84e3-0c7cdec0edbe_default/index.min.js"></script>

<script type="text/javascript">
  videojs.getPlayer('myPlayerID').ready(function() {
    var myPlayer = this;
    myPlayer.catalog.getPlaylist('1754200320001', function(error, playlist){
      //deal with error
      myPlayer.catalog.load(playlist);
    })
  });
</script>

load () -Methode

Das load(mediaobject) Methode lädt ein Video- oder Wiedergabelistenobjekt in den Player. Diese Methode aktualisiert den Player mediainfo Eigenschaft, und aktualisieren Sie die Videoquelle und das Poster. In den meisten Fällen würden Sie diese Methode mit dem Ergebnis eines Aufrufs von aufrufen getVideo() oder getPlaylist(). Wenn Sie benachrichtigt werden möchten, wann mediainfo wurde aktualisiert, hören Sie auf die loadstart Veranstaltung.

Parameter

  • mediaobject:: Ein zu ladendes Video- oder Wiedergabelistenobjekt. Dieses Objekt sollte das gleiche Format haben wie das Antwortobjekt von einem Aufruf an getVideo() oder getPlaylist()Methode.

Beispiel

Im folgenden Beispiel wird ein Video abgerufen und in den Player geladen.

<video-js id="myPlayerID"
  data-account="1507807800001"
  data-player="3bc25a34-086a-4060-8745-dd87af3d53b4"
  data-embed="default"
  data-video-id=""
  controls=""></video-js>
<script src="https://players.brightcove.net/1507807800001/3bc25a34-086a-4060-8745-dd87af3d53b4_default/index.min.js"></script>


<script type="text/javascript">
  videojs.getPlayer('myPlayerID').ready(function() {
    var myPlayer = this;
    myPlayer.catalog.getVideo('2114345471001', function(error, video) {
      //deal with error
      myPlayer.catalog.load(video);
    });
  });
</script>

get () Methode

Das get(params, [callback]) ⇒ Promise | XMLHttpRequest Methode ermöglicht die Suche in der catalog mit CMS / Playback-API: Videos Suche Syntax. Unter der Haube verwendet diese Methode die Playback-API.

Parameter

  • params:: Ein Objekt vom Typ catalog Parameter.

  • callback:: Eine Funktion, die aufgerufen wird, wenn die Anforderung abgeschlossen ist, unabhängig davon, ob sie erfolgreich ist oder nicht. Es wird mit zwei Argumenten aufgerufen:

    • Das erste Argument enthält ein Error-Objekt, wenn ein Fehler auftritt. Dieses Objekt enthält Details zum Fehler. Wenn kein Fehler auftritt, ist dieses Objekt null.

    • Wenn kein Fehler auftritt, ist das zweite Argument das angeforderte Videoobjekt. Wenn ein Fehler auftritt, enthält dieser Wert die leere Zeichenfolge.

Wert zurückgegeben

Die Methode gibt a zurück Promise oder ein Objekt vom Typ XMLHttpRequest. Wenn Sie eine Rückruffunktion verwenden, wird die JSON-Antwort automatisch analysiert und ein verwendbares Objekt wird an die Rückruffunktion übergeben. Die genaue Struktur der zurückgegebenen Daten im Callback hängt davon ab, wonach gesucht wurde.

Rückrufbeispiel

Das folgende Beispiel führt wie folgt aus:

  1. Erstellt ein catalogParams-Objekt, das als Argument mit der Funktion übergeben wird. Bei der Suche werden Videos mit der Zeichenfolge abgefragt Desert in den Videos name.

  2. Führt die Suche mit dem durch get() Methode. Beachten Sie, dass die Callback-Funktion die Parameter namens errorObj und verwendet videosReturned.

  3. Verwenden Sie die playlist() Methode, um die zurückgegebenen Videos dem Brightcove Player zuzuweisen.

<script type="text/javascript">
  videojs.getPlayer('myPlayerID').ready(function() {
    var myPlayer = this,
      catalogParams = {};
    catalogParams.type = 'search';
    catalogParams.policyKey = 'BCpkADawqM3dv_...Cv8-nlTX';
    catalogParams.q = 'name:Desert';
    console.log('catalogParams',catalogParams);
    myPlayer.catalog.get(catalogParams,function(errorObj,videosReturned){
      console.log('videosReturned',videosReturned);
      myPlayer.playlist(videosReturned);
    });
  });
</script>

Der folgende Screenshot zeigt die beiden console.log() Ergebnisse im obigen Code. Das catalogParams zeigt die Parameter für die Suche und die videosReturned Array zeigt die drei von der Suche zurückgegebenen Videos.

Objekte in der Konsole vom Methodenaufruf get

Versprich ein Beispiel

In diesem Code wird dieselbe Suche mit durchgeführt get() Methode wie oben gezeigt, aber das Ergebnis wird als Versprechen behandelt.

<script type="text/javascript">
  videojs.getPlayer('myPlayerID').ready(function() {
    var myPlayer = this,
      catalogParams = {};
    catalogParams.type = 'search';
    catalogParams.policyKey = 'BCpkADawqM3dv_...Cv8-nlTX';
    catalogParams.q = 'name:Desert';
    myPlayer.catalog.get(catalogParams).then(function(videosReturned){
      console.log('videosReturned',videosReturned);
      myPlayer.playlist(videosReturned);
    }).catch(function(errorObj){
      console.log('errorObj',errorObj);
    })
  });
</script>

Weitere Informationen zu Versprechen finden Sie unter Verwenden von JavaScript-Versprechen.

Methode getSearch ()

Das getSearch(params, [callback], [adConfigId]) ⇒ XMLHttpRequest Methode ermöglicht das Durchsuchen des Katalogs mit CMS / Playback-API: Videos Suche Syntax. Unter der Haube verwendet diese Methode die Playback-API.

Parameter

  • params:: Ein Objekt vom Typ catalog Parameter.

  • callback:: Eine Funktion, die aufgerufen wird, wenn die Anforderung abgeschlossen ist, unabhängig davon, ob sie erfolgreich ist oder nicht. Es wird mit zwei Argumenten aufgerufen:

    • Das erste Argument enthält ein Error-Objekt, wenn ein Fehler auftritt. Dieses Objekt enthält Details zum Fehler. Wenn kein Fehler auftritt, ist dieses Objekt null.

    • Wenn kein Fehler auftritt, ist das zweite Argument das angeforderte Videoobjekt. Wenn ein Fehler auftritt, enthält dieser Wert die leere Zeichenfolge.

  • [adConfigId]:: VERALTET Eine Video Cloud-Anzeigenkonfigurations-ID, die an die Playback-API weitergegeben wird. Übergeben Sie stattdessen die adConfigId im ersten params-Objekt.

Wert zurückgegeben

Das catalog Der Aufruf selbst gibt ein Objekt vom Typ zurück XMLHttpRequest. Obwohl der Anruf ein zurückgibt XMLHttpRequest Objekt, werden Sie höchstwahrscheinlich nie mit diesem Objekt beschäftigen. Der Grund dafür ist, dass in der Callback-Funktion die JSON-Antwort automatisch analysiert wird und ein brauchbares Objekt an die Callback-Funktion übergeben wird. Die genaue Struktur der zurückgegebenen Daten im Callback hängt davon ab, wonach gesucht wurde.

Beispiel

Das folgende Beispiel führt wie folgt aus:

  1. Baut a CatalogParams Objekt, das als Argument mit der Funktion übergeben wird. Der suchfähige Richtlinienschlüssel wird übergeben. Bei der Suche werden Videos mit der Zeichenfolge abgefragt desert in den Videos name.

  2. Führt die Suche mit dem durch getSearch() Methode. Beachten Sie, dass die Callback-Funktion die Parameter namens errorObj und verwendet videosReturned.

  3. Verwenden Sie die playlist() Methode, um die zurückgegebenen Videos dem Brightcove Player zuzuweisen.

<script type="text/javascript">
  videojs.getPlayer('myPlayerID').ready(function() {
    var myPlayer = this,
      catalogParams = {};
    catalogParams.type = 'search';
    catalogParams.policyKey = 'BCpkADawqM3dv_...-rSSaDpwCVfj0vsWCv8-nlTX';
    catalogParams.q = 'name:Desert';
    console.log('catalogParams',catalogParams);
    myPlayer.catalog.getSearch(catalogParams,function(errorObj,videosReturned){
      console.log('videosReturned',videosReturned);
      myPlayer.playlist(videosReturned);
    });
  });
</script>

Der folgende Screenshot zeigt die beiden console.log() Ergebnisse im obigen Code. Das catalogParams zeigt die erforderlichen Parameter für die Suche und die videosReturned Array zeigt die drei von der Suche zurückgegebenen Videos.

Objekte in der Konsole aus dem Methodenaufruf getSearch

Methode getSequence ()

Das getSequence(sequences, callback, [adConfigId]) ⇒ Array.<XMLHttpRequest> Methode erlaubt das Übergeben mehrerer catalog Operationen und ruft alle Videoobjekte von diesen mehreren ab catalog Operationen. Sie können drei Arten von Operationen ausführen:

  1. suche
  2. Video
  3. Wiedergabeliste

In der Praxis bedeutet dies, dass Sie die folgenden Kombinationen abrufen können und die zurückgegebenen Daten ein Array von Videoobjekten sind:

  • Mehrere Wiedergabelisten
  • Eine Wiedergabeliste und mehrere zusätzliche, individuelle Videos
  • Bei der Suche werden alle Videos mit einer bestimmten Zeichenfolge im Namen, der Beschreibung oder dem Tag angezeigt.

Natürlich sind die gerade aufgelisteten Sequenzen nur einige von nahezu unendlich vielen Kombinationen.

Parameter

  • sequences:: Ein Objekt vom Typ catalog Parameter ODER ein Array von Objekten, die eine Folge von darstellen catalog Operationen.

  • callback:: Eine Funktion, die aufgerufen wird, wenn die Anforderung abgeschlossen ist, unabhängig davon, ob sie erfolgreich ist oder nicht. Es wird mit zwei Argumenten aufgerufen:

    • Das erste Argument enthält ein Error-Objekt, wenn ein Fehler auftritt. Dieses Objekt enthält Details zum Fehler. Wenn kein Fehler auftritt, ist dieses Objekt null.

    • Wenn kein Fehler auftritt, ist das zweite Argument das angeforderte Videoobjekt. Wenn ein Fehler auftritt, enthält dieser Wert die leere Zeichenfolge.

  • [adConfigId]:: Eine Anzeigenkonfigurations-ID, die bei jeder Anforderung weitergegeben wird.

Beachten Sie, dass ein bestimmtes Video, das in mehr als einem der Vorgänge zurückgegeben wird, mehrmals im Ergebnis enthalten ist.

Wert zurückgegeben

Das catalog Der Aufruf selbst gibt ein Objekt vom Typ zurück XMLHttpRequest. Obwohl der Anruf ein zurückgibt XMLHttpRequest Objekt, werden Sie höchstwahrscheinlich nie mit diesem Objekt beschäftigen. Der Grund dafür ist, dass in der Callback-Funktion die JSON-Antwort automatisch analysiert wird und ein brauchbares Objekt an die Callback-Funktion übergeben wird. Die genaue Struktur der zurückgegebenen Daten im Callback hängt davon ab, wonach gesucht wurde.

Beispiel

Im folgenden Beispiel wird eine Folge von drei verwendet catalog Operationen. Das erste ist eine Suche nach den 10 ältesten Videos in der catalog In der Sekunde, in der ein einzelnes Video hinzugefügt wird, werden zuletzt die Videos einer Wiedergabeliste zum Ergebnis hinzugefügt.

<script>
  videojs.getPlayer('myPlayerID').ready(function() {
    var myPlayer = this,
      // Declare object for catalog search
      catalogParams = {};
    // Declare mySequences array which will hold
    // three different types of catalog operations
    mySequences = [];

    // Declare 3 objects for different catalog operations
    mySequences[0]={};
    mySequences[1]={};
    mySequences[2]={};

    // Define the object for catalog search
    // Search will retrieve 10 oldest videos in catalog
    catalogParams.policyKey = 'BCpkADawqM3dv_-rSSaDpwCVfj0vsWCv8-nlTX';
    catalogParams.q = 'type:*';
    catalogParams.sort = 'created_at';
    catalogParams.limit = 10;
    catalogParams.type = 'search';
    mySequences[0] = catalogParams;

    // Create a video retrieval catalog operation
    catalogParams = {};
    catalogParams.type = 'video';
    catalogParams.id = '5755775186001';
    mySequences[1] = catalogParams;

    // Create a playlist retrieval catalog operation
    catalogParams = {};
    catalogParams.type = 'playlist';
    catalogParams.id = '5531423971001';
    mySequences[2] = catalogParams;

    // Display mySequences array
    console.log('mySequences',mySequences);

    // Perform sequence of catalog operations
    myPlayer.catalog.getSequence(mySequences,function(errorObj,videosReturned){
      // Display video objects returned
      console.log('videosReturned',videosReturned);
      // Assign video objects as a playlist
      myPlayer.playlist(videosReturned);
    });
  });
</script>

Der folgende Screenshot zeigt die Struktur des mySequences Array, gefolgt von dem Array der zurückgegebenen Videoobjekte:

Die myStructures-Datenstruktur

Methode getLazySequence ()

Das getLazySequence(sequences, callback, [adConfigId]) ⇒ XMLHttpRequest Methode verhält sich genauso wie die Methode getSequence () , außer dass das verzögerte Laden von Videos verwendet wird. Dies bedeutet, dass beim Abrufen der Videos für eine Sequenzoperation die Videos der nächsten Sequenzoperation erst abgerufen werden, wenn das letzte Video der vorherigen Operation erreicht ist. Ein Sonderfall liegt vor, wenn eine Sequenz nur ein einziges Video zurückgibt. In diesem Fall wird die nächste Sequenzoperation ausgeführt und es werden mehr Videos abgerufen.

autoFindAndLoadMedia () -Methode

Das autoFindAndLoadMedia([opts]) ⇒ Object | undefined Die Methode sucht nach der zuletzt definierten Video- oder Wiedergabelisten-ID, fordert sie von der API an und lädt sie in den Player. Diese Methode definiert das Standardverhalten für den Brightcove Player.

Parameter

  • options: Alle folgenden Optionen werden erkannt:
    • adConfigId (number): Ein numerischer Wert für eine Anzeigenkonfiguration, der an die Wiedergabe-API übergeben wird. Wird am Ende ad_config_id genannt.

    • embedHasPoster (boolean): Ob die ursprüngliche Einbettung ein Poster hatte oder nicht.

    • embedHasSources (boolean): Ob die ursprüngliche Einbettung Quellen hatte oder nicht.

    • embedHasTracks (boolean): Ob die ursprüngliche Einbettung Spuren hatte oder nicht.

    • playlistId (string): Eine Wiedergabelisten-ID, die in der Player-Konfiguration angegeben ist.

    • search (string | Object): Eine Suchzeichenreihung/Objekt, die in der Player-Konfiguration oder Einbettung bereitgestellt wurde. Weitere Informationen zu den unterstützten Parametern finden Sie unter get() Methode.

    • sequence (Object | Array.Object): Eine Suchzeichenreihung/Objekt, die in der Player-Konfiguration oder Einbettung bereitgestellt wurde. Weitere Informationen zu den unterstützten Parametern finden Sie unter get() Methode.

    • videoId (string): Eine Video-ID, die in der Player-Konfiguration angegeben ist.

Im folgenden Beispiel wird das Videoobjekt basierend auf dem abgerufen videoId und lädt es in den Player:

<script type="text/javascript">
  videojs.getPlayer('myPlayerID').ready(function() {
    var myPlayer = this,
		options = {};
    options.videoId = '5141730843001';
    myPlayer.catalog.autoFindAndLoadMedia(options);
  });
</script>

Im folgenden Beispiel wird das Wiedergabelistenobjekt basierend auf abgerufen playlistId und lädt es in den Player. Es erhält auch das Videoobjekt basierend auf playlistVideoId und lädt es als erstes Video, das in der Wiedergabeliste abgespielt wird:

<script type="text/javascript">
  videojs.getPlayer('myPlayerID').ready(function() {
    var myPlayer = this,
        options = {};
    options.playlistId = '4845949311001';
    options.playlistVideoId = '4845831078001'
    myPlayer.catalog.autoFindAndLoadMedia(options);
  });
</script>

transformVideoResponse () -Methode

Das transformVideoResponse(data) Methode konvertiert ein rohes Videoobjekt von einem der beiden CMS API oder der Wiedergabe-API in ein Format, das mit dem Player und den Browsern kompatibel ist. Dies umfasst die Dauer und die https-Bildkompatibilität. Außerdem werden die Quellen neu angeordnet, um sicherzustellen, dass zuerst versucht wird, die Quellen zu ermitteln, von denen erwartet wird, dass sie auf dieser Plattform das höchste Seherlebnis bieten.

Parameter

  • data: Ein rohes Videoobjekt, das aus a analysiert wurde catalog API-Antwort.

Ein Beispiel für die Verwendung der Methode lautet:

 for (var i=0; i<limitValue; i++) {
  	mediaData.videos[i] = myPlayer.catalog.transformVideoResponse (mediaData.videos[i], myPlayer);
  }

Das vollständige Codebeispiel finden Sie in der Wiedergabe-API-Paging Dokument.

Wert zurückgegeben

Ein Objekt, das mit der Player- und Browserumgebung konsistenter ist.

catalog Veranstaltungen

Es gibt drei Katalogevents, auf die Sie hören können. Sie sind:

  • catalog_request: Ein Ereignis, das ausgelöst wird, wenn eine Anfrage an die catalog gemacht wird.

  • catalog_response: Ein Ereignis, das ausgelöst wird, wenn eine Antwort von der catalog Ist angekommen. Die JSON-formatierte Antwort enthält die Rohdaten der catalog API zurückgegeben. Siehe die Antwortinformationen Inhalt später in diesem Abschnitt für weitere Details.

  • catalog_request_error: Ein Ereignis, das ausgelöst wird, wenn bei der Interaktion mit dem ein Fehler auftritt catalog.

Im Folgenden wird das Konsolenprotokoll der Ereignisse von einer Anforderung an und eine Antwort von der angezeigt catalog::

Anforderungs- und Antwortereignisobjekte

Sie sehen viele Standardeigenschaften eines Ereignisobjekts. Von besonderem Interesse für catalog Ereignisse ist type und url.

Das Folgende zeigt ein Konsolenprotokoll von a catalog Anforderungsfehlerobjekt:

Fehlerereignisobjekt

Antwortinformationen

Das catalog_response Ereignisobjekt enthält einen JSON-formatierten response Eigenschaft, die die Rohdaten aus dem enthält catalog API-Antwort. Im Folgenden wird das Konsolenprotokoll der Antworteigenschaft angezeigt:

Antwortereignisobjekte

Um tatsächlich Daten aus der Antworteigenschaft zu verwenden, müssen Sie die JSON-formatierte Rohzeichenfolge in ein Objekt analysieren. Das Folgende zeigt den Zugriff auf die name Eigentum:

myPlayer.on('catalog_response',function(evt){
  var api_response = JSON.parse(evt.response.response);
  console.log('api_response.name',api_response.name);
});

Unten ist der JSON eines Beispiels response Eigentum:

{
  "description": null,
  "poster_sources": [{
    "src": "http://brightcove.vo.llnwd.net/e1/pd/1507807800001/1507807800001_4784518686001_4784463159001-vs.jpg?pubId=1507807800001&videoId=4784463159001"
  }, {
    "src": "https://brightcove.hs.llnwd.net/e1/pd/1507807800001/1507807800001_4784518686001_4784463159001-vs.jpg?pubId=1507807800001&videoId=4784463159001"
  }],
  "tags": [],
  "cue_points": [{
    "id": "4784326156001",
    "name": "First cue point",
    "type": "CODE",
    "time": 3.0,
    "metadata": "5;This is the first CTA;http://www.brightcove.com",
    "force_stop": false
  }, {
    "id": "4784326155001",
    "name": "Second cue point",
    "type": "CODE",
    "time": 13.0,
    "metadata": "3;This is the second CTA;http://docs.brightcove.com/",
    "force_stop": false
  }],
  "custom_fields": {},
  "account_id": "1507807800001",
  "sources": [{
    "avg_bitrate": 513000,
    "width": 480,
    "duration": 21098,
    "size": 1357587,
    "stream_name": "mp4:1507807800001/1507807800001_4784519206001_4784463159001.mp4&1483545600000&c190f37500f15373c964858e54b4e2a1",
    "codec": "H264",
    "asset_id": "4784519206001",
    "container": "MP4",
    "height": 270,
    "app_name": "rtmp://brightcove.fcod.llnwd.net/a500/e1/uds/rtmp/ondemand"
  }, {
    "avg_bitrate": 513000,
    "width": 480,
    "src": "http://brightcove.vo.llnwd.net/e1/uds/pd/1507807800001/1507807800001_4784519206001_4784463159001.mp4?pubId=1507807800001&videoId=4784463159001",
    "size": 1357587,
    "height": 270,
    "duration": 21098,
    "container": "MP4",
    "codec": "H264",
    "asset_id": "4784519206001"
  }, {
    "avg_bitrate": 1804000,
    "width": 960,
    "src": "https://brightcove.hs.llnwd.net/e1/uds/pd/1507807800001/1507807800001_4784519221001_4784463159001.mp4?pubId=1507807800001&videoId=4784463159001",
    "size": 4752091,
    "height": 540,
    "duration": 21098,
    "container": "MP4",
    "codec": "H264",
    "asset_id": "4784519221001"
  }, {
    "type": "application/x-mpegURL",
    "src": "http://c.brightcove.com/services/mobile/streaming/index/master.m3u8?videoId=4784463159001&pubId=1507807800001",
    "container": "M2TS",
    "codec": "H264"
  }, {
    "type": "application/x-mpegURL",
    "src": "https://secure.brightcove.com/services/mobile/streaming/index/master.m3u8?videoId=4784463159001&pubId=1507807800001&secure=true",
    "container": "M2TS",
    "codec": "H264"
  }],
  "name": "small-waterfall.mp4",
  "reference_id": null,
  "long_description": null,
  "duration": 21098,
  "economics": "AD_SUPPORTED",
  "published_at": "2016-03-03T14:56:42.982Z",
  "text_tracks": [],
  "updated_at": "2016-05-03T18:53:43.573Z",
  "thumbnail": "http://brightcove.vo.llnwd.net/e1/pd/1507807800001/1507807800001_4784518327001_4784463159001-th.jpg?pubId=1507807800001&videoId=4784463159001",
  "poster": "http://brightcove.vo.llnwd.net/e1/pd/1507807800001/1507807800001_4784518686001_4784463159001-vs.jpg?pubId=1507807800001&videoId=4784463159001",
  "link": null,
  "id": "4784463159001",
  "ad_keys": "key1%3Dvalue1%26key2%3Dvalue2",
  "thumbnail_sources": [{
    "src": "http://brightcove.vo.llnwd.net/e1/pd/1507807800001/1507807800001_4784518327001_4784463159001-th.jpg?pubId=1507807800001&videoId=4784463159001"
  }, {
    "src": "https://brightcove.hs.llnwd.net/e1/pd/1507807800001/1507807800001_4784518327001_4784463159001-th.jpg?pubId=1507807800001&videoId=4784463159001"
  }],
  "created_at": "2016-03-03T14:56:42.982Z"
}

catalog Fehler

Das catalog wird Fehler auslösen, wenn beim Abrufen oder ersten Abspielen des Videos oder der Wiedergabeliste Probleme auftreten. Die Fehler sind unten aufgeführt.

catalog Error Beschreibung
Video ID as string Der Player wurde mit einer ungültigen Video Cloud-Konto-ID konfiguriert.
VIDEO_CLOUD_ERR_RESOURCE_NOT_FOUND Die Standard-Wiedergabelisten-ID ist ungültig.
VIDEO_CLOUD_ERR_VIDEO_NOT_FOUND Das Standardvideo ist ungültig.
VIDEO_CLOUD_ERR_NOT_PLAYABLE Das Video Cloud-Video kann nicht abgespielt werden. Häufige Ursachen für diesen Fehler sind das Deaktivieren einer Video-ID oder das Ablaufen der geplanten Verfügbarkeit.

Griff 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. Dieses Problem kann auftreten, wenn die Geo-Filterung verwendet wird, ein Video nicht veröffentlicht wird, ein Video außerhalb des Zeitplanungsbereichs liegt oder in einem anderen Konto. Möglicherweise stellen Sie fest, dass Ihr Code kein Problem enthält, das Problem kann jedoch vom Browser abhängen. Testen Sie es daher gründlich.

Wenn dies in Ihrer Implementierung möglich ist, sollte Ihr Fehlerbehandlungscode das verwenden one() Ereignisbehandlungsmethode zum Abhören der bc-catalog-error in einem separaten Codeblock anstatt innerhalb der ready() Sektion.

Im folgenden Codebeispiel sehen Sie einen Codeblock, der das behandelt bc-catalog-error (Zeile 62) und auch einen Codeblock für ready (Zeile 71).

  <video-js id="myPlayerID"
    data-account="1486906377"
    data-player="77a8e8b7-e8d1-4a3c-8a1b-292ba8233006"
    data-embed="default"
    data-video-id="4040394419001"
    controls=""></video-js>

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

  <script src="https://players.brightcove.net/1486906377/77a8e8b7-e8d1-4a3c-8a1b-292ba8233006_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];
        console.log('bc-catalog-error:', specificError);
      };
    });

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

Benutzerdefinierten Fehler verwenden

Die beste Lösung, um eine bestimmte zu behandeln bc-catalog-error Möglicherweise wird ein benutzerdefinierter Fehler verwendet. Der folgende Code zeigt ein Plugin, das einen benutzerdefinierten Fehler verwendet, um einen Betrachter über ein inaktives Video zu informieren, warum das Video nicht abgespielt wird:

videojs.registerPlugin('inactiveErrorCheck', function(options) {
  var myPlayer = this;
  myPlayer.one('bc-catalog-error', function(){
    var specificError;
    myPlayer.errors({
      'errors': {
        'inactive-error': {
          'headline': options.inactiveMessage,
          '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-error'});
      };
    };
  });
});

Der Code zur Verwendung des Plugins unter Verwendung einer In-Page-Embed-Player-Implementierung lautet wie folgt:

<video-js id="myPlayerID" data-video-id="5350958927001"
  data-account="1507807800001"
  data-player="default"
  data-embed="default"
  data-application-id=""
  controls=""></video-js>
<script src="https://players.brightcove.net/1507807800001/default_default/index.min.js"></script>

<script type="text/javascript" src="inactive-error-check.js"></script>

<script type="text/javascript">
  videojs.getPlayer('myPlayerID').ready(function() {
    var myPlayer = this,
    options =[];
    options.inactiveMessage = "This is the message to display for inactive videos.";
    myPlayer.inactiveErrorCheck(options);
});</script>

Wenn Sie das Plugin über das hinzufügen PLUGINS In diesem Abschnitt in Studio würden Sie die richtige URL angeben, unter der Sie Ihren JavaScript-Code gespeichert haben, und dann in der Name, Option (JSON) Eintrittsangebot:

  • Name: inactiveErrorCheck

  • Optionen: { "inactiveMessage": "This is the message to display for inactive videos." }

Behandeln Sie Geofilterungsfehler

Wie bereits erwähnt, kann die Geofilterung zu Katalogfehlern führen. Sie können sehr ähnlich mit dem umgehen, was gerade gezeigt wurde. Es wird ein Code angezeigt, der eine Meldung unter den "fehlerhaften" Spieler einfügt, wie hier gezeigt:

Geofehler

Der folgende Code fängt den Katalogfehler ab und prüft dann, ob es sich um ein Geofilterungsproblem handelt. Wenn dies der Fall ist, wird auf der HTML-Seite direkt unter dem Player eine entsprechende Meldung angezeigt, wie im Screenshot gezeigt.

<video-js id="myPlayerID"
  data-video-id="4040394419001"
  data-account="1486906377"
  data-player="XJhO7JGxY"
  data-embed="default"
  data-application-id=""
  controls=""
  width="640"
  height="360"></video-js>
<script src="//players.brightcove.net/1486906377/XJhO7JGxY_default/index.min.js"></script>
<br>
<div id="textTarget"></div>

<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];
      console.log('myPlayer.catalog.error', myPlayer.catalog.error);
      if (specificError !== undefined & specificError.error_subcode == 'CLIENT_GEO') {
        document.getElementById('textTarget').innerHTML = '<strong>The video you are trying to watch cannot be viewed from your current country or location.</strong>';
      };
    };
  });

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

Behandeln Sie den IP-Einschränkungsfehler

Der folgende Code entspricht dem oben gezeigten Code für die Geofilterung, mit Ausnahme von IP-Einschränkungen:

<video-js id="myPlayerID"
  data-video-id="5981021521001"
  data-account="5977711152001"
  data-player="iYNDnCGt9"
  data-embed="default"
  data-application-id=""
  controls=""
  width="640"
  height="360"></video-js>
<script src="//players.brightcove.net/5977711152001/iYNDnCGt9_default/index.min.js"></script>
<br>
<div id="textTarget"></div>

<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];
      console.log('myPlayer.catalog.error', myPlayer.catalog.error);
      if (specificError !== undefined & specificError.error_subcode == 'CLIENT_IP') {
        document.getElementById('textTarget').innerHTML = '<strong>The video you are trying to watch cannot be viewed from your current IP address.</strong>';
      };
    };
  });

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

Anforderungslimit

Da die API-Antworten zwischengespeichert werden, gibt es keine Ratenbeschränkung für catalog Anfragen.