

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memulai dengan IVS Android Player SDK
<a name="android-getting-started"></a>

Dokumen ini membawa Anda melalui langkah-langkah yang terlibat dalam memulai dengan Amazon IVS Android player SDK.

## Instal Perpustakaan
<a name="android-install"></a>

Untuk menambahkan library pemutar Android Amazon IVS ke lingkungan pengembangan Android Anda, tambahkan pustaka ke `build.gradle` file modul Anda, seperti yang ditunjukkan di sini (untuk versi terbaru pemutar Amazon IVS).

```
repositories {
    mavenCentral()
}
 
dependencies {
     implementation 'com.amazonaws:ivs-player:1.50.0'
}
```

Sebagai alternatif, untuk menginstal SDK secara manual, unduh versi terbaru dari lokasi ini:
+ [https://search.maven.org/artifact/com.amazonaws/ivs-pemain](https://search.maven.org/artifact/com.amazonaws/ivs-player)

## Menggunakan SDK dengan Simbol Debug
<a name="player-android-using-debug-symbols-ll"></a>

Kami juga menerbitkan versi SDK pemutar Android yang menyertakan simbol debug. Anda dapat menggunakan versi ini untuk meningkatkan kualitas laporan debug (jejak tumpukan) di Firebase Crashlytics, jika Anda mengalami crash di SDK pemutar IVS; yaitu,. `libplayercore.so` Saat Anda melaporkan crash ini ke tim IVS SDK, jejak tumpukan berkualitas lebih tinggi memudahkan untuk memperbaiki masalah.

Untuk menggunakan versi SDK ini, di file build Gradle, ganti baris ini:

```
implementation "com.amazonaws:ivs-player:$version@aar"
```

dengan ini:

```
implementation "com.amazonaws:ivs-player:$version:unstripped@aar"
```

### Mengunggah Simbol ke Firebase Crashlytics
<a name="player-android-debug-symbols-ll-firebase-crashlytics"></a>

Pastikan file build Gradle Anda disiapkan untuk Firebase Crashlytics. Ikuti instruksi Google di sini:

[https://firebase.google.com/docs/crashlytics/ndk-laporan](https://firebase.google.com/docs/crashlytics/ndk-reports)

Pastikan untuk memasukkan `com.google.firebase:firebase-crashlytics-ndk` sebagai ketergantungan.

Saat membuat aplikasi Anda untuk rilis, plugin Firebase Crashlytics akan mengunggah simbol secara otomatis. Untuk mengunggah simbol secara manual, jalankan salah satu dari berikut ini:

```
gradle uploadCrashlyticsSymbolFileRelease
```

```
./gradlew uploadCrashlyticsSymbolFileRelease
```

(Tidak ada salahnya jika simbol diunggah dua kali, baik secara otomatis maupun manual.)

### Mencegah Rilis Anda .apk dari Menjadi Lebih Besar
<a name="player-android-debug-symbols-ll-sizing-apk"></a>

Sebelum mengemas `.apk` file rilis, Plugin Android Gradle secara otomatis mencoba menghapus informasi debug dari pustaka bersama (termasuk pustaka SDK pemutar IVS). `libplayercore.so` Namun, terkadang hal ini tidak terjadi. Dalam hal ini, `.apk` file Anda bisa menjadi lebih besar dan Anda bisa mendapatkan pesan peringatan dari Plugin Android Gradle bahwa itu tidak dapat menghapus simbol debug dan mengemas `.so` file apa adanya. Jika ini terjadi, lakukan hal berikut:
+ Instal Android NDK. Versi terbaru apa pun akan berfungsi.
+ Tambahkan `ndkVersion <your_installed_ndk_version_number>` ke `build.gradle` file aplikasi Anda. Lakukan ini bahkan jika aplikasi Anda sendiri tidak mengandung kode asli.

Untuk informasi selengkapnya, lihat [laporan masalah](https://issuetracker.google.com/issues/353554169) ini.

## Membuat Player dan Mengatur Event Listener
<a name="android-create-player"></a>

Antarmuka pemain adalah`com.amazonaws.ivs.player.Player`. Inisialisasi seperti yang ditunjukkan di bawah ini:

```
// Create a player instance
// <this> refers to the current Android Activity
player = Player.Factory.create(this);

// Set up to receive playback events and errors 
player.addListener(this);
```

Bergantian, inisialisasi dengan menggunakan: `PlayerView`

```
// Create a player instance
// <this> refers to the current Android Activity
PlayerView playerView = new PlayerView(this);
Player player = playerView.getPlayer();
// Set up to receive playback events and errors 
player.addListener(this);
```

**Catatan:** Metode callback listener dijalankan di thread utama aplikasi Android Anda.

## Mengatur Tampilan Permukaan untuk Video
<a name="android-set-surface-view"></a>

Jika tidak menggunakan `PlayerView` add a `SurfaceView` ke tata letak UI Android Anda untuk menampilkan video. Ini `Surface` harus tersedia sebelum Anda dapat memutar aliran video apa pun. Anda dapat mengakses permukaan yang mendasarinya melalui `SurfaceHolder` antarmuka, yang diambil dengan menelepon`getHolder()`. (Lihat [SurfaceView](https://developer.android.com/reference/android/view/SurfaceView.html)di referensi pengembang Android). Gunakan `SurfaceHolder.Callback` untuk menerima peristiwa tentang perubahan permukaan (lihat [SurfaceHolder.Callback](https://developer.android.com/reference/android/view/SurfaceHolder.Callback)).

```
surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
surfaceView.getHolder().addCallback(this);

@Override
public void surfaceCreated(SurfaceHolder holder) {
   this.surface = holder.getSurface();
   if (player != null) {
       player.setSurface(this.surface);
   }
}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {
   this.surface = null;
   if (player != null) {
       player.setSurface(null);
   }
}
```

## Mainkan Streaming
<a name="android-play-stream"></a>

Karena aliran dimuat secara asinkron, pemain harus dalam `READY` keadaan sebelum aplikasi Anda dapat memanggil `play` metode untuk memulai pemutaran. Gunakan `Player.Listener` antarmuka untuk menentukan kapan pemain dalam kondisi yang benar.

Lihat kode contoh berikut:

```
player.load(Uri.parse(url));

@Override
public void onStateChanged(Player.State state) {
    switch (state) {
        case BUFFERING:
            // player is buffering
            break;
        case READY:
            player.play();
            break;
        case IDLE:
            break;
        case PLAYING:
            // playback started
            break;
     }
}
```

## Lepaskan Pemain
<a name="android-release-player"></a>

`player.release()`Metode ini *harus* dipanggil ketika pemain tidak lagi digunakan, untuk membebaskan sumber daya yang digunakan oleh perpustakaan. Biasanya ini dilakukan dalam `onDestroy` callback Aktivitas atau Fragmen yang berisi pemain.

```
@Override
protected void onDestroy() {
    super.onDestroy();
    player.removeListener(this);
    player.release();
}
```

Setelah `player.release()` metode ini disebut pemain tidak bisa lagi digunakan.

## Izin
<a name="android-permissions"></a>

SDK pemutar Android memerlukan izin berikut: 

```
<uses-permission android:name="android.permission.INTERNET" />
```

Selain itu, izin opsional ini dapat meningkatkan pengalaman pemutaran: 

```
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
```

## Keamanan Benang
<a name="android-thread-safety"></a>

API pemain tidak aman untuk utas. Semua panggilan yang dilakukan ke instance pemain harus dari utas yang sama.

## Ukuran SDK
<a name="android-sdk-size"></a>

Pemutar Amazon IVS SDKs dirancang agar seringan mungkin. Untuk informasi terkini tentang ukuran SDK, lihat [Catatan Rilis](release-notes.md).

**Penting:** Saat mengevaluasi dampak ukuran, ukuran yang AAB/APK dihasilkan oleh Android Studio tidak mewakili ukuran aplikasi yang diunduh ke perangkat pengguna. Google Play Store melakukan pengoptimalan untuk mengurangi ukuran aplikasi Anda. Sebaiknya gunakan [Android App Bundle](https://developer.android.com/guide/app-bundle) untuk menyajikan aplikasi yang dioptimalkan untuk setiap konfigurasi perangkat.