Dieses Thema hilft Ihnen bei der Entscheidung, wann und wie Sie die Embed APIs verwenden. Die Entscheidung, zwischen der Verwendung der Player-Konfigurations-APIs im Vergleich zu den Embit-APIs zu wählen, ist wichtig, und der Inhalt in diesem Dokument wird Sie bei diesen Entscheidungen unterstützen.
Warum die Embed-APIs verwenden?
Mit den Einbettungs-APIs können Sie mehrere Instanzen eines bestimmten Players erstellen. Eine gute Möglichkeit, sich diese Beziehung zwischen Spieler und Instanz vorzustellen, ist eine Eltern-Kind-Beziehung. Der Einzelspieler ist der übergeordnete Spieler, und mit den eingebetteten APIs erstellte Spieler sind untergeordnete Elemente des übergeordneten Spielers. Der übergeordnete Player verfügt über den Großteil der Eigenschaften, die Ihr Player haben soll. Anschließend können Sie mithilfe der Einbettungs-APIs Teilmengen von Eigenschaften für verschiedene untergeordnete Player anpassen. Sie können beispielsweise verschiedene Medien laden oder verschiedene Plugins und Stile mit verschiedenen untergeordneten Playern verwenden.
Die folgenden Diagramme verdeutlichen die Funktionalität. Unten wird links der Elternteil und rechts zwei untergeordnete Spieler angezeigt. Beachten Sie Folgendes:
- Das Plakat wird von beiden Kindern geerbt
- Die Form der Wiedergabetaste wird vom oberen Kind geerbt, während sie vom unteren Kind überschrieben wird
- Das oberste untergeordnete Element fügt eine Eigenschaft hinzu, in diesem Fall eine Überlagerung, über die das übergeordnete Element nicht verfügt

Ein weiteres wichtiges Merkmal dieser Eltern-Kind-Beziehung ist, dass die Vererbung noch andauert. Das folgende Diagramm zeigt ein neues Poster, das dem übergeordneten Element zugewiesen ist, und beide untergeordneten Elemente erben diese Konfigurationsänderung.

Wann sollten die eingebetteten APIs NICHT verwendet werden?
Es gibt zwar einige gute Gründe, die eingebetteten APIs zu verwenden, wenn Ihr Anwendungsfall dies erfordert, aber es gibt auch einige gute Gründe, bei normalen Spielern zu bleiben. Hier sind ein paar:
- Untergeordnete Player können nicht mit Video Cloud Studio bearbeitet werden. Sie können untergeordnete Spieler nur über die Player-Verwaltungs-API bearbeiten. Sie können den übergeordneten Player eines untergeordneten Players in Video Cloud Studio bearbeiten. Eine am übergeordneten Player vorgenommene Änderung wirkt sich jedoch auf alle untergeordneten Player aus.
- Das Veröffentlichen eines übergeordneten Spielers kann lange dauern, wenn diesem übergeordneten Spieler viele untergeordnete Spieler zugeordnet sind. Jeder untergeordnete Spieler wird separat veröffentlicht. Wenn Sie mehr als 30 untergeordnete Spieler haben, können Sie mit Verzögerungen bei der Veröffentlichung Ihres untergeordneten Spielers rechnen. Dies wäre genau der gleiche Fall wie die gleichzeitige Veröffentlichung von 30 regulären Spielern.
Aus den oben genannten Gründen kann es sinnvoll sein, zunächst normale Spieler zu verwenden und dann Einbettungen auszuprobieren, wenn Sie die Notwendigkeit von untergeordneten Spielern erkennen.
Video-Tag Daten einbetten
Es gibt Unterschiede in der Schreibweise bei Eltern- und Kinderspielern. Der Standardcode für eingebettete In-Page-Player wird in diesem Format angezeigt:
<video-js
data-account="1507807800001"
data-player="HiAdwRZ7kK"
data-embed="default"
controls=""
data-application-id=""
class="vjs-fluid"></video-js>
Das data-embed
Attribut bestimmt, ob der Spieler ein Elternteil oder ein Kind ist. Wenn der Wert ist default
, ist der Spieler ein Elternteil. Wenn der Spieler ein Kind ist, enthält das data-embed
Attribut die ID des übergeordneten Spielers. Ein Beispiel dafür folgt:
Das data-embed
Attribut bestimmt, ob der Spieler ein Elternteil oder ein Kind ist. Wenn der Wert ist default
, ist der Spieler ein Elternteil. Wenn der Spieler ein Kind ist, enthält das data-embed
Attribut die ID des übergeordneten Spielers. Ein Beispiel dafür folgt:
<video-js
data-account="1507807800001"
data-player="HiAdwRZ7kK"
data-embed="NURK56ZSV"
data-application-id=""
class="video-js" controls></video-js>
Notiere dass der data-player
, das ist die Spieler-ID, ist die gleiche, aber die data-embed
hat sich geändert von default
zur ID des Kinderspielers.
Untergeordnete Spieler-URLs
Wie unterscheidet man zwischen übergeordneten und untergeordneten Spielern? Die URLs sind unterschiedlich. Die URL eines übergeordneten Spielers lautet beispielsweise:
//players.brightcove.net/1507807800001/HiAdwRZ7kK_default/index.min.js
Nachdem Sie die eingebetteten APIs zum Erstellen eines untergeordneten Players verwendet haben, wird die ID des untergeordneten Players zur URL des übergeordneten Players hinzugefügt, wie hier gezeigt:
//players.brightcove.net/1507807800001/HiAdwRZ7kK_NURK56ZSV/index.min.js
Anwendungsfall für Eltern / Kinder
Angenommen, Sie verwenden mehrere Videoplayer. Oft sind die gemeinsamen Funktionen der Spieler nahezu gleich, aber in einigen Fällen möchten Sie den Player für spezielle Fälle optimieren. Sie können mehrere Player mithilfe der Player-Konfigurations-APIs mit erstellen POST
und PATCH
Methoden, aber dies könnte zu erheblichen Wartungsproblemen führen. Angenommen, Sie möchten das Poster für alle Spieler ändern. Dies würde bedeuten, zu verwenden PATCH
auf all die verschiedenen Spieler. Wenn Sie dagegen Kinderspieler erstellen würden, würden Sie dies nur tun PATCH
Der übergeordnete Spieler und alle untergeordneten Spieler hätten automatisch das neue Poster.
Erstellungsprozess
Wenn Sie das getan haben Schritt für Schritt: Spielerverwaltung Sie haben gesehen, wie Curl-Anweisungen verwendet werden, um HTTP-Methoden an die Player-Verwaltungs-API zu kommunizieren. Der gleiche Ansatz wird hier verwendet.
Um einen Player zu erstellen, haben Sie höchstwahrscheinlich einige HTTP-Methoden mit den Player-Konfigurations-APIs verwendet, z.
- Erstellen Sie den Player mit a
POST
zu https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players - Aktualisieren Sie den Player mit a
PATCH
zu https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/configuration - Veröffentlichen Sie den aktualisierten Player mit a
POST
zu https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/publish
Ein ähnlicher Ansatz wird für untergeordnete Spieler verwendet, die die eingebetteten APIs verwenden. Auf einem sehr hohen Niveau werden Sie:
- Erstellen Sie einen untergeordneten Spieler mit a
POST
zu https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/bettet ein. Hinweis: Untergeordnete Player, die mit den eingebetteten APIs erstellt wurden, werden bei der Erstellung selbst veröffentlicht, sodass bei der Erstellung untergeordneter Player keine Veröffentlichung erforderlich ist, sondern nur bei der Aktualisierung untergeordneter Player. - Aktualisieren Sie den untergeordneten Player mit a
PATCH
zu https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/bettet / $ EMBED_ID / configuration ein - Veröffentlichen Sie den untergeordneten Player mit a
POST
zu https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/bettet / $ EMBED_ID / Publish ein
Der folgende Inhalt beschreibt den Prozess im Detail.
Erstellen Sie einen untergeordneten Spieler
Um einen untergeordneten Player zu erstellen, verwenden Sie ein HTTP POST
Methode, wie hier gezeigt:
curl /
--header "Content-Type: application/json" /
--user $EMAIL /
--request POST /
--data '{
"media": {
"sources": [
{
"src":"http://solutions.brightcove.com/bcls/assets/videos/BirdsOfAFeather.mp4",
"type":"video/mp4"
}
],
"poster": {
"highres":"http://solutions.brightcove.com/bcls/assets/images/BirdsOfAFeather.jpg"
}
}
}' /
https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/embeds
Eine beispielhafte Antwort auf die Erstellung des untergeordneten Spielers lautet wie folgt:
{
"id": "be864624-8d85-4dfc-8fe6-4e9dd4c70417",
"url": "http://players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html",
"embed_code": "<iframe src='//players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>",
"embed_in_page": "http://players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/in_page.embed",
"preview_url": "http://preview-players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c/be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html",
"preview_embed_code": "<iframe src='//preview-players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c/be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>"
}
Hinweis: Der untergeordnete Player wird bei der Erstellung selbst veröffentlicht, sodass der untergeordnete Player nach der Erstellung nicht veröffentlicht werden muss. Sie müssen den untergeordneten Player weiterhin veröffentlichen, wenn er mit a geändert wird PATCH
Methode. Zu diesem Zeitpunkt sind die Vorschau-Informationen nicht hilfreich, da Sie den veröffentlichten untergeordneten Player sofort nach der Erstellung verwenden können.
Sie können jetzt die verwenden url
Eigenschaft vom untergeordneten Spieler, um die Ergebnisse zu sehen. Im folgenden Beispiel wurde der untergeordnete Spieler dem übergeordneten Spieler hinzugefügt, der Schritt für Schritt erstellt wurde: Spieler-Management. Sie sehen das neue Poster und Video, aber das Overlay-Plugin des übergeordneten Players ist noch vorhanden.

Aktualisieren Sie den untergeordneten Player
Um den untergeordneten Player zu aktualisieren, verwenden Sie ein HTTP PATCH
Methode. Die folgende Curl-Anweisung aktualisiert die poster
Eigentum. Es wird davon ausgegangen, dass Sie die Einstellung vorgenommen haben $EMBED_ID
Umgebungsvariable entsprechend:
curl
--header "Content-Type: application/json"
--user $EMAIL
--request PATCH
--data '{
"media": {
"poster": {
"highres":"http://solutions.brightcove.com/bcls/assets/images/Water-Splashing.jpg"
}
}
}'
https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/embeds/$EMBED_ID/configuration
Die Antwort enthält Vorschauinformationen für beide a preview_url
und preview_embed_code
Code:
{
"preview_url": "http://preview-players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c/be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html",
"preview_embed_code": "<iframe src='//preview-players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c/be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>"
}
Kinderspieler veröffentlichen
Sobald der untergeordnete Spieler geändert wurde, müssen Sie ihn veröffentlichen. Stellen Sie sicher, dass die $EMBED_ID
Die Umgebungsvariable wird festgelegt und Sie können den neu geänderten untergeordneten Player veröffentlichen:
curl
--header "Content-Type: application/json"
--user $EMAIL
--request POST
https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/embeds/$EMBED_ID/publish
Die Antwort enthält die wichtigen Informationen, die für die Verwendung des untergeordneten Players erforderlich sind, ähnlich wie beim Veröffentlichen eines Players:
{
"id": "be864624-8d85-4dfc-8fe6-4e9dd4c70417",
"url": "http://players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html",
"embed_code": "<iframe src='//players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>",
"embed_in_page": "http://players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/in_page.embed"
}
Untergeordnete Informationen anzeigen
Sie können das HTTP verwenden GET
Methode zum Abrufen der Informationen über einen untergeordneten Spieler. Eine beispielhafte Curl-Anweisung lautet:
curl
--header "Content-Type: application/json"
--user $EMAIL
--request GET
https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/embeds
Es wird eine ziemlich große Menge an JSON-Daten zurückgegeben.
Kinderspieler löschen
Sie können einen untergeordneten Spieler auch mit der Taste löschen DELETE
Methode. Hier ist eine beispielhafte Curl-Anweisung zum Löschen eines untergeordneten Spielers:
curl
--header "Content-Type: application/json"
--user $EMAIL
--request DELETE
https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/embeds/$EMBED_ID
Dies betrifft natürlich nur den untergeordneten Spieler und nicht den übergeordneten Spieler.