So verwenden Sie den Vue-Video-Player für eine Live-Übertragung

So verwenden Sie den Vue-Video-Player für eine Live-Übertragung

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-Player

Um 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:
  • Implementierung der Breakpoint-Wiederaufnahme im Vue-Video-Player
  • Tutorial zur Verwendung von Vue Video und Vue-Video-Player zum Verbreiten von Videos
  • Detaillierte Erklärung zur Verwendung des Vue-Video-Players als Video-Plugin in Vue
  • Detaillierte Konfiguration des Videoplayers vue-video-player
  • Beispiel für die Verwendung des Video-Plugins vue-video-player in Vue
  • So verwenden Sie das Vue-Video-Player-Plugin für die Vue-Videowiedergabe
  • Detaillierte Erläuterung der Nutzungserfahrung mit dem Vue-Video-Player (kompatibel mit m3u8)
  • Implementierung eines Vue-Video-Players, der M3U8-Videostreams abspielt

<<:  Neonlichteffekte mit reinem CSS3 umgesetzt

>>:  HTML n Möglichkeiten zum Erreichen eines alternativen Farbcode-Beispielcodes

Artikel empfehlen

Verwendung des optionalen Verkettungsoperators von JS

Vorwort Der optionale Verkettungsoperator (?.) er...

HTML ungeordnete Liste Aufzählungspunkte mit Bildern CSS schreiben

Erstellen Sie eine HTML-Seite mit einer ungeordnet...

Fügen Sie dem Debian-Docker-Container geplante Crontab-Aufgaben hinzu

Mittlerweile basieren die meisten Docker-Images a...

Einfache Verwendung von temporären MySQL-Tabellen

Temporäre MySQL-Tabellen sind sehr nützlich, wenn...

Häufige Fehler beim Schreiben von HTML-Tags

Wir sollten besser aufpassen, denn die HTML-Poliz...

So erstellen Sie ein CentOS-Basisimage

Vorwort Derzeit ist das von meiner Firma verwende...

So zeigen Sie ein kleines Symbol vor der Browser-URL an

Wenn Sie viele Websites durchsuchen, werden Sie fe...

WeChat-Miniprogramm zur Implementierung elektronischer Signaturen

In diesem Artikel finden Sie den spezifischen Cod...

Verwenden Sie js, um ein einfaches Schlangenspiel zu schreiben

In diesem Artikel wird der spezifische Code eines...

Tabelle td Bild horizontal und vertikal zentriert Code

HTML Code: Code kopieren Der Code lautet wie folgt...