Cara Menampilkan CCTV di Android

Cara menampilkan CCTV menggunakan ExoPlayer di Android

Yudi Setiawan
Nusanet Developers
8 min readJun 26, 2019

--

Pengenalan

Seperti yang kita ketahui bahwa di Android untuk bisa melakukan pemutaran video kita bisa menggunakan VideoView. Namun, seiring berjalannya waktu dan perkembangan Android-nya sendiri maka penggunaan VideoView akhirnya memiliki alternatifnya tersendiri yang lebih powerful, yaitu ExoPlayer. ExoPlayer merupakan pustaka buatannya Google yang memiliki fungsi lebih dari sekedar video player. Berikut projek Github-nya.

Seperti biasanya dikarenakan ExoPlayer merupakan projek open source dari Google maka, sudah dipastikan pengembangannya lebih cepat. Jika kita sering mengikuti perkembangan-perkembangan yang diumumkan di acara Google I/O seharusnya kita sudah tahu bahwa ExoPlayer diperkenalkan pada acara Google I/O 17.

Pengenalan ExoPlayer di acara Google I/O 17

ExoPlayer dibuat untuk mempermudah penggunaan Media Player di Android seperti melakukan pemutaran video, audio dan dukungan pemakaiannya yang dilakukan untuk pemutaran media player secara file lokal dan internet.

Dan berikut ialah beberapa fitur yang didukung oleh si ExoPlayer.

https://www.youtube.com/watch?v=jAZn-J1I8Eg

CCTV

Di Android untuk bisa melakukan live streaming CCTV sebenarnya ada 2 cara yang saya ketahui yaitu yang pertama kita bisa menggunakan SDK-nya bawaan si vendor CCTV (jika tersedia) dan yang kedua kita bisa menggunakan ExoPlayer. Namun, yang saya ketahui untuk ExoPlayer kita hanya bisa menampilkan CCTV yang publik saja (tanpa autentifikasi) dan jika terdapat autentifikasi maka kita harus menggunakan SDK bawaannya si vendor contohnya seperti yang sudah pernah saya coba yaitu HikVision dan pustaka yang saya pakai adalah sebagai berikut.

Lalu untuk CCTV yang publik kita bisa mengaksesnya dengan cara langsung memanggil url dari si CCTV tersebut. Untuk contoh CCTV publik yang akan saya jadikan contoh adalah CCTV dari kota Medan http://smartprovince.sumutprov.go.id dimana dari link tersebut kita bisa mengakses menu CCTV. Lalu di bagian web-nya coba kita inspect element pada halaman webnya maka nanti disitu kita bisa lihat url dari CCTV-nya seperti berikut.

CCTV kota Medan

Tapi tenang saja untuk semua url CCTV-nya sudah saya masukkan ke dalam server fake json buatan saya jadi kita cukup memanggil endpoint fake json-nya saja.

Mulai Pembuatan Projek

Sekarang mari kita mulai langkah-langkah pembuatan projeknya.

Setup build.gradle file

Pertama-tama kita perlu menambahkan beberapa dependency yang kita butuhkan seperti berikut.

Tambahkan izin permisi INTERNET

Dikarenakan aplikasi kita membutuhkan penggunaan internet maka, di file AndroidManifest.xml kita tambahkan izin permisi internetnya seperti berikut.

Buat UI activity_main.xml

Selanjutnya, di layout activity_main.xml kita perlu membuat sebuah tampilan yang menampilkan list dari CCTV-nya menggunakan RecyclerView.

Buat class model API

Selanjutnya kita perlu membuat class model untuk melakukan parsing dari respon JSON endpoint list cctv-nya. Berikut respon dari endpoint-nya.

Maka kita buat class model-nya seperti berikut.

Buat interface API

Kemudian, kita perlu membuat interface API dari endpoint-nya seperti berikut.

Buat layout item_list_cctv.xml

Karena kita akan menampilkannya didalam RecyclerView maka kita perlu membuat adapternya dan adapternya memerlukan item layout. Maka berikut item layout-nya.

Buat Adapter si RecyclerView

Selanjutnya kita buat adapter untuk si RecyclerView-nya.

Buat logic menampilkan List CCTV

Sekarang kita buka file MainActivity.kt dan isi dengan kode berikut.

Pada kode diatas flow-nya adalah seperti berikut.

  1. Pertama kita melakukan inisialisasi untuk objek Retrofit-nya.
  2. Lalu, di fungsi doLoadListCctv() kita ada melakukan pemanggilan ke endpoint fake json untuk mendapatkan data list CCTV yang akan kita tampilkan kedalam RecyclerView.

Jika berhasil maka tampilan programnya akan menjadi seperti berikut.

UI List CCTV

Buat UI Menampilkan CCTV

Pada langkah sebelumnya kita telah berhasil membuat fitur untuk menampilkan list CCTV-nya. Maka, untuk langkah selanjutnya adalah kita perlu memberikan event onClickListener untuk setiap item di RecyclerView-nya. Caranya, silakan kita buat activity baru dengan nama CctvViewActivity.kt (beserta dengan layout-nya). Kemudian didalam layout-nya kita isikan dengan kode berikut.

Buat logic menampilkan kamera CCTV

Sekarang kita buka file CctvViewActivity.kt dan isi dengan kode berikut.

Pada kode diatas jika kita perhatikan terdapat kode untuk mengambil url yang dikirim dari activity sebelumnya maka, kita buka lagi file MainActivity.kt dan pada method onClickItem() didalamnya kita tambahkan kode berikut.

Sekarang coba test jalankan lagi lalu, pada aplikasi coba kita tap pada salah satu cctv yang ingin kita lihat.

Fitur live streaming CCTV

Kesimpulan

Jadi, setelah kita berhasil menampilkan CCTV secara live streaming menggunakan ExoPlayer maka, dapat diambil kesimpulan bahwa penggunaan ExoPlayer menurut saya lebih mudah dan powerful.

--

--