View a markdown version of this page

Memulai dengan IVS Android Player SDK - Amazon IVS

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

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

Instal Perpustakaan

Untuk menambahkan pustaka 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.55.0' }

Sebagai alternatif, untuk menginstal SDK secara manual, unduh versi terbaru dari lokasi ini:

Menggunakan SDK dengan Simbol Debug

Kami juga menerbitkan versi SDK pemutar Android yang menyertakan simbol debug. Anda dapat menggunakan versi ini untuk meningkatkan kualitas laporan debug (pelacakan tumpukan) di Firebase Crashlytics, jika Anda mengalami crash di IVS player SDK; 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 Anda, 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

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

https://firebase.google.com/docs/crashlytics/ndk-reports

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

Saat membuat aplikasi untuk rilis, plugin Firebase Crashlytics harus 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 .apk Anda Menjadi Lebih Besar

Sebelum mengemas .apk file rilis, Plugin Gradle Android secara otomatis mencoba menghapus informasi debug dari pustaka bersama (termasuk pustaka SDK pemutar IVS). libplayercore.so Namun, terkadang 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 NDK Android. 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 ini.

Buat Player dan Siapkan Event Listener

Antarmuka pemain adalahcom.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);

Sebagai alternatif, 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 pendengar dijalankan di utas utama aplikasi Android Anda.

Mengatur Tampilan Permukaan untuk Video

Jika tidak menggunakan PlayerView tambahkan 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 memanggilgetHolder(). (Lihat SurfaceView di referensi pengembang Android). Gunakan SurfaceHolder.Callback untuk menerima peristiwa tentang perubahan permukaan (lihat 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); } }

Putar Streaming

Karena aliran dimuat secara asinkron, pemutar harus dalam READY keadaan sebelum aplikasi Anda dapat memanggil play metode untuk memulai pemutaran. Gunakan Player.Listener antarmuka untuk menentukan kapan pemain berada dalam keadaan 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

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

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

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

Izin

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

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

Ukuran SDK

SDK pemutar Amazon IVS dirancang agar seringan mungkin. Untuk informasi terkini tentang ukuran SDK, lihat Catatan Rilis.

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. Kami menyarankan Anda menggunakan Bundel Aplikasi Android untuk menyajikan aplikasi yang dioptimalkan untuk setiap konfigurasi perangkat.