Testez la qualité du réseau local avant de rejoindre un canal pour détecter et résoudre les problèmes potentiels à l'avance.
Présentation de la fonctionnalité
Le SDK ARTC permet de tester la qualité du réseau local avant de rejoindre un canal, afin d'identifier et de résoudre les problèmes potentiels en amont. Cela évite les saccades, la perte d'images et les interruptions audio lors des appels vocaux et vidéo en temps réel.
Exemple de code
Android : Android/ARTCExample/AdvancedUsage/src/main/java/com/aliyun/artc/api/advancedusage/PreJoinChannelTest/PreJoinChannelTestActivity.java
iOS : iOS/ARTCExample/AdvancedUsage/PreJoinChannelTest/PreJoinChannelTestVC.swift
HarmonyOS : Harmony/ARTCExample/entry/src/main/ets/pages/advancedusage/PreJoinChannelTestPage.ets
Fonctionnement
L'exemple suivant utilise iOS. Le SDK ARTC fournit la méthode startLastmileDetect pour tester la qualité du réseau local avant de rejoindre un canal et renvoyer des scores de qualité ainsi que des statistiques. Procédez comme suit :
Avant de rejoindre un canal, appelez
startLastmileDetectpour lancer un test de qualité du réseau. Configurez les paramètres de test dansAliRtcNetworkQualityProbeConfig, notamment la cible du test et le débit maximal attendu.-
Le SDK déclenche les rappels suivants :
onLastmileDetectResultWithQuality: Déclenché 2 secondes après l'appel destartLastmileDetect. Ce rappel renvoie les scores du réseau montant et descendant, reflétant une évaluation subjective.onLastmileDetectResultWithBandWidth: Déclenché 30 secondes après l'appel destartLastmileDetect. Ce rappel renvoie des données en temps réel sur les conditions du réseau, notamment le taux de perte de paquets, la gigue du réseau et la bande passante disponible, reflétant une évaluation objective.
Une fois les statistiques de qualité du réseau obtenues, appelez
stopLastmileDetectpour arrêter le test de qualité du réseau local.
Exemples de code
Lancer un test de qualité du réseau
Android
Appelez l'opération startNetworkQualityProbeTest :
public abstract int startNetworkQualityProbeTest(AlirtcNetworkQualityProbeConfig config);
iOS
Appelez l'opération startLastmileDetect :
- (int)startLastmileDetect:(AliRtcNetworkQualityProbeConfig *_Nonnull)config;
Windows
AliRtcNetworkProbeConfig config;
config.probeUplink = true; // Test the upstream network
config.probeDownlink = true; // Test the downstream network
rtcEngine.startLastmileDetect(config);
Recevoir les messages de rappel
Android
onNetworkQualityProbeTest : Déclenché environ 3 secondes après le début du test, ce rappel fournit des informations initiales sur la qualité du réseau.
onNetworkQualityProbeTestResult : Déclenché environ 30 secondes après le début du test, ce rappel fournit des détails sur la qualité du réseau.
public void onNetworkQualityProbeTest(AliRtcNetworkQuality quality){}
public void onNetworkQualityProbeTestResult(int code, AliRtcEngine.AlirtcNetworkQualityProbeResult result){}
iOS
onLastmileDetectResultWithQuality : Déclenché environ 2 secondes après le début du test, ce rappel fournit des informations initiales sur la qualité du réseau.
onLastmileDetectResultWithBandWidth : Déclenché environ 30 secondes après le début du test, ce rappel fournit des détails sur la qualité du réseau.
- (void)onLastmileDetectResultWithQuality:(AliRtcNetworkQuality)networkQuality;
- (void)onLastmileDetectResultWithBandWidth:(int)code result:(AliRtcNetworkQualityProbeResult* _Nonnull)result;
Windows
// Handle network quality testing callback (replace onNetworkQualityChanged)
void OnLastmileDetectResultWithQuality(AliEngineNetworkQuality networkQuality) override {
std::string message = getNetworkQualityString(networkQuality);
networkTestResultText += "Network testing quality: " + message + "\n";
std::cout << "=== Network quality testing callback ===" << std::endl;
std::cout << networkTestResultText << std::endl;
}
// Handle lastmile network detection result callback
void onLastmileDetectResultWithBandWidth(int code,
const AliRtcNetworkProbeResult& result) override {
std::string message = buildNetworkTestResultMessage(code, result);
networkTestResultText += message + "\n";
std::cout << "=== Lastmile detection result callback ===" << std::endl;
std::cout << networkTestResultText << std::endl;
}
Arrêter la détection de la qualité du réseau
Android
Appelez l'opération stopNetworkQualityProbeTest :
public abstract int stopNetworkQualityProbeTest();
iOS
Appelez l'opération stopLastmileDetect :
- (int)stopLastmileDetect;
Windows
rtcEngine.stopLastmileDetect();