EXOPlayer Live Streaming – Implementazione e consigli utili

Pubblicato: 2018-06-08

La riproduzione di musica e video con l'aiuto del live streaming è un'attività importante per i dispositivi Android. YouTube è una delle piattaforme più potenti per la condivisione di contenuti video. Quindi puoi acquistare abbonati per i canali YouTube per connetterti con più persone. Di conseguenza, esistono numerose possibilità per gli utenti di farlo, la maggior parte delle quali open-source. A causa della loro vasta gamma, a volte è difficile scegliere il meglio. Eppure esiste un certo modo per fornire al tuo progetto le migliori strutture. In questo articolo, condivideremo la nostra opinione su quale servizio per i giocatori scegliere e perché. Lascia che ti presentiamo il mondo delle possibilità di streaming illimitate, dove il MediaPlayer nativo rimane uno dei più popolari. Tuttavia, è apparso anche un nuovo giocatore sul campo. ExoPlayer, con il suo live streaming EXOPlayer, ha una gamma più ampia di funzioni ed è pronto per diventare il tuo prossimo preferito.

EXOPlayer live streaming immagine principale

Breve panoramica

Nel 2014, l'implementazione della libreria Google ExoPlayer per un lettore video con il controllo personalizzato operativo e "exo live stream" è stata un'idea brillante. Il MediaPlayer nativo integrato ha dimostrato la sua incoerenza in una questione così importante come un comportamento stabile e affidabile su diversi dispositivi. La sua capricciosità insieme alla pesantezza del codice e alla politica delle prestazioni senza compromessi lo hanno reso famoso tra gli esperti. Al contrario, il nuovo ExoPlayer, costruito sulla base delle API multimediali di basso livello di Android, ha assicurato le migliori possibilità di streaming di musica e video.

La prima e principale ragione del suo rilascio è stata, ovviamente, l'implementazione di HTTP Live Streaming (HLS), un protocollo per la trasmissione multimediale sviluppato da Apple. In esso, il contenuto video è costituito da frammenti caricati in tempo reale e con velocità di trasferimento bit adattiva. È così che lo streaming live di ExoPlayer è diventato un'alternativa completamente personalizzabile alle API native di MediaPlayer, fornendo una comoda API per lo streaming di video e audio su tutti i dispositivi. Ora è utilizzato da migliaia di app con nomi di celebrità come la BBC inclusa.

Alternative (e perché non dovresti sceglierle)

Naturalmente, ExoPlayer ha un numero di concorrenti piuttosto di successo. Includono servizi noti come:

  • Vimeo

immagine in streaming vimeo exo

  • Vitamio;

immagine vitamio exoplayer hls

  • LibVLC.

Tuttavia, ora si può sicuramente affermare che ExoPlayer è molto meglio di tutti loro. Nonostante il suo numero impressionante di abbonati, Vimeo manca di flessibilità, poiché il contenuto è archiviato esclusivamente sui suoi server, con un collegamento iframe fornito per la riproduzione in WebView. Ciò riduce significativamente le prestazioni dell'applicazione. Essendo basato sulla popolare libreria FFmpeg e in possesso di molte funzioni utili, Vitamio ha guadagnato molta popolarità. Tuttavia, è un servizio non gratuito, quindi non molte persone sono pronte a usarlo. LibVLC è piuttosto limitato nelle sue funzionalità, poiché gestisce solo progetti con supporto NDK. Ecco perché ExoPlayer è il servizio di questo tipo più popolare al giorno d'oggi.

Che cosa è positivo?

Come ogni servizio, ExoPlayer ha i suoi vantaggi e svantaggi. I suoi principali vantaggi includono:

  • implementazione di exoplayer HLS con tutte le sue funzionalità avanzate, come la gestione dei bug ecc.;
  • inizio facile;
  • Base Java, che consente la possibilità di eseguire correttamente il debug;
  • varietà di formati;
  • pieno supporto della crittografia comune Widevine per Android 4.4 e versioni successive.
  • componenti di controllo completamente personalizzabili;
  • una possibilità di riprodurre audio e video in un flusso;
  • supporto per i sottotitoli;
  • Supporto Google Cast SDK, che ne consente il funzionamento con Tv o sistema audio;
  • Utilizzo di MediaSource.

Quest'ultimo consente la configurazione non solo del flusso HLS di exoplayer, ma anche di DASH (DashMediaSource) e SmoothStreaming (SsMediaSource). Consente inoltre tali componenti di streaming live EXOPlayer come sottotitoli caricati lateralmente, nonché la riproduzione delle sequenze video. Un'altra caratteristica interessante che possiede è il PlayerNotificationManager appena rilasciato, che consente all'utente di ricevere notifiche di riproduzione per controllare lo streaming video o audio exo. Con loro, puoi avanzare, riavvolgere, passare alla traccia successiva senza problemi, ecc. Per creare MediaSource per lo streaming video HLS, devi eseguire queste semplici azioni:


fun getHlsMediaSource(hls: String): MediaSource {
val widthMeter = DefaultBandwidthMeter()
val applicationName = Util.getUserAgent(context, APPLICATION_NAME)
val dataSourceFactory = DefaultDataSourceFactory(context, applicationName, larghezza di banda)
val factory = HlsMediaSource.Factory(dataSourceFactory)
return factory.createMediaSource(Uri.parse(hls))
}


Inoltre, la libreria di live streaming EXOPlayer ha una gamma di altre fantastiche capacità, come MergingMediaSource, ConcatenatingMediaSource, TrackSelector e LoopingMediaSource. Garantiscono tutte le prestazioni perfette di un complesso sistema di possibilità di streaming Exo. ExoPlayer ha una gamma di questi componenti per impostazione predefinita per il funzionamento di base. Tuttavia, può anche utilizzare numerose implementazioni personalizzate per prestazioni non standard.

Tutto sommato, lo streaming live exo gestisce tutte le attività importanti, come lo streaming video con l'identificazione degli errori associati alla fonte del contenuto, l'aggiunta di un lettore video o audio che supporta la maggior parte dei formati moderni alla tua applicazione mobile o TV in un poco tempo ecc.

Che cosa è negativo?

Ovviamente niente è perfetto. Il live streaming di EXOPlayer, nonostante la sua modernità e una serie di interessanti funzionalità, non fa eccezione. I suoi principali svantaggi sono i seguenti:

  • limiti di progettazione;
  • mancanza di supporto per versioni precedenti di 16 Android;
  • un'impossibilità della prestazione ricreativa del giocatore in caso di blocco dello schermo;
  • nessun ritorno all'ultima posizione visualizzata.

La soluzione di lavoro per queste ultime sfide si presenta così:


override fun onPause() {

super .onPause()

releasePlayer()

}


divertimento privato releasePlayer() {

if ( simpleExoPlayer != null ) {

resumePosition = Math.max(0, simpleExoPlayer !!. contentPosition )

shouldAutoPlay = simpleExoPlayer !!. playWhenReady

simpleExoPlayer !!.release()

simpleExoPlayer = null

}

}


sovrascrivere fun onResume() {

super .onResume()

initPlayer()

}


divertimento privato initPlayer() {

simpleExoPlayer = streamConfigurator .createExoPlayer()

simpleExoPlayerView. useController = true

simpleExoPlayerView. player = simpleExoPlayer

simpleExoPlayer ?.seekTo( resumePosition )

}


Tuttavia, questi problemi possono essere attribuiti alle peculiarità dell'architettura Android e al suo hyperthreading, gli sviluppatori Android potrebbero avere un po' di difficoltà. Oltre a questo, lo streaming live di ExoPlayer è un'ottima scelta.

Algoritmo di EXOPlayer Live Streaming

Gli esperti affermano che ExoPlayer è davvero pratico e facile da usare e siamo totalmente d'accordo con questo pensiero. Per iniziare il tuo lavoro con esso, devi eseguire solo pochi semplici passaggi. Loro includono:

  • aggiungendo ExoPlayer al tuo progetto in una forma di dipendenza. Aggiungerlo al file del modulo dell'app garantirà il suo lavoro per l'intera libreria di live streaming di ExoPlayer;
  • creare un'istanza SimpleExoPlayer (usa ExoPlayerFactory per quello);
  • collegamento del lettore alla vista sia per l'uscita video che per un facile input dell'utente;
  • preparazione del MediaSource del lettore per la riproduzione.
  • il rilascio del giocatore (con un codice speciale).

Conclusioni

Lo streaming live di ExoPlayer è una soluzione pronta all'uso open source che consente di risolvere molti problemi problematici per altre librerie. Come puoi vedere, il suo elenco di vantaggi e caratteristiche positive è molto più lungo dell'enumerazione di quelli negativi. Probabilmente per questo motivo, è utilizzato nella stragrande maggioranza delle applicazioni Android ed è completamente supportato da Google. Rispetto alle sue principali alternative, è molto più flessibile e semplice. Il nostro team ti consiglia di iniziare a utilizzarlo, poiché le sue interessanti funzionalità possono farti impazzire.