EXOPlayer Live-Streaming – Implementierung und nützliche Tipps
Veröffentlicht: 2018-06-08Das Abspielen von Musik und Videos mit Hilfe von Live-Streaming ist eine wichtige Aktivität für Android-Geräte. YouTube ist eine der leistungsstärksten Plattformen zum Teilen von Videoinhalten. Daher können Sie Abonnenten für YouTube-Kanäle kaufen, um mit mehr Menschen in Kontakt zu treten. Folglich gibt es zahlreiche Möglichkeiten für Benutzer, dies zu tun, die meisten davon Open Source. Aufgrund ihrer großen Auswahl ist es manchmal schwierig, die besten auszuwählen. Es gibt jedoch einen bestimmten Weg, Ihr Projekt mit den besten Einrichtungen auszustatten. In diesem Artikel werden wir unsere Meinung darüber teilen, welchen Spielerservice wir wählen sollten und warum. Lassen Sie sich von uns in die Welt der unbegrenzten Streaming-Möglichkeiten einführen, in der der native MediaPlayer nach wie vor einer der beliebtesten ist. Allerdings tauchte auch ein neuer Feldspieler auf. ExoPlayer hat mit seinem EXOPlayer Live-Streaming einen größeren Funktionsumfang und ist bereit, Ihr nächster Favorit zu werden.
Kurzübersicht
Im Jahr 2014 war die Implementierung der Google ExoPlayer-Bibliothek für einen Videoplayer mit der benutzerdefinierten Steuerung und dem "Exo-Live-Stream" eine brillante Idee. Der eingebaute native MediaPlayer bewies seine Inkonsistenz in einem so wichtigen Punkt wie dem stabilen und zuverlässigen Verhalten auf verschiedenen Geräten. Seine Willkür zusammen mit der Schwere des Codes und der kompromisslosen Leistungspolitik machten es unter Experten berüchtigt. Im Gegenteil, der neu veröffentlichte ExoPlayer, der auf der Basis der Low-Level-Medien-APIs von Android aufbaut, sorgte für die besten Musik- und Video-Streaming-Möglichkeiten.
Der erste und wichtigste Grund für die Veröffentlichung war natürlich die Implementierung von HTTP Live Streaming (HLS) – einem von Apple entwickelten Protokoll für die Medienübertragung. Darin besteht der Videoinhalt aus in Echtzeit geladenen Fragmenten und mit adaptiver Bitübertragungsrate. So wurde das ExoPlayer-Live-Streaming zu einer vollständig anpassbaren Alternative zu den nativen MediaPlayer-APIs und bietet eine bequeme API zum Streamen von Video und Audio auf allen Geräten. Jetzt wird es von Tausenden von Apps mit Prominenten wie BBC verwendet.
Alternativen (und warum Sie sie nicht wählen sollten)
Natürlich hat ExoPlayer eine Reihe ziemlich erfolgreicher Konkurrenten. Dazu gehören so bekannte Dienstleistungen wie:
- Vimeo
- Vitamio;
- LibVLC.
Es kann jedoch jetzt mit Sicherheit festgestellt werden, dass ExoPlayer viel besser ist als alle anderen. Trotz seiner beeindruckenden Abonnentenzahl mangelt es Vimeo an Flexibilität, da die Inhalte ausschließlich auf seinen Servern gespeichert werden, wobei ein iframe-Link für die Wiedergabe in WebView bereitgestellt wird. Das reduziert die Leistung der Anwendung erheblich. Basierend auf der beliebten FFmpeg-Bibliothek und mit vielen nützlichen Funktionen hat Vitamio große Popularität erlangt. Es ist jedoch ein nicht kostenloser Dienst, daher sind nicht viele Leute bereit, ihn zu nutzen. LibVLC ist in seiner Funktionalität eher eingeschränkt, da es nur Projekte mit NDK-Unterstützung bearbeitet. Aus diesem Grund ist ExoPlayer heutzutage der beliebteste Dienst dieser Art.
Was ist positiv?
Wie jeder Dienst hat ExoPlayer seine Vor- und Nachteile. Zu seinen Hauptvorteilen gehören:
- Implementierung von Exoplayer HLS mit all seinen erweiterten Funktionen, wie Fehlerbehandlung usw.;
- einfacher Start;
- Java-Basis, die die Möglichkeit eines erfolgreichen Debuggens ermöglicht;
- verschiedene Formate;
- volle Unterstützung der allgemeinen Widevine-Verschlüsselung für Android 4.4 und höher.
- Steuerkomponenten, die vollständig anpassbar sind;
- eine Möglichkeit, Audio und Video in einem Stream abzuspielen;
- Untertitelunterstützung;
- Google Cast SDK-Unterstützung, die die Arbeit mit Fernseher oder Soundsystem ermöglicht;
- MediaSource-Nutzung.
Letzteres ermöglicht nicht nur die Konfiguration des Exoplayer-HLS-Streams, sondern auch von DASH (DashMediaSource) und SmoothStreaming (SsMediaSource). Es ermöglicht auch solche EXOPlayer-Live-Streaming-Komponenten wie seitlich geladene Untertitel sowie die Wiedergabe der Videosequenzen. Eine weitere aufregende Funktion ist der neu veröffentlichte PlayerNotificationManager, der es dem Benutzer ermöglicht, Wiedergabebenachrichtigungen zu erhalten, um Ihr Video- oder Audio-Exo-Streaming zu steuern. Mit ihnen können Sie reibungslos vor- und zurückspulen, zum nächsten Titel wechseln usw. Um MediaSource für HLS-Videostreaming zu erstellen, müssen Sie so einfache Aktionen ausführen:

Spaß getHlsMediaSource(hls: String): MediaSource {
val bandwidthMeter = DefaultBandwidthMeter ()
val applicationName = Util.getUserAgent(context, APPLICATION_NAME)
val dataSourceFactory = DefaultDataSourceFactory(context, applicationName,bandbreiteMeter)
val factory = HlsMediaSource.Factory(dataSourceFactory)
return factory.createMediaSource(Uri.parse(hls))
}
Darüber hinaus verfügt die Live-Streaming-Bibliothek von EXOPlayer über eine Reihe anderer fantastischer Funktionen wie MergingMediaSource, ConcatenatingMediaSource, TrackSelector und LoopingMediaSource. Sie alle garantieren die perfekte Leistung eines komplexen Systems von Exo-Streaming-Möglichkeiten. ExoPlayer verfügt standardmäßig über eine Reihe dieser Komponenten für die Grundfunktion. Es kann jedoch auch zahlreiche kundenspezifische Implementierungen für nicht standardmäßige Leistung verwenden.
Alles in allem übernimmt exo live stream alle wichtigen Aufgaben, wie z kurze Zeit usw.
Was ist negativ?
Natürlich ist nichts perfekt. Das Live-Streaming von EXOPlayer ist trotz seiner Modernität und einer Reihe aufregender Funktionen keine Ausnahme. Seine Hauptnachteile sind wie folgt:
- Designbeschränkungen;
- fehlende Unterstützung für ältere als 16 Android-Versionen;
- eine Unmöglichkeit der Erholungsleistung des Spielers im Falle einer Bildschirmsperre;
- kein Zurückspulen zur zuletzt betrachteten Position.
Die funktionierende Lösung für die letztgenannten Herausforderungen sieht wie folgt aus:
überschreibe den Spaß onPause() {
super .onPause()
releasePlayer()
}
privater Spaß releasePlayer() {
if ( simpleExoPlayer != null ) {
fortsetzenPosition = Math.max(0, simpleExoPlayer !!. contentPosition )
sollteAutoPlay = simpleExoPlayer !!. playWhenReady
simpleExoPlayer !!.release()
simpleExoPlayer = null
}
}
überschreibe den Spaß onResume() {
super .onResume()
initPlayer()
}
privater Spaß initPlayer() {
simpleExoPlayer = streamConfigurator .createExoPlayer()
…
simpleExoPlayerView. useController = true
simpleExoPlayerView. Spieler = simpleExoPlayer
…
simpleExoPlayer ?.seekTo( Position fortsetzen )
…
}
Allerdings dürften diese Probleme auf die Besonderheiten der Android-Architektur und deren Hyperthreading zurückgeführt werden, Android-Entwickler könnten es etwas schwer haben. Abgesehen davon ist ExoPlayer Live-Streaming eine gute Wahl.
Algorithmus des EXOPlayer-Live-Streamings
Experten behaupten, dass ExoPlayer wirklich praktisch und einfach zu bedienen ist, und wir stimmen diesem Gedanken voll und ganz zu. Um Ihre Arbeit damit zu beginnen, müssen Sie nur ein paar einfache Schritte ausführen. Sie beinhalten:
- Hinzufügen von ExoPlayer zu Ihrem Projekt in einem Abhängigkeitsformular. Das Hinzufügen zur Datei des App-Moduls stellt sicher, dass es für die vollständige ExoPlayer-Live-Streaming-Bibliothek funktioniert.
- Erstellen einer SimpleExoPlayer-Instanz (verwenden Sie dafür ExoPlayerFactory);
- Anbringen des Players an der Ansicht sowohl für die Videoausgabe als auch für die einfache Benutzereingabe;
- Vorbereitung der MediaSource des Players zum Abspielen.
- die Freigabe des Spielers (mit einem speziellen Code).
Schlussfolgerungen
ExoPlayer Live-Streaming ist eine vorgefertigte Open-Source-Lösung, die es ermöglicht, viele Probleme zu lösen, die für andere Bibliotheken problematisch sind. Wie Sie sehen, ist die Liste der Vorteile und positiven Eigenschaften viel länger als die Aufzählung der negativen. Wahrscheinlich aus diesem Grund wird es in den allermeisten Android-Anwendungen verwendet und wird von Google vollständig unterstützt. Im Vergleich zu seinen Hauptalternativen ist es viel flexibler und einfacher. Unser Team rät Ihnen, es zu verwenden, da seine aufregenden Funktionen einen großen Brei auf Sie machen können.
