Cara menggunakan library ExoPlayer Android

undefined

Membuat aplikasi android yang membutuhkan pengolahan media seperti musik dan vidio maka library ExoPlayer menjadi salah satu pilihan terbaik untuk digunakan.

Exoplayer memang agak ribet buat kamu yang mungkin masih pemula pada pengembangan aplikasi android. Akan tetapi Exoplayer memberikan kita kemudahan jika ingin mengcustom pengolahan media seperti HLS streaming misalnya.

Pada tutorial ini kita akan membahas cara mudah untuk mengimplementasikan library ExoPlayer pada project aplikasi android kamu.

Tambahkan Library

Dependency exoplayer ini ada banyak dan setiap dependency nya memiliki kegunaanya masing - masing.

Berikut ini adalah standar dependency yang biasa saya gunakan support hls dan smoth live streaming.

implementation 'com.google.android.exoplayer:exoplayer-core:2.8.3'
implementation 'com.google.android.exoplayer:exoplayer-hls:2.8.3'
implementation 'com.google.android.exoplayer:exoplayer-ui:2.8.3'
implementation 'com.google.android.exoplayer:exoplayer-dash:2.8.3'
implementation 'com.google.android.exoplayer:exoplayer-smoothstreaming:2.8.3'

Membuat SimpleExoPlayerView

Selanjutnya adalah membuat viewnya. Disini kita akan mengcustom SimpleExoPlayerView.

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/parent_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#000000">

    <com.google.android.exoplayer2.ui.PlayerView
        android:id="@+id/video_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        app:controller_layout_id="@layout/player_custom_control" />

    <ProgressBar
        android:id="@+id/loading"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_gravity="center" />
</FrameLayout>

Dan yang ini untuk controller layoutnya.

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageButton
        android:id="@+id/exo_play"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_gravity="center"
        android:background="@null"
        android:padding="10dp"
        android:scaleType="fitXY"
        android:src="@drawable/ic_play_arrow_white_24dp" />

    <ImageButton
        android:id="@+id/exo_pause"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_gravity="center"
        android:background="@null"
        android:padding="10dp"
        android:scaleType="fitXY"
        android:src="@drawable/ic_pause_pause_24dp" />

    <com.google.android.exoplayer2.ui.DefaultTimeBar
        android:id="@+id/exo_progress"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_margin="15dp" />
</FrameLayout>

ExoPlayerView

Sekarang kita membuat instance untuk exoplayer dan menggunakan.

TrackSelection.Factory adaptiveTrackSelection = new AdaptiveTrackSelection.Factory(new DefaultBandwidthMeter());
player = ExoPlayerFactory.newSimpleInstance(
        new DefaultRenderersFactory(this),
        new DefaultTrackSelector(adaptiveTrackSelection),
        new DefaultLoadControl());

Selanjutnya untuk play media nya seperti berikut ini.

player.prepare(mediaSource);
player.setPlayWhenReady(playWhenReady);

Nah sampai disini saja tutorialnya. Untuk contoh project lengkapnya bisa di akses disni.