Tous les produits
Search
Centre de documentation

ApsaraVideo Live:Push SDK for Android

Dernière mise à jour :Aug 19, 2026

Intégrez le SDK de push ApsaraVideo Live dans votre application Android pour capturer les entrées de la caméra et du microphone, puis diffuser un flux en direct vers un endpoint d'ingestion.

Fonctionnement

Le SDK de push gère l'intégralité du pipeline, de la capture des médias à leur diffusion :

  1. Le SDK capture la vidéo via la caméra et l'audio via le microphone.

  2. Votre application appelle le SDK pour initialiser un flux de push avec l'URL d'ingestion fournie par ApsaraVideo Live.

  3. Le SDK encode et transmet le flux vers l'endpoint d'ingestion en temps réel.

  4. Les spectateurs se connectent à l'URL de lecture pour regarder le flux en direct.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un compte Alibaba Cloud avec le service ApsaraVideo Live activé

  • Un projet Android ciblant Android 5.0 (niveau d'API 21) ou une version ultérieure

  • Android Studio 3.0 ou une version ultérieure

  • Une URL d'ingestion valide obtenue depuis la console ApsaraVideo Live

Intégrer le SDK

Ajouter la dépendance Maven

Le SDK de push est distribué via Maven. Ajoutez la dépendance en fonction de la version de votre plugin Android Gradle (AGP).

Pour AGP 7.1.0 ou une version ultérieure, ajoutez le dépôt Maven dans settings.gradle :

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

Pour les versions d'AGP antérieures à 7.1.0, ajoutez le dépôt Maven dans le fichier build.gradle au niveau du projet :

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

Si dependencyResolutionManagement n'est pas présent dans settings.gradle, votre version d'AGP est antérieure à 7.1.0. Utilisez plutôt l'approche via build.gradle.

Ensuite, ajoutez la dépendance du SDK dans le fichier build.gradle au niveau de l'application :

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

Remplacez x.x.x par la dernière version du SDK. Pour connaître la version actuelle, consultez les notes de version d'ApsaraVideo Live.

Déclarer les permissions

Ajoutez les permissions suivantes à votre fichier AndroidManifest.xml :

<!-- Camera access for video capture -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- Microphone access for audio capture -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!-- Network access for stream delivery -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Network state detection for adaptive bitrate -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Wi-Fi state detection -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- Read local media files -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- Keep screen on during streaming -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- Background streaming support -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

Sur Android 6.0 (niveau d'API 23) et les versions ultérieures, les permissions CAMERA et RECORD_AUDIO sont considérées comme dangereuses et doivent être demandées au moment de l'exécution. Demandez-les avant de démarrer le flux de push.

Configurer ProGuard

Si votre application utilise la réduction de code, ajoutez les règles suivantes à votre fichier de configuration ProGuard :

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

Démarrer un flux de push

Initialiser le pusher

Créez une instance AlivcLivePusher et configurez-la avec 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)

Ajouter une surface de prévisualisation

Lieez une SurfaceView au pusher pour afficher l'aperçu de la caméra :

Java

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

Kotlin

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

Démarrer et arrêter la diffusion

Appelez startPush avec votre URL d'ingestion pour commencer la diffusion. Remplacez <your-ingest-domain> et <stream-name> par les valeurs issues de votre console ApsaraVideo Live.

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)

Pour arrêter le flux et libérer les ressources :

Java

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

Kotlin

pusher.stopPush()
pusher.destroy()

Gérer le cycle de vie du pusher

Appelez les méthodes suivantes dans les rappels du cycle de vie de votre Activity afin d'éviter les fuites de ressources :

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()
}

Vérifier le flux

Après avoir appelé startPush , confirmez que le flux est actif :

  1. Ouvrez la console ApsaraVideo Live.

  2. Accédez à Live Management > Streams.

  3. Vérifiez que le nom de votre flux apparaît dans la liste des flux actifs.

Testez la lecture à l'aide de l'URL de lecture dans un lecteur multimédia ou un navigateur.

Étapes suivantes