All Products
Search
Document Center

ApsaraVideo Live:Push SDK for Android

Last Updated:Jun 11, 2026

Integrasikan Push SDK ApsaraVideo Live ke dalam aplikasi Android Anda untuk menangkap input dari kamera dan mikrofon, lalu mendorong aliran siaran langsung ke URL ingest.

Cara kerja

Push SDK mengelola seluruh pipeline mulai dari pengambilan media hingga pengiriman:

  1. SDK menangkap video dari kamera dan audio dari mikrofon.

  2. Aplikasi Anda memanggil SDK untuk menginisialisasi aliran push menggunakan URL ingest dari ApsaraVideo Live.

  3. SDK mengenkode dan mengirimkan aliran tersebut ke titik akhir ingest secara real time.

  4. Pemirsa terhubung ke URL pemutaran untuk menonton siaran langsung tersebut.

Prasyarat

Sebelum memulai, pastikan Anda telah memenuhi persyaratan berikut:

  • Akun Alibaba Cloud dengan ApsaraVideo Live yang telah diaktifkan

  • Proyek Android yang menargetkan Android 5.0 (API level 21) atau versi lebih baru

  • Android Studio 3.0 atau versi lebih baru

  • URL ingest yang valid dari Konsol ApsaraVideo Live

Integrasikan SDK

Tambahkan dependensi Maven

Push SDK didistribusikan melalui Maven. Tambahkan dependensi sesuai dengan versi Android Gradle Plugin (AGP) yang Anda gunakan.

Untuk AGP 7.1.0 atau versi lebih baru, tambahkan repositori Maven di settings.gradle:

dependencyResolutionManagement {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/central' }
    }
}

Untuk AGP versi sebelum 7.1.0, tambahkan repositori Maven di build.gradle tingkat proyek:

allprojects {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/central' }
    }
}
Catatan

Jika dependencyResolutionManagement tidak ada di settings.gradle, berarti versi AGP Anda sebelum 7.1.0. Gunakan pendekatan build.gradle sebagai gantinya.

Kemudian, tambahkan dependensi SDK di build.gradle tingkat aplikasi:

dependencies {
    implementation 'com.aliyun.video.android:pusher:x.x.x'
}

Ganti x.x.x dengan versi SDK terbaru. Untuk mengetahui versi saat ini, lihat catatan rilis ApsaraVideo Live.

Deklarasikan izin

Tambahkan izin berikut ke AndroidManifest.xml Anda:

<!-- Akses kamera untuk pengambilan video -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- Akses mikrofon untuk pengambilan audio -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!-- Akses jaringan untuk pengiriman aliran -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Deteksi status jaringan untuk bitrate adaptif -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Deteksi status Wi-Fi -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- Membaca file media lokal -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- Menjaga layar tetap menyala selama streaming -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- Dukungan streaming latar belakang -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

Pada Android 6.0 (API level 23) dan versi lebih baru, CAMERA dan RECORD_AUDIO merupakan izin berisiko tinggi dan harus diminta saat runtime. Pastikan Anda meminta izin tersebut sebelum memulai aliran push.

Konfigurasi ProGuard

Jika aplikasi Anda menggunakan penyusutan kode, tambahkan aturan berikut ke file konfigurasi ProGuard Anda:

-keep class com.alivc.** { *; }
-keep class com.aliyun.** { *; }
-dontwarn com.alivc.**
-dontwarn com.aliyun.**

Mulai aliran push

Inisialisasi pusher

Buat instans AlivcLivePusher dan konfigurasikan dengan AlivcLivePushConfig:

Java

AlivcLivePushConfig config = new AlivcLivePushConfig();
config.setResolution(AlivcResolutionEnum.RESOLUTION_540P);
config.setFps(AlivcFpsEnum.FPS_20);
config.setEnableBitrateControl(true);

AlivcLivePusher pusher = new AlivcLivePusher();
pusher.init(context, config);

Kotlin

val config = AlivcLivePushConfig().apply {
    resolution = AlivcResolutionEnum.RESOLUTION_540P
    fps = AlivcFpsEnum.FPS_20
    isEnableBitrateControl = true
}

val pusher = AlivcLivePusher()
pusher.init(context, config)

Tambahkan tampilan pratinjau

Ikatkan SurfaceView ke pusher untuk menampilkan pratinjau kamera:

Java

SurfaceView previewView = findViewById(R.id.preview_surface);
pusher.startPreview(previewView);

Kotlin

val previewView = findViewById<SurfaceView>(R.id.preview_surface)
pusher.startPreview(previewView)

Mulai dan hentikan streaming

Panggil startPush dengan URL ingest Anda untuk memulai streaming. Ganti <your-ingest-domain> dan <stream-name> dengan nilai dari Konsol ApsaraVideo Live Anda.

Java

String ingestUrl = "rtmp://<your-ingest-domain>/live/<stream-name>";
pusher.startPush(ingestUrl);

Kotlin

val ingestUrl = "rtmp://<your-ingest-domain>/live/<stream-name>"
pusher.startPush(ingestUrl)

Untuk menghentikan aliran dan melepaskan resource:

Java

pusher.stopPush();
pusher.destroy();

Kotlin

pusher.stopPush()
pusher.destroy()

Atur siklus hidup pusher

Panggil metode berikut dalam callback siklus hidup Activity Anda untuk menghindari kebocoran resource:

Java

@Override
protected void onResume() {
    super.onResume();
    pusher.resumePush();
}

@Override
protected void onPause() {
    super.onPause();
    pusher.pausePush();
}

@Override
protected void onDestroy() {
    super.onDestroy();
    pusher.stopPush();
    pusher.destroy();
}

Kotlin

override fun onResume() {
    super.onResume()
    pusher.resumePush()
}

override fun onPause() {
    super.onPause()
    pusher.pausePush()
}

override fun onDestroy() {
    super.onDestroy()
    pusher.stopPush()
    pusher.destroy()
}

Verifikasi aliran

Setelah memanggil startPush, pastikan aliran tersebut aktif:

  1. Buka Konsol ApsaraVideo Live.

  2. Buka Live Management > Streams.

  3. Pastikan nama aliran Anda muncul dalam daftar aliran aktif.

Uji pemutaran menggunakan URL pemutaran di pemutar media atau browser.

Langkah berikutnya