SDK Android
Le SDK Android de l'API Video de Vonage vous permet d'utiliser des sessions vidéo alimentées par l'API Video de Vonage dans les applications que vous créez pour les appareils Android.
La référence de l'API Video de Vonage pour le SDK Android se trouve à l'adresse suivante ici.
Remarques importantes :
- Le SDK Android 2.30.0+ prend en charge les appareils dont la taille de page est de 4 Ko et de 16 Ko.
- Le SDK Android 2.29.1+ nécessite une autorisation.
ACCESS_NETWORK_STATEet sur Android, le niveau API 35+ nécessite également une autorisationREQUEST_IGNORE_BATTERY_OPTIMIZATIONS. Consultez la liste complète des autorisations. - Le SDK Android 2.28.0+ requiert un niveau d'API Android minimum de 24.
- Le SDK Android 2.24.3+, 2.25.4+ et 2.26.0+ requiert un niveau d'API Android minimum de 23.
- Le SDK Android 2.24.0 et les versions ultérieures ne prennent plus en charge les architectures x86 32 bits.
- Les applications ciblant le niveau d'API 31 et plus nécessitent désormais une autorisation
READ_PHONE_STATE. Consultez la liste complète des autorisations.
Des SDK clients sont également disponibles pour le web, iOS, Windows, macOS, Linux et React Native. Tous les SDK clients peuvent interagir les uns avec les autres. Vous pouvez en apprendre davantage sur les principes de base des clients, serveurs, sessions et autres de Vonage Video sur le site Web de Vonage Video. Les bases de Video API page.
Exemples de code
Pour obtenir un exemple de code, visitez notre site repo vonage-video-android-sdk-samples sur GitHub.
Interopérabilité
Les applications écrites avec le SDK Android Video 2.33.0 peuvent interopérer avec les applications Vonage Video écrites avec la version 2.31+ des SDK clients Video :
- OpenTok.js
- SDK iOS
- SDK Windows
- SDK macOS
- SDK Linux
- SDK React Native
Installation
Une version Maven est disponible à l'adresse suivante https://search.maven.org/artifact/com.vonage/client-sdk-video. L'identifiant de l'artefact est "client-sdk-video".
Pour plus d'informations, voir Créer sa propre application à l'aide du SDK Android.
Exigences des développeurs et des clients
Le SDK Android prend en charge un flux audio-vidéo publié, un flux audio-vidéo souscrit et jusqu'à cinq flux audio supplémentaires souscrits simultanément.
Pour connecter plus de deux clients dans une session à l'aide du Client SDK Android, créez une session qui utilise le routeur média vidéo de Vonage (une session dont le mode média est réglé sur routé). Voir Le routeur vidéo multimédia de Vonage et les modes médias.
Le SDK est compatible avec les réseaux Wi-Fi et 4G LTE à haut débit.
Le SDK Android est pris en charge sur armeabi-v7a, armeabi64-v8aet x86_64 architectures.
Le SDK prend en charge les dispositifs de taille de page de 4 Ko et 16 Ko à partir de la version 2.30.0. Cela permet de garantir la fonctionnalité, d'améliorer la compatibilité et d'éviter les pannes. Pour plus d'informations, voir cette documentation Android sur les tailles des pages.
Le SDK Android fonctionne avec tout appareil Android 7.0+ (Nougat, niveau API 24) doté d'une caméra (pour la publication de vidéos) et d'une prise en charge adéquate du processeur et de la mémoire.
Créer sa propre application à l'aide du SDK Android
Une version Maven est disponible à l'adresse suivante https://search.maven.org/artifact/com.vonage/client-sdk-video.
L'identifiant de l'artefact est "client-sdk-video". Modifiez votre application pour télécharger le SDK Android à partir de https://search.maven.org/artifact/com.vonage/client-sdk-video. Par exemple :
- Modifiez le fichier build.gradle de votre projet et ajoutez l'extrait de code suivant au fichier
allprojects/repositoriessection :mavenCentral() - Modifiez le fichier build.gradle de l'application et ajoutez l'extrait de code suivant au fichier
dependenciessection :implementation 'com.vonage:client-sdk-video:2.33.0' - Assurez-vous que le fichier build.gradle de l'application contient l'extrait de code suivant
android(à partir d'Android Studio 4.1, cet extrait est présent lors de la création d'un nouveau projet).
Pour les versions du SDK Android supérieures à 2.28.1 :
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
Pour les versions du SDK Android comprises entre 2.22.0 et 2.28.1 :
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
Exigences du système
Pour une diffusion vidéo fiable, veillez à ce que votre appareil Android réponde aux spécifications recommandées :
- PROCESSEUR : Processeur double cœur récent ; ARM64 (ARMv8) quadricœur ou supérieur à 2,0 GHz+ (par exemple, Qualcomm Snapdragon série 600+, Samsung Exynos série 7 ou supérieure, Google Tensor (appareils Pixel)).
- GPU : Série Adreno 500+ (Qualcomm), Mali-G71+ (ARM) ; pour l'encodage/décodage vidéo accéléré au niveau matériel.
- MÉMOIRE VIVE : Au moins 6 Go de RAM pour les appels de groupe et le multitâche.
- Écran : 5"+ pour une meilleure expérience utilisateur.
- Capacité de la batterie : 3000+ mAh pour des appels vidéo prolongés.
- Réseau : Connectivité internet fiable ; fonctionne sur Wi-Fi ou cellulaire.
Ces recommandations garantissent une lecture stable, une utilisation réduite de l'unité centrale et des performances fluides lors de la diffusion de vidéos.
Exemples d'appareils par catégorie : Samsung Galaxy A12, Moto G Play et Nokia G10 sont d'entrée de gamme ; Google Pixel 6a, Samsung Galaxy A52/A53 et OnePlus Nord sont de milieu de gamme ; et Samsung Galaxy S23/S24, Google Pixel 8 Pro et OnePlus 11 sont de haut de gamme.
Permissions
Le SDK Android utilise les autorisations suivantes :
android.permission.ACCESS_NETWORK_STATE-- Le SDK Android de Vonage Video nécessite cette autorisation à partir de la version 2.29.1.android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS-- Le SDK Android Video de Vonage nécessite cette autorisation à partir de la version 2.29.1 dans le niveau API 35 et supérieur.android.permission.BLUETOOTH_CONNECT-- Vous devez l'activer pour les niveaux d'API 31 et supérieurs. Si vous souhaitez utiliser le périphérique Bluetooth avec le SDK Android DefaultAudioDevice ciblant le niveau API 31 et supérieur, veuillez demander des autorisations d'exécution dans l'application ou activer manuellement l'autorisation ("Nearby devices/Bluetooth") dans les paramètres de l'application.android.permission.READ_PHONE_STATE-- Le SDK Android Video de Vonage demande cette permission au niveau API 22 et inférieur, et 31 et supérieur.android.permission.CAMERA-- Si votre application n'utilise pas le capteur vidéo par défaut et n'accède pas à la caméra, vous pouvez supprimer cette autorisation.android.permission.INTERNET-- requis.android.permission.RECORD_AUDIO-- Si votre application n'utilise pas le périphérique audio par défaut et n'accède pas au microphone, vous pouvez supprimer cette autorisation.android.permission.MODIFY_AUDIO_SETTINGS-- Si votre application n'utilise pas le périphérique audio par défaut et n'accède pas au microphone, vous pouvez supprimer cette autorisation.android.permission.BLUETOOTH-- Le périphérique audio par défaut prend en charge l'audio Bluetooth. Si votre application n'utilise pas le périphérique audio par défaut et n'utilise pas Bluetooth, vous pouvez supprimer cette permission.android.permission.BROADCAST_STICKY-- Nous avons déterminé que cette permission n'est pas utilisée par le SDK Android, et nous la supprimerons dans une prochaine version.
Vous n'avez pas besoin de les ajouter au manifeste de votre application. Le SDK Android les ajoute automatiquement. Toutefois, à partir du niveau 21 de l'API, certaines autorisations nécessitent que vous demandiez à l'utilisateur de le faire.
Votre application peut supprimer toutes les autorisations qui ne seront pas nécessaires. Voir ce poste et cette documentation Android. Par exemple, ceci supprime le android.permission.CAMERA autorisation :
<uses-permission android:name="android.permission.CAMERA" tools:node="remove"/>
Règles ProGuard pour le SDK Android de Vonage Video
La configuration recommandée de ProGuard est la suivante :
-keeppackagenames
-keep class com.opentok.** { *; }
-keep class com.vonage.** { *; }
Lorsque vous utilisez Android Studio 3.4 ou le plugin Android Gradle 3.4.0+, la réduction, l'obscurcissement et l'optimisation sont, par défaut, automatiquement activés. Il n'est pas recommandé de réduire et d'obscurcir le SDK Android de Vonage Video.. La configuration ci-dessus oblige à conserver le code source de Vonage Video Android SDK, sans empêcher la réduction du reste de l'application. Préservez les noms des paquets de Vonage Video Android SDK avec le drapeau -keeppackagenames. Le compilateur effectue automatiquement un ensemble d'optimisations par défaut. Toute autre optimisation n'est pas recommandée, mais il est possible d'activer des optimisations supplémentaires, ce qui peut nécessiter d'inclure des règles ProGuard supplémentaires pour éviter les problèmes d'exécution, en ajoutant ce qui suit dans le fichier gradle.properties du projet :
android.enableR8.fullMode=true
Il n'est pas recommandé de minimiser le SDK Android de Vonage Video. La réduction et l'obscurcissement du SDK Android de Vonage Video avec l'optimisation précédente généreront des avertissements. Ceux-ci doivent être désactivés.
# Please add these rules to your existing keep rules in order to suppress warnings.
# This is generated automatically by the Android Gradle plugin.
-dontwarn org.bouncycastle.jsse.BCSSLParameters
-dontwarn org.bouncycastle.jsse.BCSSLSocket
-dontwarn org.bouncycastle.jsse.provider.BouncyCastleJsseProvider
-dontwarn org.conscrypt.Conscrypt$Version
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.conscrypt.ConscryptHostnameVerifier
-dontwarn org.openjsse.javax.net.ssl.SSLParameters
-dontwarn org.openjsse.javax.net.ssl.SSLSocket
-dontwarn org.openjsse.net.ssl.OpenJSSE
Voir cette documentation Android pour mieux comprendre les règles générales de ProGuard et ses fonctionnalités.
Intégration du ConnectionService Android
Utiliser la fonction Service de connexion pour créer une application VoIP qui utilise les capacités audio-vidéo du SDK Android. Pour créer une application VoIP de base :
- Enregistrer le
android.telecom.ConnectionServicedans le fichier AndroidManifest.xml.
<service android:name="com.example.package.MyConnectionService"
android:label="@string/some_label_for_my_connection_service"
android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE">
<intent-filter>
<action android:name="android.telecom.ConnectionService" />
</intent-filter>
</service>
- Créer une classe qui étend la classe
android.telecom.ConnectionServiceclasse. Mettre en œuvre les méthodes de la classeConnectionServicey comprisonCreateIncomingConnection(),onCreateOutgoingConnection,onCreateIncomingConnectionFailed()etonCreateOutgoingConnectionFailed(). - Créer une classe qui étend la classe
android.telecom.Connectionclasse. Mettre en œuvre les méthodes de la classeConnectiony comprisonAnswer()etonDisconnect. Dans la mise en œuvre de laonAnswer()vous pouvez vous connecter à une session Vonage Video, publier un flux dans la session et permettre au code de s'abonner aux flux créés dans la session. Dans la mise en œuvre de la méthodeonDisconnect()vous pouvez vous déconnecter de la session (et cesser de publier des flux et de vous y abonner). - Vous pouvez utiliser un service comme Google Firebase pour mettre en place des notifications push pour l'application. Vous pouvez configurer des notifications pour savoir quand votre application est en arrière-plan ou fermée. Ainsi, votre application peut recevoir un appel VoIP alors qu'elle est fermée.
Lors de l'utilisation de ConnectionService, utiliser le AudioDeviceManager.getAudioFocusManager() et mettre en œuvre les méthodes de la méthode AudioFocusManager pour déléguer le contrôle du focus audio à votre application. Ces instances sont définies dans le SDK Android de Vonage :
private AudioDeviceManager audioDeviceManager;
private BaseAudioDevice.AudioFocusManager audioFocusManager;
public void setupAudioFocusManager(Context context) {
audioDeviceManager = new AudioDeviceManager(context);
audioFocusManager = audioDeviceManager.getAudioFocusManager();
audioFocusManager.setRequestAudioFocus(false);
}
public void notifyAudioFocusIsActive() {
audioFocusManager.audioFocusActivated();
}
public void notifyAudioFocusIsInactive() {
audioFocusManager.audioFocusDeactivated();
}
Lors de la délégation du focus audio à l'application, le SDK arrête son routage audio automatique. Au lieu de cela, cette logique de routage est gérée par ConnectionServicequi signale à l'application les appareils audio disponibles par l'intermédiaire de l'interface utilisateur de la connexion. CallEndpoint et CallAudioState API. Votre application doit prendre en charge l'énumération des périphériques audio et la logique de sélection.
Cette délégation assure un routage audio correct et une coordination avec le système Android Telecom.
Voir le exemple d'application VOIP dans le vonage-video-android-sdk-samples . Il montre comment mettre en œuvre le ConnectionService pour créer une application VoIP qui utilise le SDK Android.
Services de premier plan
Les services d'avant-plan dans Android sont essentiels pour maintenir l'accès aux capacités de la caméra et du microphone même lorsque votre application est en arrière-plan. Pour les applications de chat vidéo, cela signifie que vous pouvez continuer à capturer de la vidéo et de l'audio tout en étant multitâches. À partir d'Android 14 (niveau API 34), vous devez déclarer un type de service approprié pour chaque service d'avant-plan dans le manifeste de votre application - par exemple, en déclarant le type de service "camera" avec l'élément correspondant FOREGROUND_SERVICE_CAMERA . En outre, vous devez demander les autorisations d'exécution nécessaires, telles que l'autorisation CAMERA, qui est soumise à des restrictions en cours d'utilisation. Cette configuration garantit que votre application dispose des privilèges requis pour exploiter les fonctionnalités de l'appareil photo et du microphone en arrière-plan, conformément aux dernières exigences et aux meilleures pratiques d'Android.
Documentation
Vous trouverez une documentation détaillée de chaque méthode Android dans la section guide de référence.
Plus d'informations
Pour une liste des nouvelles fonctionnalités et des problèmes connus, voir la page notes de mise à jour.