Téléchargez et intégrez le SDK ARTC sur Android, iOS, Windows, Mac, Linux et HarmonyOS.
Téléchargement du SDK
Développeur : Alibaba Cloud Computing Co., Ltd.
|
Plateforme |
Version du SDK |
Date de publication |
Taille du package |
|
Android |
v7.11.0 |
8 avril 2026 |
6,0 Mo (arm64) |
|
iOS |
v7.11.0 |
8 avril 2026 |
6,5 Mo (arm64) |
|
Linux |
v7.10.0 |
10 janvier 2026 |
- |
|
Windows |
v7.6.0 |
2 septembre 2025 |
- |
|
HarmonyOS |
v7.9.1 |
12 janvier 2026 |
7,96 Mo |
|
Mac |
v7.8.0 |
1er décembre 2025 |
- |
Pour l'intégration Web, consultez le guide Prise en main du SDK ARTC Web.
Intégration du SDK
Intégrez le SDK ARTC sur chaque plateforme prise en charge. Utilisez des versions cohérentes du SDK sur toutes les plateformes.
Android
Prérequis
Configuration requise :
Android Studio 2020.3.1 ou version ultérieure.
Un appareil de test exécutant Android 5.0 (niveau d'API SDK 21) ou version ultérieure, avec une connectivité réseau.
Étape 1 : Importer le SDK
Intégration automatique via Maven (recommandée)
-
Ouvrez le fichier
settings.gradleà la racine du projet. Ajoutez le dépôt Maven du SDK ARTC sousdependencyResolutionManagement/repositories:dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() // Add the Maven repository for the ARTC SDK. maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/public' } } }RemarqueSi votre version d'Android Gradle Plugin (AGP) est inférieure à 7.1.0, le fichier
settings.gradlepeut ne pas contenir le blocdependencyResolutionManagement, comme indiqué dans les Notes de publication d'Android Gradle Plugin 7.1. Utilisez plutôt l'approche suivante :Version AGP inférieure à 7.1.0
Ouvrez le fichier
build.gradleà la racine de votre projet. Ajoutez le dépôt Maven sousallprojects/repositories:allprojects { repositories { ... // Add the Maven repository for the ARTC SDK. maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/public' } } } -
Ouvrez le fichier
app/build.gradle. Ajoutez la dépendance du SDK ARTC sousdependencies. Remplacez\${latest_version}par le numéro de version réel. La dernière version est la 7.11.0.dependencies { // Add the ARTC SDK dependency. // Replace ${latest_version} with the actual version number. implementation 'com.aliyun.aio:AliVCSDK_ARTC:${latest_version}' // For version 7.4.0 and earlier, also add the keep dependency. // implementation 'com.aliyun.aio.keep:keep:1.0.1' }Pour AGP 8.1 et versions ultérieures, envisagez de migrer vers les catalogues de versions. Consultez Migrer les dépendances vers les catalogues de versions.
Intégration manuelle par téléchargement du SDK
Téléchargez le fichier AAR du SDK ARTC depuis la section de téléchargement du SDK. La dernière version est la 7.11.0. Format du nom de fichier :
AliVCSDK_ARTC-x.y.z.aar.Copiez le fichier AAR dans le répertoire de votre projet (par exemple,
app/libs). Créez le répertoire si nécessaire.-
Ouvrez le fichier
settings.gradleà la racine du projet. Ajoutez le répertoire du fichier AAR sousdependencyResolutionManagement/repositories:dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() // Add the relative path to the ARTC SDK AAR file. flatDir { dir 'app/libs' } } }Pour les versions AGP inférieures à 7.1.0, ajoutez les éléments suivants sous
allprojects/repositoriesdans le fichierbuild.gradle:allprojects { repositories { ... // Add the relative path to the ARTC SDK AAR file. flatDir { dir 'app/libs' } } } -
Ouvrez le fichier
app/build.gradle. Ajoutez la dépendance AAR sousdependencies:// Replace x.y.z with the actual version number. implementation(name:'AliVCSDK_ARTC', version: 'x.y.z', ext:'aar') -
Après la compilation, la dépendance apparaît sous External Libraries.
External Libraries > < Android API 35, extension level 13 Platform > /Users/wy/Libra... > < jbr-21 > /Applications/Android Studio.app/Contents/jbr/Conte... > Gradle: :AliVCSDK_ARTC:7.2.0@aar > Gradle: androidx.activity:activity:1.8.0@aar
Étape 2 : Configurer les architectures CPU
Dans le fichier app/build.gradle, spécifiez les architectures CPU prises en charge dans le bloc defaultConfig. Architectures disponibles : armeabi-v7a, arm64-v8a, x86 et x86_64.
android {
defaultConfig {
// ...other default configurations
// Support armeabi-v7a and arm64-v8a architectures.
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
}
Étape 3 : Configurer les permissions
Dans le fichier AndroidManifest.xml (app/src/main), ajoutez les permissions requises :
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- Request legacy Bluetooth permissions on older devices. -->
<uses-permission
android:name="android.permission.BLUETOOTH"
android:maxSdkVersion="30" />
<uses-permission
android:name="android.permission.BLUETOOTH_ADMIN"
android:maxSdkVersion="30" />
<!-- Needed only if your app communicates with already-paired Bluetooth devices. -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
Demander dynamiquement les permissions Bluetooth
Le SDK ARTC intègre ces permissions dans son fichier AndroidManifest.xml. À partir d'Android 12, la permission BLUETOOTH_CONNECT nécessite une demande au moment de l'exécution :
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
Si votre application n'a pas besoin de Bluetooth, supprimez la déclaration du fichier AndroidManifest.xml :
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove"/>
Scénario 1 : Fonctionnalité Bluetooth requise
targetSdk de l'application inférieur à 31
Lorsque targetSdk est inférieur à 31, la permission héritée BLUETOOTH contrôle Bluetooth. Déclarez les éléments suivants :
<!-- Declare Bluetooth permission. -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<!-- Override removal of high-version API 31+ permission. -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove" />
Le SDK déclare BLUETOOTH_CONNECT (Android 12, API 31), ce qui nécessite une demande au moment de l'exécution via requestPermissions. Sur certains appareils, déclarer BLUETOOTH_CONNECT sans demande dynamique provoque une exception SecurityException. Solutions :
Supprimez la déclaration de permission à l'aide de
tools:node="remove".Demandez la permission dynamiquement au moment de l'exécution.
targetSdk de l'application égal ou supérieur à 31
Pour targetSdk 31 et versions ultérieures, déclarez les permissions Bluetooth héritées et modernes dans le fichier AndroidManifest.xml :
<!-- Declare Bluetooth permission with android:maxSdkVersion set to 30 for backward compatibility. -->
<uses-permission android:name="android.permission.BLUETOOTH"/>
<!-- Declare high-version API 31+ Bluetooth permission. -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
<!-- Other Bluetooth permissions. -->
Étant donné que BLUETOOTH_CONNECT est une permission dynamique, demandez-la au moment de l'exécution :
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
String[] permissions = {
android.Manifest.permission.BLUETOOTH_CONNECT
};
ActivityCompat.requestPermissions(activity, permissions, REQUEST_BLUETOOTH);
}
Scénario 2 : Fonctionnalité Bluetooth non requise
Supprimez les déclarations Bluetooth inutiles pour éviter les plantages ou les demandes de permission indésirables.
Dans le fichier AndroidManifest.xml, utilisez tools:node="remove" pour supprimer les permissions :
<!-- Override and remove built-in Bluetooth permission declarations from the ARTC SDK. -->
<uses-permission android:name="android.permission.BLUETOOTH" tools:node="remove" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove" />
Autres permissions dynamiques
À partir d'Android 6.0 (API 23), ces permissions nécessitent également des demandes au moment de l'exécution, au-delà des déclarations dans le fichier AndroidManifest.xml :
Manifest.permission.CAMERAManifest.permission.WRITE_EXTERNAL_STORAGEManifest.permission.RECORD_AUDIOManifest.permission.READ_EXTERNAL_STORAGEManifest.permission.READ_PHONE_STATE
Pour Android 12 (API 31) et versions ultérieures, demandez également cette permission au moment de l'exécution :
Manifest.permission.BLUETOOTH_CONNECT
|
Permission |
Description |
Raison |
Requise |
Dynamique |
|
CAMERA |
Permission d'accès à la caméra |
Capturer le flux vidéo depuis la caméra de l'appareil |
Oui |
Android 6.0+ |
|
RECORD_AUDIO |
Permission d'accès au microphone |
Capturer le flux audio depuis le microphone de l'appareil |
Oui |
Android 6.0+ |
|
INTERNET |
Permission d'accès au réseau |
Transmettre les données audio/vidéo sur le réseau (par exemple, protocoles WebRTC) |
Oui |
Non |
|
ACCESS_NETWORK_STATE |
Accès à l'état du réseau |
Surveiller la connectivité réseau pour optimiser la qualité audio/vidéo, par exemple, reconnexion en cas de perte de réseau |
Facultative |
Non |
|
ACCESS_WIFI_STATE |
Accès à l'état Wi-Fi |
Obtenir les informations de connexion Wi-Fi actuelles pour optimiser les performances du réseau |
Facultative |
Non |
|
BLUETOOTH |
Permission Bluetooth de base |
Se connecter aux appareils Bluetooth (par exemple, casques Bluetooth) |
Facultative |
Non |
|
BLUETOOTH_CONNECT |
Permission de connexion Bluetooth |
Communiquer avec les appareils Bluetooth appariés (par exemple, diffusion audio) |
Facultative |
Android 12+ |
|
READ_PHONE_STATE |
Accès à l'état du téléphone |
Démarrer ou arrêter l'audio en fonction de l'état du téléphone (par exemple, appel entrant) |
Facultative |
Android 6.0+ |
|
READ_EXTERNAL_STORAGE |
Accès en lecture au stockage externe |
Lire la musique locale et d'autres fichiers |
Facultative |
Android 6.0+ |
|
WRITE_EXTERNAL_STORAGE |
Accès en écriture au stockage externe |
Enregistrer des fichiers audio/vidéo, des journaux et d'autres données |
Facultative |
Android 6.0+ |
Étape 4 : Empêcher l'obfuscation du code (facultatif)
Ajoutez les règles suivantes au fichier app/proguard-rules.pro pour empêcher l'obfuscation du code du SDK :
-keep class com.aliyun.allinone.** {
*;
}
-keep class com.aliyun.rts.network.AliHttpTool {
*;
}
-keep class com.aliyun.common.AlivcBase {
*;
}
-keep class com.huawei.multimedia.alivc.** {
*;
}
-keep class com.alivc.rtc.** {
*;
}
-keep class com.alivc.component.** {
*;
}
-keep class org.webrtc.** {
*;
}
iOS
Prérequis
Configuration requise :
Xcode 14.0 ou version ultérieure (la dernière version stable est recommandée).
CocoaPods 1.9.3 ou version ultérieure.
Un appareil physique exécutant iOS 9.0 ou version ultérieure.
Étape 1 : Importer le SDK
Intégration automatique via CocoaPods (recommandée)
-
Installez CocoaPods s'il n'est pas déjà installé :
sudo gem install cocoapods -
Accédez à la racine du projet et créez un Podfile :
pod init -
Ouvrez le fichier
Podfileet ajoutez la dépendance du SDK ARTC. La dernière version est la 7.11.0.target 'MyApp' do use_frameworks! # Replace ${latest version} with the actual version number. pod 'AliVCSDK_ARTC', '~> ${latest version}' end -
Installez les dépendances :
pod install Un fichier
.xcworkspaceest généré. Ouvrez-le pour lancer le projet dans Xcode.
Après avoir ouvert le projet, développez le dossier Pods dans le navigateur de projet Xcode à gauche. Confirmez qu'il contient le sous-dossier AliVCSDK_ARTC, ce qui indique que la dépendance du SDK a été intégrée avec succès.
Intégration manuelle par téléchargement du SDK
Téléchargez et extrayez la dernière version du SDK ARTC depuis la section de téléchargement du SDK.
Copiez le fichier framework du SDK extrait vers le répertoire de votre projet.
Ouvrez votre projet dans Xcode. Sélectionnez File > Add Files to "xxx" pour ajouter le fichier de bibliothèque du SDK au projet.
Sélectionnez la cible et définissez l'attribut du framework importé. Dans la section Frameworks, Libraries, and Embedded Content, confirmez que la colonne Embed pour
alivcffmpeg.frameworketAliVCSDK_ARTC.frameworkest définie sur Do Not Embed.
Étape 2 : Configurer les permissions
Ajoutez les permissions de caméra et de microphone au fichier Info.plist : Privacy - Camera Usage Description et Privacy - Microphone Usage Description.
(Facultatif) Activez l'audio en arrière-plan. Dans les capacités du projet, sélectionnez Audio, AirPlay, and Picture in Picture.
Windows
Prérequis
Configuration requise :
Visual Studio 2015 ou version ultérieure.
Windows 7 ou version ultérieure.
Étape 1 : Intégrer le SDK
Téléchargez la dernière version du SDK ARTC depuis la section de téléchargement du SDK.
Extrayez le SDK et copiez tous les fichiers dans le répertoire de votre projet.
-
Configurez les propriétés du projet :
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet et sélectionnez Properties.
Ajoutez les répertoires d'inclusion : sélectionnez Configuration Properties > C/C++ > General, et ajoutez le chemin des fichiers d'en-tête sous Additional Include Directories.
Ajoutez les répertoires de bibliothèques : sélectionnez Linker > General, et ajoutez le chemin des fichiers de bibliothèque (
.lib), par exemple.../x64/Release, sous Additional Library Directories.Spécifiez les fichiers de bibliothèque liés : sélectionnez Linker > Input, et ajoutez
AliRTCSdk.libsous Additional Dependencies.
Dépannage
Problèmes courants et solutions :
|
Problème |
Cause |
Solution |
|
|
Le chemin du fichier |
Vérifiez que le chemin du répertoire de bibliothèque dans Linker > General > Additional Library Directories pointe vers le dossier correct contenant le fichier |
|
Erreur de correspondance d'architecture |
La plateforme de compilation du projet ne correspond pas à l'architecture binaire du SDK. |
Assurez-vous que la plateforme de compilation du projet est définie sur x64. Le SDK ARTC pour Windows fournit uniquement des binaires |
|
L'application plante ou ne démarre pas au moment de l'exécution |
Les bibliothèques d'exécution Visual C++ Redistributable requises ne sont pas installées sur la machine cible. |
Installez la dernière version de Visual C++ Redistributable sur la machine de déploiement. |
Mac
Prérequis
Configuration requise :
Xcode 14.0 ou version ultérieure (la dernière version stable est recommandée).
macOS 10.13 ou version ultérieure.
Une connexion réseau stable.
Étape 1 : Intégrer le SDK
Le SDK ARTC pour Mac est fourni sous forme de bundles de bibliothèques dynamiques .framework (par exemple, AliRTCSdk.framework). Cela diffère des bibliothèques partagées .so utilisées sur Linux. Téléchargez le package SDK Mac et n'utilisez pas les fichiers .so du package Linux.
Téléchargez et extrayez la dernière version du SDK ARTC depuis la section Téléchargement du SDK.
Copiez les bundles
.frameworkdu package SDK vers le répertoire de votre projet. IgnorezPluginAAC.frameworksi vous n'utilisez pas l'encodage audio AAC.Dans Xcode, ajoutez les bibliothèques dynamiques et définissez Embed sur Embed & Sign.
Dépannage
Problèmes courants et solutions :
|
Problème |
Cause |
Solution |
|
Framework introuvable ou |
Le framework est ajouté au projet, mais sa propriété Embed n'est pas correctement définie. |
Dans l'onglet General de la cible, définissez la propriété Embed du framework du SDK ARTC sur Embed & Sign. Cela garantit que le framework est inclus dans votre application et correctement signé. |
|
Erreur de signature de code lors de la compilation |
L'identité de signature de code du framework SDK entre en conflit avec la configuration de signature de l'application. |
Dans les Build Settings de la cible du framework, définissez Code Signing Identity sur Sign to Run Locally ou faites correspondre l'identité de signature de l'application. Assurez-vous que l'ID d'équipe est cohérent sur toutes les cibles. |
|
Incompatibilité d'architecture sur Apple Silicon |
L'architecture binaire du SDK ne correspond pas au type de processeur du Mac. |
Pour les Mac basés sur Intel, assurez-vous que l'architecture de compilation du projet est définie sur |
FAQ
Le SDK ARTC introduit-il des permissions Android supplémentaires ?
Le SDK ARTC déclare automatiquement ces permissions Android (la liste exacte peut varier selon la version ; vérifiez le fichier AndroidManifest.xml dans le fichier .aar) :
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
Ces permissions prennent en charge la surveillance du réseau, la détection Wi-Fi, la connectivité Bluetooth et le routage audio.
Comment gérer la compatibilité des permissions ou les conflits avec le code existant ?
Le SDK ARTC gère la compatibilité des permissions (par exemple, BLUETOOTH_CONNECT au moment de l'exécution sur Android 12+), mais des problèmes peuvent survenir :
Anomalies de comportement au moment de l'exécution, telles que des échecs de fusion du manifeste.
Risque de rejet lors de l'examen Google Play : déclarer des permissions inutilisées (par exemple, Bluetooth) peut violer le principe du moindre privilège et entraîner un rejet.
Pour résoudre ces problèmes :
Évaluez la nécessité. Supprimez les permissions inutilisées. Par exemple, si targetSdk est égal ou inférieur à 30, supprimez la déclaration
BLUETOOTH_CONNECT.-
Résolvez les conflits de fusion du manifeste. Si des modules déclarent des attributs conflictuels (par exemple, des valeurs
maxSdkVersionincohérentes), utilisez l'espace de nomstoolsdans le fichierAndroidManifest.xmlpour remplacer :<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <!-- Example: Remove a permission declared by the SDK that the app does not need. --> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove" /> <!-- Example: Override a permission attribute. --> <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" tools:replace="android:maxSdkVersion" /> </manifest>
Quels codecs audio le SDK ARTC prend-il en charge ?
Le SDK ARTC utilise Opus comme codec audio par défaut, hérité du pipeline de traitement audio WebRTC.
Les faits suivants de cette section ont été vérifiés par rapport à la documentation source du SDK ARTC :
Dernière version du SDK : 7.11.0 (publiée le 8 avril 2026) pour les plateformes Android et iOS.
Coordonnée Maven :
com.aliyun.aio:AliVCSDK_ARTC. Nom du pod CocoaPods :AliVCSDK_ARTC.Codec audio Opus : normalisé sous RFC 6716 (IETF), utilisé comme codec par défaut et recommandé pour le pipeline audio du SDK ARTC.
Opus est un codec open source et libre de droits (RFC 6716) qui offre une haute qualité audio à 6–510 kbps avec une faible latence. Le SDK ARTC utilise Opus pour :
L'encodage et le décodage audio en temps réel pour les appels un à un et multipoints.
Le débit adaptatif en fonction des conditions du réseau.
La suppression du bruit intégrée et le contrôle automatique du gain (AGC).
Historique des versions
|
Version |
Plateforme |
Date de publication |
Modifications |
|
v7.11.0 |
iOS, Android |
8 avril 2026 |
Correction : Résolution des problèmes de stabilité RTC. |
|
v7.10.0 |
iOS, Android, Linux |
10 janvier 2026 |
Correction : Résolution des problèmes de stabilité RTC. |
|
v7.9.1 |
iOS, Android, Linux |
4 décembre 2025 |
Optimisation : Réduction du nombre de threads pour améliorer les performances du SDK RTC. Ajout de la capacité de préchargement au SDK RTC. Correction : Résolution des problèmes de stabilité RTC. |
|
v7.8.1 |
iOS, Android, Linux |
12 novembre 2025 |
Optimisation : Amélioration de l'expérience utilisateur. Correction : Résolution des problèmes de stabilité RTC. |
|
v7.8.0 |
iOS, Android, Linux, Mac |
5 novembre 2025 (iOS/Android/Linux), 1er décembre 2025 (Mac) |
Optimisation : Amélioration des performances des threads RTC. Correction : Résolution des problèmes de stabilité RTC. |
|
v7.7.0 |
iOS, Android, Linux |
31 juillet 2025 |
Nouveauté : Ajout de la prise en charge de l'enregistrement audio/vidéo local aux formats MP4, AAC et WAV. Prise en charge de l'API de focus Android pour les nouvelles API 26, activée par défaut. Optimisation : Ajout de la prise en charge du taux d'échantillonnage de 24 K pour le rappel de surveillance des données audio. Correction : Résolution des problèmes de stabilité RTC. |
|
v7.6.0 |
iOS, Android, Linux, Windows, HarmonyOS |
2 septembre 2025 |
Nouveauté : Ajout de listes d'autorisation et de blocage pour l'abonnement audio/vidéo. Prise en charge du partage d'écran Android 14. Optimisation : Prise en charge de la configuration de l'utilisation du canal droit pour la conversion mono vers stéréo par rééchantillonnage. Privilégier l'échantillonnage à 16 K pour les scénarios IA. Correction : Résolution des problèmes de stabilité. |