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

mysql 8.0.18 mgr-Installation und seine Umschaltfunktion

1. Systeminstallationspaket yum -y install make g...

Beispiel für Auslassungspunkte bei Überlauf von mehrzeiligem CSS-Text

Auslassungspunkte werden angezeigt, wenn mehrzeil...

Installieren und konfigurieren Sie MySQL 5.7 unter CentOS 7

Dieser Artikel testet die Umgebung: CentOS 7 64-B...

So zeigen Sie die IP-Adresse des Docker-Containers an

Ich dachte immer, Docker hätte keine IP-Adresse. ...

Welche magischen Anwendungen haben CSS-Filter?

Hintergrund Grundlegende Konzepte CSS filter wend...

Detailliertes Tutorial zum Aufbau eines lokalen Ideenaktivierungsservers

Vorwort Der Blogger verwendet die Idea IDE. Da di...

Lösung für EF (Entity Framework)-Einfüge- oder Aktualisierungsfehler

Fehlermeldung: Die Store-Update-, Insert- oder De...

Zusammenfassung zur Positionierung in CSS

Es gibt vier Arten der Positionierung in CSS, die...

Testen des Hyperlink-Öffnungsziels

Das Zielattribut eines Links bestimmt, wohin der L...

Tipps zum Erstellen zweidimensionaler Arrays in JavaScript

Erstellen eines zweidimensionalen Arrays in Js: Z...