Vorbereitung vor dem Unterricht: Live-Streaming-Protokoll https://www.cnblogs.com/yangchin9/p/14930874.html Zusammenfassung: Sehen Sie sich Live-Übertragungen und Videowiedergaben auf der H5-Seite an. Während der Entwicklung habe ich Plugins wie video.js und mui-player verwendet, aber festgestellt, dass diese Video-Plugins nicht mit mobilen Endgeräten kompatibel sind. Schließlich habe ich ein Plugin mit guter Kompatibilität auf mobilen Endgeräten gefunden – vue-video-player Szenario: Mobile H5-Seite, das Projekt wurde mit Vue erstellt, verwendet das HLS-Protokoll und endet mit einem M3U8-Livestream 1. Installieren Sie den Vue-Video-PlayerUm HLS-Videostreams abzuspielen, müssen Sie das Plug-In videojs-contrib-hls installieren. Um RTMP-Videostreams abzuspielen, müssen Sie das Plug-In videojs-flash installieren. Wenn das HLS-Plug-In und das Flash-Plug-In gleichzeitig verwendet werden, muss das Flash-Plug-In vor dem HLS-Plug-In eingeführt werden. (Im Dokument heißt es, dass das HLS-Plug-In bei der Installation von vue-video-player automatisch installiert wird, es ist jedoch nicht in Betrieb, daher sollten Sie es manuell installieren!) Installationsmethode 1: CDN-Methode, fügen Sie die Datei direkt in den HTML-Dateiheader ein: <link rel="stylesheet" href="Pfad/zu/video.js/dist/video-js.css"/> <script type="text/javascript" src="Pfad/zu/video.min.js"></script> <script type="text/javascript" src="Pfad/zu/vue.min.js"></script> <script type="text/javascript" src="Pfad/zu/Dist/vue-video-player.js"> </Skript> <script type="text/javascript"> Vue.use(Fenster.VueVideoPlayer) </Skript> Installationsmethode 2: Klicken Sie hier, um den Code anzuzeigen NMP-Installations-Plugin: npm installiere vue-video-player --save npm installiere videojs-contrib-hls --save Führen Sie die grundlegende Stildatei in main.js ein: // VideoPlayer-Stil importieren importiere 'video.js/dist/video-js.css' Import auf Anfrage: importiere 'videojs-contrib-hls' importiere { videoPlayer } von 'vue-video-player' Komponenten: VideoPlayer }, Weltweiter Import: Vue von „vue“ importieren Importieren Sie VueVideoPlayer von „vue-video-player“. // Importieren Sie benutzerdefinierte Stile und fügen Sie den entsprechenden Klassennamen in <video-player> hinzu, z. B. video-player-custom // importiere „vue-video-player/src/custom-theme.css“ Vue.use(VueVideoPlayer, /* { Optionen: globale Standardkonfiguration, Ereignisse: globale VideoJS-Ereignisse}*/) 2. Verwenden Sie den Vue-Video-Player<Vorlage> <!-- playsinline: Stellt den Player so ein, dass er auf Mobilgeräten nicht im Vollbildmodus angezeigt wird [ Boolean, Standard: false ] --> <!-- customEventName: benutzerdefinierter Statusänderungsereignisname [String, Standard: „statechanged“] --> <Videoplayer Klasse = "Videoplayer-Benutzerdefiniert" ref="Videoplayer" :Optionen="Spieleroptionen" :playsinline="wahr" customEventName="benutzerdefinierterStateChangeEventName" @play="beiPlayerPlay" @pause="beiPlayerPause" @ended="beiSpielerende" @ready="Spieler bereit" @statechanged="Spielerstatus geändert" @playing="beimSpielerspielen" @waiting="beimWarten auf den Spieler" @loadeddata="aufSpielerLoadeddata" @timeupdate="Zeitupdate" @canplay="aufSpielerKannplay" @canplaythrough="aufSpielerKannplaythrough"> </Videoplayer> </Vorlage> <Skript> importiere 'videojs-contrib-hls' importiere { videoPlayer } von 'vue-video-player' Standard exportieren { Komponenten: Videoplayer }, Daten() { zurückkehren { Spieleroptionen: { // Ist es stummgeschaltet: true, // Die Standardeinstellung ist Englisch, auf Chinesisch eingestellt: 'zh-CN', // Wiedergabegeschwindigkeit. Nachdem Sie diese angegeben haben, zeigt Video.js ein Steuerelement (ein Steuerelement der Klasse vjs-playback-rate) an, mit dem der Benutzer die Wiedergabegeschwindigkeit auswählen kann playbackRates: [0,5, 1,0, 1,5, 2,0], // Setzen Sie den Player in den Smooth-Modus und verwenden Sie diesen Wert bei der Berechnung der dynamischen Größe des Players, wobei das Seitenverhältnis aspectRatio angegeben wird: '4:3', // Kompatibilitätsreihenfolge, der Standardwert ist ['html5'], andere registrierte Technologien werden nach dieser Technologie in der Reihenfolge hinzugefügt, in der sie registriert wurden. techOrder: ['html5'], // Entspricht einer Reihe von <source>-Untertags im nativen <video>-Tag, wodurch eine sanfte Herabstufung erreicht werden kann; das Typattribut gibt den MIME-Typ der Medienressourcenquellen an: [ //{ //Typ: "video/mp4", //Quelle: "" //}, //{ //Typ: "rtmp/flv", //Quelle: "" //}, { Typ: "application/x-mpegURL", Quelle: "https://live.cgtn.com/1000/prog_index.m3u8" }, ], // Video-Coverposter: require('./icon/cover.jpg'), } } }, berechnet: { //Plugin-Knoten wird verwendet, um benutzerdefinierte Schaltflächenereignisse hinzuzufügen player() { gib dies zurück.$refs.videoPlayer.player } }, montiert() {}, Methoden: { // Rückruf abspielen onPlayerPlay(player) { }, // Rückruf anhalten onPlayerPause(player) { //konsole.log(Spieler) }, //Videowiedergabe beendet callback onPlayerEnded(player) { //konsole.log(Spieler) }, // Änderungen des readyState am DOM-Element führen dazu, dass die Wiedergabe gestoppt wird onPlayerWaiting(player) { //konsole.log(Spieler) }, // Die Wiedergabe hat begonnen callback onPlayerPlaying(player) { //konsole.log(Spieler) }, // Wenn der Player an der aktuellen Wiedergabeposition Daten herunterlädt, wird onPlayerLoadeddata($event) ausgelöst { //Konsole.log($Ereignis) }, // Wird ausgelöst, wenn sich die aktuelle Wiedergabeposition ändert. beiPlayerTimeupdate($event) { //Konsole.log($Ereignis) }, //Der readyState des Mediums ist HAVE_FUTURE_DATA oder höher onPlayerCanplay($event) { //Konsole.log($Ereignis) }, // Der ReadyState des Mediums ist HAVE_ENOUGH_DATA oder höher. Dies bedeutet, dass die gesamte Mediendatei ohne Pufferung abgespielt werden kann. beiSpielerKannDurchspielen($event) { //Konsole.log($Ereignis) }, //Rückruf zur Änderung des Wiedergabestatus playerStateChanged($event) { //Konsole.log($Ereignis) }, //Binden Sie einen Listener an den Bereitschaftszustand der Komponente. Der Unterschied bei Ereignis-Listenern besteht darin, dass die Funktion sofort ausgelöst wird, wenn das Ready-Ereignis bereits aufgetreten ist. . SpielerReadied($event) { //Konsole.log($Ereignis) }, } } </Skript> <style lang="scss" scoped> .video-player-custom{ Breite: 100 %; Höhe: 180px; // vidoeUI schreibt /deep/ .video-js{ neu Breite: 100 %; Höhe: 100%; Polsterung: 0; Überlauf: versteckt; // Spieler.vjs-tech{ Objekt-Passung: Abdeckung; } // Wiedergabetaste.vjs-big-play-button { Position: absolut; oben: 50 %; links: 50%; Breite: 2em; Höhe: 2em; Rand oben: -1em; Rand links: -1em; Schriftgröße: 2em; Zeilenhöhe: 2em; Randradius: 50 %; Hintergrundfarbe: rgba(0,0,0,0,45); Gliederung: keine; } // Cover.vjs-poster{ Breite: 100 %; Höhe: 100%; Hintergrundgröße: Abdeckung; } } } </Stil> Dies ist das Ende dieses Artikels über die Verwendung des Vue-Video-Players zur Realisierung einer Live-Übertragung. Weitere relevante Inhalte zur Live-Übertragung mit dem Vue-Video-Player finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Neonlichteffekte mit reinem CSS3 umgesetzt
>>: HTML n Möglichkeiten zum Erreichen eines alternativen Farbcode-Beispielcodes
Vorwort Der optionale Verkettungsoperator (?.) er...
Inhaltsverzeichnis Vorwort Installieren Sie vue-i...
Dataframe ist eine neue API, die in Spark 1.3.0 e...
Erstellen Sie eine HTML-Seite mit einer ungeordnet...
Mittlerweile basieren die meisten Docker-Images a...
Was ist das? Spring Boot ist ein Unterprojekt der...
Temporäre MySQL-Tabellen sind sehr nützlich, wenn...
Wir sollten besser aufpassen, denn die HTML-Poliz...
Vorwort Derzeit ist das von meiner Firma verwende...
Wenn MySQL zig Millionen Daten abfragt, können di...
Wenn Sie viele Websites durchsuchen, werden Sie fe...
In diesem Artikel finden Sie den spezifischen Cod...
In diesem Artikel wird der spezifische Code eines...
Im Vergleich zu FTP bietet der SSH-basierte SFTP-...
HTML Code: Code kopieren Der Code lautet wie folgt...