SDK Android de l'API Video de Vonage

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.

Toutes les Applications qui utilisent l'API Video de Vonage sont composées de deux parties :

  • Le côté client, qui utilise le SDK clients OpenTok et s'exécute dans le navigateur ou l'application mobile de l'utilisateur
  • Le côté serveur, qui utilise le SDK pour serveurs OpenTok et s'exécute sur votre serveur pour transmettre les informations d'authentification au client.

Le Client SDK permettant de développer des applications Android est le SDK Android d'OpenTok, qui fournit la plupart des fonctionnalités essentielles à votre application, notamment :

  • Connexion à une session OpenTok
  • Publication de flux dans une session
  • S'abonner à des flux dans une session

Des SDK clients sont également disponibles pour le Web, iOS, Windows, macOS, Linux et React. Tous les SDK clients OpenTok peuvent interagir entre eux.

Pour en savoir plus sur les principes de base des clients, des serveurs et des sessions OpenTok, ainsi que sur d'autres sujets, rendez-vous sur le Les bases de Video API page.

Remarques importantes

  • Le SDK Android 2.35.1+ prend en charge Android 17 (niveau d'API 37). Aucune nouvelle autorisation n'est requise pour cette mise à jour.

  • 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 le ACCESS_NETWORK_STATE et, au niveau 35+ de l'API d'Android, elle nécessite également l'autorisation REQUEST_IGNORE_BATTERY_OPTIMIZATIONS autorisation. Consultez la liste complète des autorisations requises.

  • 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 requises.

Interopérabilité

Les applications développées à l'aide du SDK Android OpenTok 2.35.1 peuvent interagir avec les applications OpenTok développées à l'aide des Client SDK OpenTok version 2.33 ou supérieure :

  • OpenTok.js
  • SDK OpenTok pour Android
  • SDK OpenTok pour iOS
  • SDK OpenTok pour Windows
  • SDK OpenTok pour macOS
  • SDK OpenTok pour Linux
  • OpenTok React Native SDK

Installation

Une version Maven est disponible à l'adresse suivante https://search.maven.org/artifact/com.opentok.android/opentok-android-sdk. L'identifiant de l'artefact est "opentok-android-sdk". Modifiez votre application pour télécharger le SDK OpenTok pour Android à partir de https://search.maven.org/artifact/com.opentok.android/opentok-android-sdk. Par exemple :

  1. Modifiez le fichier build.gradle de votre projet et ajoutez l'extrait de code suivant au fichier allprojects/repositories section :

    mavenCentral()
    
  2. Modifiez le fichier build.gradle de l'application et ajoutez l'extrait de code suivant au fichier dependencies section :

    implementation 'com.opentok.android:opentok-android-sdk:2.35.1'
    
  3. Modifiez le fichier build.gradle de l'application et ajoutez l'extrait de code suivant au fichier android section :

    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
    }
    

    Pour les versions du SDK Android antérieures à la version 2.22.0 :

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    

Votre application doit utiliser un identifiant de session et un jeton générés à l'aide de votre clé API OpenTok, que vous pouvez obtenir en vous connectant à votre Compte Video API de Vonage.

À des fins de test, vous pouvez générer un identifiant de session et un jeton en vous connectant à votre Compte Video API de Vonage. Pour une application de production, générez des jetons uniques (ainsi que des identifiants de session, si vous devez prendre en charge plusieurs sessions) à l'aide de la Bibliothèques côté serveur OpenTok.

Configuration requise

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.

Apprendre à construire

La meilleure façon d'apprendre à utiliser le SDK OpenTok pour Android est de suivre le guide OpenTok Tutoriel de base sur le chat vidéo.

Une fois que vous maîtriserez les bases du développement avec le SDK Android d'OpenTok, vous pourrez obtenir des informations plus détaillées et découvrir comment personnaliser votre application avec OpenTok guides destinés aux développeurs. Pour étudier des classes et des méthodes spécifiques de l'API, voir la page Référence de l'API du SDK OpenTok pour Android.

Exigences du développeur et du client

Le SDK Android d'OpenTok prend en charge simultanément un flux audio-vidéo publié, un flux audio-vidéo souscrit et jusqu'à cinq flux audio supplémentaires souscrits. Pour connecter plus de deux clients à une session à l'aide du SDK Android d'OpenTok, créez une session utilisant le routeur multimédia OpenTok (une session dont le mode multimédia est défini sur « routed »). Voir Le routeur multimédia OpenTok et les modes multimédias.

Le SDK est compatible avec les réseaux Wi-Fi et 4G LTE à haut débit.

Le SDK OpenTok pour Android est pris en charge sur les architectures armeabi-v7a, arm64-v8a et x86_64.

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 OpenTok pour Android fonctionne avec n'importe quel appareil Android 7.0 ou version ultérieure (Nougat, niveau d'API 24) équipé d'une caméra (pour la diffusion vidéo) et disposant d'une puissance de calcul et d'une mémoire suffisantes.

Permissions

Le SDK OpenTok pour Android utilise les autorisations suivantes :

  • android.permission.ACCESS_NETWORK_STATE -- Le SDK OpenTok pour Android nécessite cette autorisation à partir de la version 2.29.1.

  • android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS -- Le SDK OpenTok pour Android nécessite cette autorisation à partir de la version 2.29.1, pour un niveau d'API 35 ou 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 OpenTok pour Android demande cette autorisation à partir du niveau d'API 22 et en dessous, ainsi qu'à partir du niveau d'API 31 et au-delà.

  • 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 constaté que cette autorisation n'était pas utilisée par le SDK Android d'OpenTok, et nous la supprimerons dans une prochaine version.

  • android.permission.ACCESS_LOCAL_NETWORK -- Ce n'est pas obligatoire. Android 17 (API 37) a introduit cette autorisation afin de contrôler l'accès aux API de découverte du réseau local de haut niveau. Le SDK Android de Vonage Video utilise des sockets UDP/TCP brutes pour la négociation ICE WebRTC, qui ne sont pas soumises à cette autorisation. Les connexions P2P et les candidats ICE du réseau local fonctionnent correctement sur Android 17 sans cette autorisation.

Vous n'avez pas besoin de les ajouter au manifeste de votre application. Le SDK OpenTok pour Android les ajoute automatiquement. Toutefois, à partir du niveau d'API 21, certaines autorisations nécessitent que vous demandiez l'accord de l'utilisateur.

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

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 ou une version ultérieure, la compression, l'obfuscation et l'optimisation sont, par défaut, automatiquement activées.

Il n'est pas recommandé de réduire la taille et d'obfusquer le SDK OpenTok pour Android.

La configuration ci-dessus impose de conserver le code source du SDK OpenTok pour Android, sans pour autant empêcher la compression du reste de l'application.

Conservez les noms des paquets du SDK OpenTok pour Android à l'aide de l'option -keeppackagenames afin d'éviter tout conflit avec d'autres bibliothèques.

Par défaut, le compilateur effectue automatiquement une série d'optimisations. Il n'est pas recommandé d'appliquer d'autres optimisations, mais il est possible d'en activer de supplémentaires. Cela peut nécessiter d'inclure des règles ProGuard supplémentaires afin d'éviter des problèmes d'exécution. Pour ce faire, ajoutez les lignes suivantes dans le fichier `gradle.properties` du projet :

android.enableR8.fullMode=true

Il n'est pas recommandé de minifier le SDK Android d'OpenTok. La compression et l'obfuscation du SDK Android d'OpenTok à l'aide de l'optimisation mentionnée ci-dessus généreront des avertissements. Il convient de les désactiver.

# 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.

Échantillons de code

Pour obtenir un exemple de code, visitez notre site Référentiel « vonage-video-android-sdk-samples » sur GitHub.

Documentation et informations complémentaires

Voir le Référence de l'API du SDK OpenTok pour Android et le Guides du développeur OpenTok.

Pour une liste des nouvelles fonctionnalités et des problèmes connus, voir la page notes de mise à jour.