Schritt für Schritt: Video.js-Plug-in-Generator
Der Plugin-Generator video.js erstellt die Dateien und Ordner, die zum Erstellen eines herkömmlichen Plugins erforderlich sind. Es enthält eine Testumgebung, damit Sie Ihre Änderungen bei der Entwicklung Ihres Plugins leicht sehen können. Es werden sogar die endgültigen Plugin-Dateien generiert, die Sie verwenden können, wenn Sie bereit sind, sie freizugeben.
Überblick
In diesem Thema führen Sie die folgenden Aufgaben aus:
- Richten Sie Ihre Umgebung ein
- Erstellen Sie die Plugin-Grundlage
- Zeigen Sie die Quelldateien an
- Testen Sie Ihr Plugin
- Bearbeiten Sie die JavaScript-Datei
- Bearbeiten Sie die CSS-Datei
- Erstellen Sie Ihr Plugin
- Übergeben Sie Daten an Ihr Plugin
- Empfehlungen
- Ressourcen
Eine Videoübersicht finden Sie im folgenden Abschnitt:
Richten Sie Ihre Umgebung ein
Gehen Sie folgendermaßen vor, um Ihre Umgebung für die Ausführung des Plugin-Generators einzurichten:
-
Wenn Sie es noch nicht haben, laden Sie es herunter und installieren Sie es Node.js JavaScript-Laufzeit. Dazu gehört npm, ein Paket-Ökosystem, das eine große Sammlung von Open Source-Bibliotheken enthält.
- Erstellen Sie einen lokalen Ordner auf Ihrem Computer. In diesem Beispiel erstellen wir einen Namen Prüfung. Hier werden die Generatordateien und Ihre Plugin-Dateien abgelegt.
- Überprüfen Sie die Liesmich Informationen für die video.js Plugin Generator. In dem docs Ordner, öffnen und überprüfen Sie die Video.js Plugin-Konventionen. In diesem Dokument werden die empfohlenen Regeln zum Erstellen Ihres Plugins beschrieben.
- Öffnen Sie die Terminal-App in dem Ordner, den Sie in einem vorherigen Schritt erstellt haben. Öffnen Sie für dieses Beispiel die Terminal-App in der Prüfung Mappe.
-
Installieren Sie in der Terminal-App den Plugin-Generator zusammen mit Yeoman:
$ npm install -g yo generator-videojs-plugin
Der Plugin-Generator video.js verwendet einen Yeoman-Generator, ein Gerüstwerkzeug, mit dem die Grundlage für jedes Projekt geschaffen wird. Dadurch werden die grundlegenden Dateien und Ordner eingerichtet. Sie müssen Yeoman nicht verstehen. Sie müssen es nur mit dem Plugin-Generator installieren.
Erstellen Sie die Plugin-Grundlage
In diesem Abschnitt erstellen Sie die Foundation-Ordner und -Dateien für Ihr Plugin.
-
Führen Sie im Terminal den folgenden Befehl aus:
$ yo videojs-plugin
-
Als nächstes werden Ihnen eine Reihe von Fragen zu den Details Ihres Plugins gestellt. Hier finden Sie eine Liste der Optionen sowie eine kurze Beschreibung für jede Option.
Option Beschreibung Werte für dieses Beispiel Paketumfang Optional: Dies ist nur erforderlich, wenn Sie Ihr Plugin in einer privaten npm-Organisation veröffentlichen möchten. Sie können Ihren Firmennamen hier verwenden oder leer lassen. leer Name des Plugins Geben Sie Ihrem Plugin einen Namen. Geben Sie den Namen ein Demo erstellt ein Plugin mit dem Namen videojs-demo. Demo Beschreibung Geben Sie eine Beschreibung für Ihr Plugin ein. Dies ist eine Demo Autor Das Format für Name und E-Mail-Adresse ist nicht erforderlich, wird jedoch zum Auffüllen des verwendet Autor Feld in der package.json Datei. Der Generator wird versuchen, diese Werte basierend auf Ihrem Git-Setup zu erraten, aber Sie können sie ändern. [Ihr Name] <Ihre E-Mail-Adresse> Lizenz Wählen Sie eine der Lizenzoptionen. Für Ihre privaten Plugins können Sie auswählen Nicht lizenziert. Nicht lizenziert Basic oder Advanced Plugin Das grundlegende, funktionsbasierte Plugin ist eine einfache JavaScript-Funktion. Wenn Sie in der Vergangenheit ein Video.js-Plugin geschrieben haben, sollten Sie mit dem grundlegenden Plugin-Konzept vertraut sein.
Das erweiterte, klassenbasierte Plugin wurde mit Video.js 6 eingeführt. Dieser Plugin-Typ beginnt mit einer JavaScript-Klasse, bei der es sich um eine Konstruktorfunktion handelt.
Einzelheiten finden Sie in der Video.js Plugins Readme-Dokumentation.Basis-Plugin (funktionsbasiert) CSS-Tooling Wählen Sie Ja, wenn Sie das CSS-Styling einschließen möchten. Dadurch wird eine CSS-Datei generiert. Ja Dokumentationswerkzeuge Wenn ja, enthält der Generator JSDoc und stellt einen Befehl zum Generieren der Dokumentation bereit. Nein Internationalisierte Saiten Dies ist hilfreich, wenn Sie Text haben, den Sie in verschiedene Sprachen übersetzen möchten. Das Tool bietet keine automatische Übersetzung, konvertiert jedoch Dateien aus dem JSON-Format von video.j in JavaScript. Anschließend können Sie Sprachen wie für video.js erstellen und in die Ausgabe Ihres Plugins kompilieren lassen. Nein Lint hat Dateien geändert Fügen Sie ein Linting-Tool namens videojs standard hinzu. Dieser Prozess überprüft Ihren Code auf einige häufige Fehler. Ja Vor Git Push Dies gibt Ihnen die Möglichkeit, das Verschieben in ein Git-Repository zu verhindern, wenn die ausgewählten Prüfungen fehlschlagen. Das Überprüfen der Codequalität ist ein guter Weg, um zu verhindern, dass Code übertragen wird, der nicht den Standards entspricht. Nein So sieht die Ausgabe mit den für dieses Beispiel festgelegten Werten aus:
Optionswerte - Wenn das Setup abgeschlossen ist, werden mehrere Meldungen angezeigt. Möglicherweise gibt es einige Warnmeldungen, aber keine Fehler.
Setup abgeschlossen Beachten Sie, dass der Name des Plugins lautet videojs-demo.
Zeigen Sie die Quelldateien an
In diesem Abschnitt werden die Quelldateien überprüft, die vom videojs-Generator erstellt wurden.
-
Öffnen Sie in einem Editor den obersten Ordner, in dem Sie Ihr Plugin-Projekt ablegen. Öffne das src Mappe. Hier finden Sie Folgendes:
- EIN plugin.js Datei. Diese Datei enthält den Code für Ihr Plugin.
- EIN plugin.css Datei, wenn Sie ausgewählt haben Ja zur CSS-Tooling-Option.
- (If you did not select Yes to the CSS tooling option, you can skip this step.) Öffne das src> plugin.css Datei.
Ihr Code sollte wie folgt aussehen:
/* Note: all vars must be defined here, there are no "local" vars */ :root { --main-color: red; --base-font-size: 9; --font-size: 7; } .video-js { &.vjs-demo { /* This class is added to the video.js element by the plugin by default. */ display: block; & .remove-me, & .remove-me-too, &.finally-remove-me { /* examples of postcss syntax, you probably want to remove this */ color: var(--main-color); /** * Note that you have to use calc and multiply by a value with a unit * prepending the unit like `var(--base-font-size)px` or * `calc(10 * var(--base-font-size)em` will NOT work! */ font-size: calc(var(--font-size) * 8 * var(--base-font-size) * 1px); } } }
- Öffne das src> plugin.js Datei.
Ihr Code sollte wie folgt aussehen:
- Zeilen 25-27: Rufen Sie die
onPlayerReady()
Funktion, wenn der Player bereit ist. Hier können Sie Variablen mit dem in Ihr Plugin übergebenoptions
Objekt. - Zeile 26: fügt die hinzu
vjs-demo
Klasse zu Ihrem Spieler. Standardmäßig ist dies das einzige, was der Skelettcode tut. Hier können Sie Ihrem Plugin Funktionen hinzufügen. - Zeile 48: Registriert Ihr Plugin bei video.js.
- Zeile 51: Fügt Ihrem Plugin einen Versionsparameter hinzu. Wenn Sie die ausführen npm Version Skript aktualisiert diese Variable auf die Version, auf der Sie sich befinden.
import videojs from 'video.js'; import {version as VERSION} from '../package.json'; // Default options for the plugin. const defaults = {}; // Cross-compatibility for Video.js 5 and 6. const registerPlugin = videojs.registerPlugin || videojs.plugin; // const dom = videojs.dom || videojs; /** * Function to invoke when the player is ready. * * This is a great place for your plugin to initialize itself. When this * function is called, the player will have its DOM and child components * in place. * * @function onPlayerReady * @param {Player} player * A Video.js player object. * * @param {Object} [options={}] * A plain object containing options for the plugin. */ const onPlayerReady = (player, options) => { player.addClass('vjs-demo'); }; /** * A video.js plugin. * * In the plugin function, the value of `this` is a video.js `Player` * instance. You cannot rely on the player being in a "ready" state here, * depending on how the plugin is invoked. This may or may not be important * to you; if not, remove the wait for "ready"! * * @function demo * @param {Object} [options={}] * An object of options left to the plugin author to define. */ const demo = function(options) { this.ready(() => { onPlayerReady(this, videojs.mergeOptions(defaults, options)); }); }; // Register the plugin with video.js. registerPlugin('demo', demo); // Include the version number. demo.VERSION = VERSION; export default demo;
- Zeilen 25-27: Rufen Sie die
Testen Sie Ihr Plugin
Der Plugin-Generator erleichtert das Entwickeln und Testen Ihres Plugins in einer lokalen Testumgebung. Befolgen Sie diese Schritte, um Ihr Plugin zu testen:
-
Geben Sie im Terminal den folgenden Befehl ein, um den Entwicklungsserver zu starten:
$ npm start
- Geben Sie in einem Browser Folgendes ein, um den Entwicklungsserver zu öffnen:
http://localhost:9999/
Sie sollten den Player mit einem Testvideo sehen. Der Generator bietet Ihnen einen Demo-Player, der auf der Seite ausgeführt wird. Öffnen Sie in den Browser-Entwicklertools die Elemente Registerkarte, um den HTML-Code für den Player anzuzeigen.
Browsertests - Überprüfen Sie die Elemente dieser Webseite. Sie sollten sehen, dass die
vjs-demo
Klasse wurde dem Spieler hinzugefügt. Denken Sie daran, dass wir diese Klasse dem Player im Plugin-Code hinzugefügt haben.vjs-demo klasse - Versuchen wir nun, dem Plugin Code hinzuzufügen, um die Wiedergabe des Videos automatisch zu starten, wenn der Player geladen wird. Gehe zurück zum src> plugin.js Datei in Ihrem Editor.
- In dem
onPlayerReady()
Methode, fügen Sie Code hinzu, um die Wiedergabe des Videos zu starten.const onPlayerReady = (player, options) => { player.addClass('vjs-demo'); player.play(); };
- Speichern Sie die plugin.js Datei in Ihrem Editor. Wenn Sie Ihren Browser aktualisieren, sollten Sie sehen, dass das Video in der Testumgebung abgespielt wird.
Während Sie Ihr Plugin in der entwickeln plugin.js Änderungen speichern und speichern, das Tool erstellt den Player automatisch neu und lädt ihn im Browser neu. Dies macht es einfach, Ihr Plugin zu entwickeln und zu testen.
-
Entfernen Sie die Codezeile, um das Video abzuspielen.
player.play();
Bearbeiten Sie die JavaScript-Datei
In diesem Abschnitt fügen Sie der JavaScript-Quelldatei Code hinzu, um dem Player ein Absatzelement mit benutzerdefiniertem Text hinzuzufügen.
- Kehren Sie in Ihrem Editor zum src> plugin.js Datei.
- In dem
onPlayerReady()
Funktion, Code hinzufügen, um a hinzuzufügen<p>
Element mit benutzerdefiniertem Text an den Player.const onPlayerReady = (player, options) => { player.addClass('vjs-demo'); var textDisplay = document.createElement('p'); textDisplay.className = 'vjs-text'; textDisplay.innerHTML = "Becoming a plugin developer"; player.el().appendChild(textDisplay); };
- Speichern Sie die Datei. Denken Sie daran, dass Ihre Änderungen im Testbrowser automatisch aktualisiert werden.
- Kehren Sie zum Testbrowser zurück. Sie werden sehen, dass sich im Player nichts geändert hat. Das Problem ist, dass der Text vorhanden ist, aber nicht sichtbar ist. Wir werden das als nächstes beheben.
Verwenden Sie die Entwicklungstools im Browser, um zu überprüfen, ob das Textelement zum Player hinzugefügt wurde. In dem Elemente Abschnitt, erweitern Sie den Player
<div>
Element. Sie sollten das neu hinzugefügte Absatz-Tag sehen.Absatz-Tag hinzugefügt Wir werden den Text im nächsten Abschnitt mithilfe von CSS sichtbar machen.
Bearbeiten Sie die CSS-Datei
In diesem Abschnitt fügen Sie der CSS-Quelldatei Code hinzu, um Text über dem Player anzuzeigen.
- Kehren Sie in Ihrem Editor zu zurück src> plugin.css Datei.
- Ergänzen Sie die
.vjs-text
Auswahl mit Stilen, um den benutzerdefinierten Text im Player anzuzeigen./* Note: all vars must be defined here, there are no "local" vars */ :root { --main-color: red; --base-font-size: 9; --font-size: 7; } .vjs-text { background-color: #333333; color: white; position: absolute; font-size: 2em; text-align: center; width: 100%; margin-top: 10%; }
- Speichern Sie die Datei. Denken Sie daran, dass Ihre Änderungen im Testbrowser automatisch aktualisiert werden.
- Kehren Sie zum Testbrowser zurück. Sie sollten nun den benutzerdefinierten Text sehen, der über dem Player angezeigt wird.
Über dem Player angezeigter Text - Stoppen Sie den Entwicklungsserver durch Drücken von STRG-C in der Terminal-App.
Jetzt können Sie Ihr Plugin für die Verteilung vorbereiten. Das machen wir als nächstes.
Erstellen Sie Ihr Plugin
In diesem Abschnitt erstellen Sie Ihr Plugin. Dies nimmt Ihren Quellcode und erstellt verteilbare CSS- und JavaScript-Dateien.
-
Führen Sie im Terminal den folgenden Befehl aus:
$ npm run build
Der Build verwendet Ihren ES6-Quellcode und konvertiert ihn in ES5-JavaScript-Code.
-
Erweitern Sie in Ihrem Projektordner die dist Mappe. Hier finden Sie eine verteilbare Version Ihres Plugins. Hier sollten Sie die folgenden Dateien finden (vorausgesetzt, Sie haben ausgewählt Ja für CSS-Tools):
- videojs-demo.css
- videojs-demo.js
- videojs-demo.min.js
Sie finden auch diese weniger häufig verwendeten Dateien:
- videojs-demo.cjs.js
- Das ist ein CommonJS Modul, das verwendet wird, wenn Ihr Projekt in Node benötigt wird oder wenn Sie Browserify zum Bündeln von JavaScript verwenden.
- videojs-demo.es.js
- Das ist ein ES6 Modul für moderne Projekte, die WebPack oder Rollup verwenden, um ihre Abhängigkeiten zu bündeln.
- In dem dist Ordner, öffnen Sie die videojs-demo.js Datei.
Verteilungsdateien Einige Dinge, die Sie zu dieser Verteilungsdatei beachten sollten:
- Oben in der Datei wurde ein Lizenzbanner hinzugefügt.
- Ihr Plugin wurde in a verpackt browserify Namespace. Dies bedeutet, dass es keine globalen Variablen gibt, die mit Ihrem Seitencode in Konflikt stehen könnten.
- Das Plugin registriert sich intern bei videojs. Dies bedeutet, dass Sie für einen Player mehrere Plugins erstellen können, die jeweils unabhängig voneinander funktionieren.
Übergeben Sie Daten an Ihr Plugin
Dieser Abschnitt ist optional. Sie können diesen Abschnitt überspringen, es sei denn, Sie möchten lernen, wie Sie Daten an Ihr Plugin übergeben.
-
Wir werden das benutzen
options
Eigenschaft, um Daten von unserer HTML-Seite an das Plugin zu übergeben. Einzelheiten zur Verwendung dieser Eigenschaft finden Sie in der Übergeben Sie Daten an das Plugin Dokument. -
Kehren Sie in Ihrem Editor zum src> plugin.js Datei.
-
In dem
onPlayerReady()
Funktion, fügen Sie Code hinzu, um den Textwert in der zu verwendenoptions
Eigenschaft, falls vorhanden, andernfalls verwenden Sie einen Standardtextwert.- Zeile 4: Erstellt ein Absatzelement
- Zeile 5: Weist den Textklassentyp zu
- Zeile 6: prüft ob die
displayText
Objekt existiert in deroptions
Eigentum - Zeile 7: verwendet die
displayText
Wert zum Auffüllen der Textanzeige - Zeile 9: Verwendet den Standardwert für die Textanzeige
- Zeile 13: Fügt das Anzeigetextelement zum DOM hinzu
const onPlayerReady = (player, options) => { player.addClass('vjs-demo'); var textDisplay = document.createElement('p'); textDisplay.className = 'vjs-text'; if ('displayText' in options) { textDisplay.innerHTML = options.displayText; } else { textDisplay.innerHTML = "Becoming a plugin developer"; } player.el().appendChild(textDisplay); };
- Speichern Sie die Datei und kehren Sie zum Testbrowser zurück. Sie sollten keine Änderung an der Textanzeige sehen.
- Wenn Sie dies noch nicht getan haben, fügen Sie das CSS für das hinzu
.vjs-text
Selektor aus dem Bearbeiten Sie die CSS-Datei Sektion. - Erstellen Sie Ihr Plugin. Wir werden die Dateien in der verwenden dist Ordner in einer Testwebseite.
- Erstellen Sie auf Ihrem lokalen Testserver wie MAMP einen Ordner mit dem Namen Plugin-Generator.
- Kopieren Sie in diesen Ordner die videojs-demo.css und videojs-demo.js Dateien aus dem dist Ordner und fügen Sie sie in Ihren Testserver-Ordner ein, Plugin-Generator.
- Erstellen Sie als Nächstes in diesem Ordner eine HTML-Datei mit einem Player, der unsere aufruft
demo
Plugin und übergibt einen Wert für den Anzeigetext. Wir werden diese Datei benennen testing.html.- Zeile 8: Enthält unsere Plugin-Stile.
- Zeilen 13-22: Fügen Sie unserer Webseite einen Brightcove-Player hinzu.
- Zeile 24: Enthält unsere Plugin-JavaScript-Datei.
- Zeilen 26-32: Führen Sie ein benutzerdefiniertes Seitenskript aus.
- Zeile 27: Wartet, bis der Spieler bereit ist.
- Zeile 28: erhält einen Verweis auf den Spieler.
- Zeile 29: definiert die
options
Objekt. - Zeile 30: ruft unsere
demo
Plugin und übergibt dieoptions
Objekt. Beachten Sie, dass der Name des Plugins lautetdemo
, während die Namen der Plugin-Dateien sindvideojs-demo
.
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>Passing data to the plugin</title> <link href="videojs-demo.css" rel="stylesheet"> </head> <body> <video-js id="myPlayerID" data-video-id="5977793284001" data-account="1752604059001" data-player="default" data-embed="default" data-application-id="" width="640px" height="360px" controls=""></video-js> <script src="//players.brightcove.net/1752604059001/default_default/index.min.js"></script> <script type="text/javascript" src="videojs-demo.js"></script> <script type="text/javascript"> videojs.getPlayer('myPlayerID').ready(function() { var myPlayer = this, options = {"displayText": "This data supplied at initialization"}; myPlayer.demo(options); }); </script> </body> </html>
- Führen Sie in einem Browser die aus testing.html Datei. Sie sollten sehen, dass der Anzeigetextwert aus dem Seitencode anstelle des Plugins stammt.
Daten an das Plugin übergeben
Empfehlungen
Es wird empfohlen, diesen Generator für alle Plugins zu verwenden, auch für die einfachen. Auf diese Weise haben Sie immer das gleiche Setup für alle Ihre Plugins. Es befreit Sie auch von der Aufgabe, Skripte erstellen zu müssen, um bestimmte Funktionen wie Flusen oder Minimieren auszuführen.
Mit diesem Generator können Sie sich auf die Entwicklung und das Testen Ihres Plugins konzentrieren, ohne sich um die zugrunde liegenden Tools kümmern zu müssen.
Sie können Ihr Plugin lokal halten oder auf Ihrem privaten GitHub-Repo ablegen. Das Erstellen eines Videojs-Plugins bedeutet, dass es mit dem Brightcove-Player funktioniert.
Ressourcen
Hier finden Sie eine Zusammenfassung der Ressourcen, die Sie beim Durcharbeiten dieses Schnellstarts verwenden werden. Diese Links werden auch in den folgenden Schritten bereitgestellt:
- Herunterladen und installieren: Node.js (Dies beinhaltet npm)
Verwenden Sie die Version "Empfohlen für die meisten Benutzer".
- Der video.js Generator
- Die Plugin-Konventionen für video.js
- Erste Schritte mit npm
- Das yeoman Gerüstwerkzeug