Überblick über den Spielerloader
Für Benutzer von Brightcove Player, die weder die In-Page-Einbettung noch die Iframe-Player-Implementierungen kopieren und einfügen möchten, ist dieses Modul in ihre Webanwendung gebündelt und bietet die Möglichkeit, Brightcove Players zu verwenden, ohne Integrationscode schreiben zu müssen, um ihre Spieler herunterzuladen und einzubetten. Dieses Tool löst das Problem mit einer Brightcove-Bibliothek, die jeden veröffentlichten Brightcove Player herunterladen und in das DOM einbetten kann.
Diese Bibliothek unterstützt gängige immergrüne Browser, Chrome, Firefox, Edge und Safari.
Dieses Dokument enthält im Wesentlichen Beispielverwendungen des Brightcove Player Loaders. Ausführliche Details finden Sie im Brightcove-/Player-Loader der Bibliothek GitHub Repo.
Es gibt ein Webpack, das mit Brightcove Player verwendet werden kann. Details dazu finden Sie in der player-loader-webpack-plugin GitHub-Repository.
Installation
Die Bibliothek wird mit NPM installiert, wobei Folgendes verwendet wird:
npm install --save @brightcove/player-loader
Einschließlich der Bibliothek
Für verschiedene Methoden, um die Bibliothek für Ihre Verwendung einzubeziehen, lesen Sie bitte das GitHub-Repo für die Bibliothek.
Implementierung mit einem Versprechen
Sie können ein JavaScript-Versprechen mit der Bibliothek verwenden. Versprechungen sind nicht erforderlich, damit diese Bibliothek funktioniert, aber sie werden empfohlen. Standardmäßig sucht diese Bibliothek nach einem globalen Versprechen. Sie können jedoch explizit eine Promise-Implementierung über den Promise
Parameter bereitstellen, der später in diesem Dokument beschrieben wird.
Im Folgenden wird eine Implementierung der Bibliothek mit einem Promise dargestellt. Ein Schlüsselkonzept ist, dass Sie einen Verweis auf den Spieler erhalten, indem Sie var myPlayer = success.ref;
im then
Abschnitt zur Abwicklung des Versprechens verwenden:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Untitled Document</title>
<style>
.video-js {
height: 344px;
width: 610px;
}
</style>
</head>
<body>
<script src="brightcove-player-loader.min.js"></script>
<div id="theDiv">
</div>
<script>
brightcovePlayerLoader({
refNode: document.querySelector('#theDiv'),
accountId: '1752604059001',
playerId: 'wHBRh9M3o',
videoId: '4607357817001'
})
.then(function(success) {
var myPlayer = success.ref;
console.log('success', success);
myPlayer.on('loadedmetadata',function(){
myPlayer.muted(true);
myPlayer.play();
});
})
.catch(function(error) {
console.log('error', error);
})
</script>
</body>
</html>
Implementierung mit Callbacks
Sie können den Playerloader auch mithilfe von Callbacks über die onSuccess
und onFailure
Callback-Funktionen implementieren.
Im Folgenden wird eine Implementierung der Bibliothek unter Verwendung von Callbacks dargestellt. Ein Schlüsselkonzept ist, dass Sie einen Verweis auf den Player erhalten, indem Sie var myPlayer = success.ref;
in der onSuccess
Callback-Funktion verwenden:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Untitled Document</title>
<style>
.video-js {
height: 344px;
width: 610px;
}
</style>
</head>
<body>
<script src="brightcove-player-loader.min.js"></script>
<div id="theDiv">
</div>
<script>
brightcovePlayerLoader({
refNode: document.querySelector('#theDiv'),
accountId: '1752604059001',
playerId: 'wHBRh9M3o',
videoId: '4607357817001',
onSuccess: function(success) {
var myPlayer = success.ref;
console.log('success', success);
myPlayer.on('loadedmetadata',function(){
myPlayer.muted(true);
myPlayer.play();
});
},
onFailure(error) {
console.log('error', error);
}
});
</script>
</body>
</html>
Verwendung von Wiedergabebeschränkungen
Zur Verwendung von Wiedergabeeinschränkungen mit dem Brightcove-Player-Loader müssen Sie lediglich einen Verweis auf den Player abrufen und das JSON-Web-Token (JWT) an diesen übergeben.
Hier ist ein Beispiel:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Brightcove Player</title>
<meta charset="UTF-8">
<script crossorigin
src="player-loader/dist/brightcove-player-loader.min.js"></script>
</head>
<body>
<main>
<h1>Brightcove Player</h1>
<div id="theDiv"></div>
</main>
</body>
<script>
var myJwtToken = "your jwt token";
var myVideoId = "your video Id";
// +++ Add the Brightcove Player +++
brightcovePlayerLoader({
refNode: document.querySelector('#theDiv'),
accountId: 'your account Id',
playerId: 'your player Id',
onSuccess: function (success) {
// Get a reference to the BC Player
var myPlayer = success.ref;
console.log('success', success);
myPlayer.ready(function () {
// This should ideally be set in the player configuration
myPlayer.catalog.setPolicyKey(null);
myPlayer.catalog.setBcovAuthToken(myJwtToken);
myPlayer.catalog.get({
id: myVideoId,
type: 'video'
}).
then(function (data) {
myPlayer.catalog.load(data);
myPlayer.muted(true);
myPlayer.play();
}).
catch(function (error) {
throw new Error(error);
});
});
},
onFailure(error) {
console.log('error', error);
}
});
</script>
</html>
Verfügbare Parameter
- Name:
accountId
-
Datentyp: string | number
Beschreibung:
Eine Video Cloud-Konto-ID. - Name:
applicationId
-
Datentyp: string
Beschreibung:
Die Anwendungs-ID, die auf die generierte Einbettung angewendet werden soll. - Name:
catalogSearch
-
Datentyp: string | Objekt
Beschreibung:
Eine durchzuführende Video Cloud-Katalogsuche. Dies kann eine einfache Stringsuche oder ein Objekt sein, das dergetSearch()
Catalog-Methode entspricht. Wenn ein Wert ohne Zeichenfolge angegeben wird, der nicht als JSON serialisierbar ist, wird dieser Parameter ignoriert. - Name:
catalogSequence
-
Datentyp: Array | Objekt
Beschreibung:
Eine durchzuführende Video Cloud Catalog-Sequenz. Weitere Informationen finden Sie in dergetLazySequence()
Catalog-Methode. Wenn ein Wert ohne Zeichenfolge angegeben wird, der nicht als JSON serialisierbar ist, wird dieser Parameter ignoriert. - Name:
embedId
-
Datentyp:string
Beschreibung:
Die Brightcove Player-Einbettungs-ID für den Player. Der Standardwert ist'default'
. Der Standardwert ist für die meisten Benutzer korrekt. - Name:
embedOptions
-
Datentyp: Objekt
Beschreibung:
Wird verwendet, um bestimmte Optionen für die Einbettungsgenerierung bereitzustellen. Dazu gehören:embedOptions.pip
boolescher Wert Wenn true
, wird die Einbettung in ein<div class="vjs-pip-container">
Element umbrochen. Dies sollte verwendet werden, wenn Sie Unterstützung für das Brightcove Picture-in-Picture-Plugin benötigen. Der Standardwert istfalse
.embedOptions.playlist
boolescher Wert Wenn true
, fügt nach der Einbettung ein<div class="vjs-playlist">
Element hinzu. Dies sollte verwendet werden, wenn Sie Unterstützung für das Brightcove Playlist UI-Plugin benötigen. Der Standardwert istfalse
.embedOptions.responsive
boolean | Objekt Passen Sie den Einbettungscode an, um mithilfe des intrinsic ratio Wrapper-Ansatz. Wenn der Wert wahr ist, wird ein responsiver Einbettungscode mit einem Seitenverhältnis von 16:9 erstellt, der seinen Container füllt. Der Standardwert ist false
.
Ein Objekt kann bereitgestellt werden, um dies mit den folgenden Untereigenschaften anzupassen:aspectRatio
: Eine Zeichenfolge, die verwendet wird, um das Seitenverhältnis auf einen anderen Wert als 16:9 anzupassen (z. B.maxWidth
: Eine Zeichenfolge, die verwendet wird, um die maximale Breite des Spielers einzuschränken. Dies sollte CSS-Einheiten wie Pixel (z. B. „960px“) verwenden.
embedOptions.unminified
boolescher Wert Wenn true
, wird die nicht minifizierte Version des Players verwendet. Dies kann für Debugging-Zwecke nützlich sein, kostet jedoch einen größeren Player-Download. Nicht für die Produktion empfohlen! Der Standardwert istfalse
. - Name:
embedType
-
Datentyp: string
Beschreibung:
Der zu erzeugende Einbettungscodetyp. Der Wert dieses Parameters muss einer der folgenden sein:'in-page'
oderbrightcovePlayerLoader.EMBED_TYPE_IN_PAGE
: Dies wird auch als erweiterter Einbettungscode bezeichnet und injiziert den Player direkt in die Webseite der obersten Ebene.'iframe'
oderbrightcovePlayerLoader.EMBED_TYPE_IFRAME
: Dies wird auch als grundlegender Einbettungscode bezeichnet und injiziert den Player als <iframe> Element.
'in-page'
. - Name:
onEmbedCreated
-
Datentyp: Funktion (Element)
Beschreibung:
Ein Rückruf zum Anpassen des Einbettungselements (entweder)video-js
Element oder einiframe
Element), bevor es in das DOM eingefügt oder als Ergebnis von angepasst wirdembedOptions
und bevor der Player heruntergeladen und initialisiert wird. Das embed-Element kann mutiert sein, oder wenn dieser Callback ein Element zurückgibt, wird dieses Element als embed-Element verwendet. Mögliche Anwendungsfälle sind das Hinzufügen/Entfernen von Attributen oder das Hinzufügen von untergeordneten Elementen wie Quellen oder Tracks. - Name:
onFailure
-
Datentyp: Funktion (Fehler)
Beschreibung:
Eine Rückruffunktion, die die Behandlung von Fehlern ermöglicht, wennPromise
ist nicht verfügbar oder nicht erwünscht. Wenn Sie diese Funktion übergeben, wird verhindert, dass einPromise
zurückgegeben wird. Es erhält ein einzelnesError
Objekt als Argument. Der Rückgabewert dieser Funktion wird ignoriert. - Name:
onSuccess
-
Datentyp: Funktion (Objekt)
Beschreibung:
Eine Rückruffunktion, mit der Erfolge behandelt werden können, wennPromise
ist nicht verfügbar oder nicht erwünscht. Wenn Sie diese Funktion übergeben, wird verhindert, dass einPromise
zurückgegeben wird. Es erhält ein einzelnesSuccess
Objekt als Argument. Der Rückgabewert dieser Funktion wird ignoriert. - Name:
options
-
Datentyp: Objekt
Beschreibung:
Ein Video.js Optionen Objekt während des Erstellungsprozesses des Spielers zu bestehen. Diese Optionen haben Vorrang vor allen Einstellungen, die in der Brightcove Player-Konfiguration angegeben sind. Dieser Parameter kann nicht mit iframe-Einbettungen verwendet werden. - Name:
playerId
-
Datentyp: string
Beschreibung:
Eine Brightcove Player-Spieler-ID. Der Standardwert ist'default'
. - Name:
playlistId
-
Datentyp: string | number
Beschreibung:
Eine Video Cloud-Wiedergabelisten-ID oder eine Wiedergabelisten-Referenz-ID. - Name:
playlistVideoId
-
Datentyp: string | number
Beschreibung:
Eine Video Cloud-Video-ID, die in der resultierenden Wiedergabeliste gefunden würde, die von angegeben wurde
playlistId
. Dieser Parameter wird ignoriert, wenn erplaylistId
fehlt. - Name:
Promise
-
Datentyp: Funktion (Funktion)
Beschreibung:
Wird verwendet, um explizit a bereitzustellenPromise
Implementierung. Falls vorgesehen, wird dies anstelle eines globalen verwendetPromise
. Der Standardwert istwindow.Promise
- Name:
refNode
-
Datentyp: Element | string
Beschreibung:
Required
Das DOM-Element, in das der Player eingebettet wird. Wenn es nicht als DOM-Element angegeben wird, kann es als String angegeben werden, an den übergeben wirddocument.querySelector
. - Name:
refNodeInsert
-
Datentyp: string
Beschreibung:
Die Art und Weise, in der der Player relativ zum Referenz-DOM-Element eingefügt wird (angegeben durch refNode). Der Wert dieses Parameters muss einer der folgenden sein:'append'
oderbrightcovePlayerLoader.REF_NODE_INSERT_APPEND
: Der Spieler wird das letzte untergeordnete Element des Referenzknotens sein.'prepend'
oderbrightcovePlayerLoader.REF_NODE_INSERT_PREPEND
: Der Player wird das erste untergeordnete Element des Referenzknotens sein.'before'
oderbrightcovePlayerLoader.REF_NODE_INSERT_BEFORE
: Der Spieler wird vorheriges Geschwister des Referenzknotens sein.'after'
oderbrightcovePlayerLoader.REF_NODE_INSERT_AFTER
: Der Spieler wird das nächste Geschwister nach dem Referenzknoten sein.'replace'
oderbrightcovePlayerLoader.REF_NODE_INSERT_REPLACE
: Der Referenzknoten wird entfernt und durch den Player ersetzt.
- Name:
videoId
-
Datentyp: string | number
Beschreibung:
Eine Video Cloud-Video-ID oder eine Video-Referenz-ID.