Streaming Langsung EXOPlayer – Implementasi dan Kiat Berguna
Diterbitkan: 2018-06-08Memutar musik dan video dengan bantuan live streaming adalah aktivitas penting untuk perangkat Android. YouTube adalah salah satu platform paling kuat untuk berbagi konten video. Karenanya Anda dapat membeli pelanggan saluran YouTube untuk terhubung dengan lebih banyak orang. Akibatnya, ada banyak kemungkinan bagi pengguna untuk melakukan itu, kebanyakan dari mereka open-source. Karena jangkauannya yang besar, terkadang sulit untuk memilih yang terbaik. Namun ada cara tertentu untuk menyediakan proyek Anda dengan fasilitas terbaik. Pada artikel ini, kami akan membagikan pendapat kami tentang layanan pemain apa yang harus dipilih dan mengapa. Biarkan kami memperkenalkan Anda ke dunia kemungkinan streaming tanpa batas, di mana MediaPlayer asli tetap menjadi salah satu yang paling populer. Namun, muncul juga pemain lapangan baru. ExoPlayer, dengan live streaming EXOPlayer-nya, memiliki cakupan fungsi yang lebih luas dan siap menjadi favorit Anda selanjutnya.
Ikhtisar Singkat
Kembali pada tahun 2014, implementasi perpustakaan Google ExoPlayer untuk pemutar video dengan operasi kontrol khusus dan 'aliran langsung exo' adalah ide yang brilian. MediaPlayer asli bawaan membuktikan ketidakkonsistenannya dalam hal penting seperti perilaku yang stabil dan andal pada perangkat yang berbeda. Perubahannya bersama dengan beratnya kode dan kebijakan kinerja tanpa kompromi membuatnya terkenal di antara para ahli. Sebaliknya, ExoPlayer yang baru dirilis, dibangun berdasarkan API media tingkat rendah Android, memastikan kemungkinan streaming musik dan video terbaik.
Alasan pertama dan terpenting untuk peluncurannya adalah, tentu saja, implementasi HTTP Live Streaming (HLS) – sebuah protokol untuk penyiaran media yang dikembangkan oleh Apple. Di dalamnya, konten video terdiri dari fragmen yang dimuat secara real time dan dengan kecepatan transfer bit adaptif. Begitulah cara ExoPlayer live streaming menjadi alternatif yang sepenuhnya dapat disesuaikan untuk API MediaPlayer asli, menyediakan API yang nyaman untuk streaming video dan audio di semua perangkat. Sekarang digunakan oleh ribuan aplikasi dengan nama selebriti seperti BBC.
Alternatif (dan Mengapa Anda Tidak Harus Memilihnya)
Tentu saja, ExoPlayer memiliki sejumlah pesaing yang cukup sukses. Mereka termasuk layanan terkenal seperti:
- Vimeo
- vitamin;
- LibVLC.
Namun, sekarang dapat dipastikan bahwa ExoPlayer jauh lebih baik daripada mereka. Meskipun jumlah pelanggannya mengesankan, Vimeo tidak memiliki fleksibilitas, karena konten disimpan secara eksklusif di servernya, dengan tautan iframe yang disediakan untuk diputar di WebView. Itu mengurangi kinerja aplikasi secara signifikan. Berbasis pada perpustakaan FFmpeg yang populer dan memiliki banyak fitur yang berguna, Vitamio mendapatkan banyak popularitas. Namun, ini adalah layanan tidak gratis, sehingga tidak banyak orang yang siap menggunakannya. LibVLC agak dibatasi fungsinya, karena hanya menangani proyek dengan dukungan NDK. Itulah mengapa ExoPlayer adalah layanan paling populer dari jenis ini saat ini.
Apa itu Positif?
Seperti layanan apa pun, ExoPlayer memiliki kelebihan dan kekurangan. Kelebihan utamanya meliputi:
- implementasi exoplayer HLS dengan semua fitur canggihnya, seperti penanganan bug, dll.;
- awal yang mudah;
- Basis Java, yang memungkinkan kemungkinan debugging yang berhasil;
- berbagai format;
- dukungan penuh dari enkripsi umum Widevine untuk Android 4.4 dan lebih tinggi.
- komponen kontrol yang sepenuhnya dapat disesuaikan;
- kemungkinan memutar audio dan video dalam aliran;
- dukungan subtitle;
- Dukungan Google Cast SDK, yang memungkinkannya bekerja dengan TV atau sistem suara;
- penggunaan MediaSource.
Yang terakhir memungkinkan konfigurasi tidak hanya aliran HLS exoplayer, tetapi juga DASH (DashMediaSource) dan SmoothStreaming (SsMediaSource). Ini juga memungkinkan komponen streaming langsung EXOPlayer seperti subtitle yang dimuat di samping, serta pemutaran urutan video. Satu lagi fitur menarik yang dimilikinya adalah PlayerNotificationManager yang baru dirilis, yang memungkinkan pengguna mendapatkan notifikasi pemutaran untuk mengontrol streaming video atau audio exo Anda. Dengan mereka, Anda dapat dengan lancar meneruskan, memundurkan, memutar ke trek berikutnya, dll. Untuk membuat MediaSource untuk streaming video HLS, Anda perlu melakukan tindakan sederhana seperti:

fun getHlsMediaSource(hls: String): MediaSource {
val bandwidthMeter = DefaultBandwidthMeter()
val applicationName = Util.getUserAgent(konteks, APPLICATION_NAME)
val dataSourceFactory = DefaultDataSourceFactory(context, applicationName, bandwidthMeter)
val factory = HlsMediaSource.Factory(dataSourceFactory)
kembali factory.createMediaSource(Uri.parse(hls))
}
Selain itu, perpustakaan live streaming EXOPlayer memiliki berbagai kapasitas fantastis lainnya, seperti MergingMediaSource, ConcatenatingMediaSource, TrackSelector, dan LoopingMediaSource. Semuanya menjamin kinerja sempurna dari sistem kompleks kemungkinan streaming Exo. ExoPlayer memiliki berbagai komponen ini secara default untuk fungsi dasar. Namun, itu juga dapat menggunakan berbagai implementasi yang disesuaikan untuk kinerja non-standar.
Secara keseluruhan, streaming langsung exo menangani semua tugas penting, seperti streaming video dengan identifikasi kesalahan yang terkait dengan sumber konten, menambahkan pemutar video atau audio yang mendukung sebagian besar format modern ke aplikasi seluler atau TV Anda dalam waktu singkat dll.
Apa itu Negatif?
Tentu saja, tidak ada yang sempurna. Streaming langsung EXOPlayer, terlepas dari modernitasnya dan sejumlah fitur menarik, tidak terkecuali. Kerugian utamanya adalah sebagai berikut:
- batasan desain;
- kurangnya dukungan untuk lebih awal dari 16 versi Android;
- ketidakmungkinan kinerja rekreasi pemain jika layar terkunci;
- tidak mundur ke posisi terakhir dilihat.
Solusi kerja untuk tantangan terakhir terlihat seperti ini:
menimpa kesenangan onPause() {
super .onPause()
rilisPemain()
}
rilis kesenangan pribadiPlayer() {
if ( simpleExoPlayer != null ) {
resumePosition = Math.max(0, simpleExoPlayer !!. contentPosition )
shouldAutoPlay = simpleExoPlayer !!. bermainKetikaSiap
simpleExoPlayer !!.release()
simpleExoPlayer = null
}
}
menimpa kesenangan onResume() {
super .onResume()
initPemain()
}
kesenangan pribadi initPlayer() {
simpleExoPlayer = streamConfigurator .createExoPlayer()
…
sederhanaExoPlayerView. useController = benar
sederhanaExoPlayerView. pemain = simpleExoPlayer
…
simpleExoPlayer ?.seekTo( resumePosition )
…
}
Namun, masalah ini dapat dikaitkan dengan kekhasan arsitektur Android dan hyperthreading-nya, pengembang Android mungkin mengalami kesulitan. Selain itu, streaming langsung ExoPlayer adalah pilihan yang bagus.
Algoritma Live Streaming EXOPlayer
Para ahli mengklaim ExoPlayer sangat berguna dan mudah digunakan, dan kami sangat setuju dengan pemikiran ini. Untuk memulai pekerjaan Anda dengannya, Anda hanya perlu melakukan beberapa langkah sederhana. Mereka termasuk:
- menambahkan ExoPlayer ke proyek Anda dalam bentuk ketergantungan. Menambahkannya ke file modul aplikasi akan memastikannya berfungsi untuk perpustakaan streaming langsung ExoPlayer lengkap;
- membuat instance SimpleExoPlayer (gunakan ExoPlayerFactory untuk itu);
- lampiran pemutar ke tampilan untuk output video dan input pengguna yang mudah;
- persiapan MediaSource pemain untuk bermain.
- rilis pemain (dengan kode khusus).
Kesimpulan
Streaming langsung ExoPlayer adalah solusi siap pakai open source yang memungkinkan penyelesaian banyak masalah yang bermasalah untuk perpustakaan lain. Seperti yang Anda lihat, daftar kelebihan dan fitur positifnya jauh lebih panjang daripada penghitungan yang negatif. Mungkin karena alasan itu, ini digunakan di sebagian besar aplikasi Android dan didukung penuh oleh Google. Dibandingkan dengan alternatif utamanya, ini jauh lebih fleksibel dan sederhana. Tim kami menyarankan Anda untuk mulai menggunakannya, karena fitur-fiturnya yang menarik dapat membuat Anda lebih baik.
