Tous les produits
Search
Centre de documentation

ApsaraVideo Live:Test network quality before a call

Dernière mise à jour :Aug 08, 2026

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

image

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 :

  1. Avant de rejoindre un canal, appelez startLastmileDetect pour lancer un test de qualité du réseau. Configurez les paramètres de test dans AliRtcNetworkQualityProbeConfig, notamment la cible du test et le débit maximal attendu.

  2. Le SDK déclenche les rappels suivants :

    • onLastmileDetectResultWithQuality : Déclenché 2 secondes après l'appel de startLastmileDetect. 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 de startLastmileDetect. 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.

  3. Une fois les statistiques de qualité du réseau obtenues, appelez stopLastmileDetect pour 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();