Todos os produtos
Search
Central de documentação

ApsaraVideo Live:Test network quality before a call

Última atualização: Jun 30, 2026

Teste a qualidade da rede local antes de entrar em um canal para detectar e resolver possíveis problemas antecipadamente.

Introdução ao recurso

O ARTC SDK permite testar a qualidade da rede local antes da entrada em um canal. Assim, você identifica e resolve possíveis problemas com antecedência, evitando travamentos, perda de quadros e interrupções de áudio durante chamadas de voz e vídeo em tempo real.

Código de exemplo

Android: Android/ARTCExample/AdvancedUsage/src/main/java/com/aliyun/artc/api/advancedusage/PreJoinChannelTest/PreJoinChannelTestActivity.java

iOS: iOS/ARTCExample/AdvancedUsage/PreJoinChannelTest/PreJoinChannelTestVC.swift

HarmonyOSHarmony/ARTCExample/entry/src/main/ets/pages/advancedusage/PreJoinChannelTestPage.ets

Como funciona

image

O exemplo a seguir usa iOS. O ARTC SDK fornece o método startLastmileDetect para testar a qualidade da rede local antes de entrar em um canal e retornar pontuações de qualidade e estatísticas. O procedimento é o seguinte:

  1. Antes de entrar em um canal, chame startLastmileDetect para iniciar o teste de qualidade de rede. Configure os parâmetros de teste em AliRtcNetworkQualityProbeConfig, incluindo o alvo do teste e a taxa de bits máxima esperada.

  2. O SDK aciona os seguintes callbacks:

    • onLastmileDetectResultWithQuality: acionado 2 segundos após a chamada de startLastmileDetect. Retorna pontuações das redes de upstream e downstream, refletindo uma avaliação subjetiva.

    • onLastmileDetectResultWithBandWidth: acionado 30 segundos após a chamada de startLastmileDetect. Retorna dados em tempo real sobre as condições da rede, incluindo taxa de perda de pacotes, jitter de rede e largura de banda disponível, refletindo uma avaliação objetiva.

  3. Após obter as estatísticas de qualidade da rede, chame stopLastmileDetect para interromper o teste de qualidade da rede local.

Exemplos de código

Iniciar um teste de qualidade de rede

Android

Chame a operação startNetworkQualityProbeTest:

public abstract int startNetworkQualityProbeTest(AlirtcNetworkQualityProbeConfig config);

iOS

Chame a operação 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);

Receber mensagens de callback

Android

onNetworkQualityProbeTest: acionado cerca de 3 segundos após o início do teste. Fornece informações iniciais sobre a qualidade da rede.

onNetworkQualityProbeTestResult: acionado cerca de 30 segundos após o início do teste. Fornece detalhes da qualidade da rede.

public void onNetworkQualityProbeTest(AliRtcNetworkQuality quality){}

public void onNetworkQualityProbeTestResult(int code, AliRtcEngine.AlirtcNetworkQualityProbeResult result){}

iOS

onLastmileDetectResultWithQuality: acionado cerca de 2 segundos após o início do teste. Fornece informações iniciais sobre a qualidade da rede.

onLastmileDetectResultWithBandWidth: acionado cerca de 30 segundos após o início do teste. Fornece detalhes da qualidade da rede.

- (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;
}

Interromper a detecção de qualidade da rede

Android

Chame a operação stopNetworkQualityProbeTest:

public abstract int stopNetworkQualityProbeTest();

iOS

Chame a operação stopLastmileDetect:

- (int)stopLastmileDetect;

Windows

rtcEngine.stopLastmileDetect();