Topik ini menjelaskan cara menguji kualitas jaringan sebelum melakukan panggilan.
Pengenalan fitur
ARTC SDK mendukung pengujian kualitas jaringan lokal sebelum bergabung ke channel. Fitur ini membantu mengidentifikasi potensi masalah jaringan lebih awal sehingga Anda dapat mengoptimalkan jaringan dan menghindari tersendat, frame drop, serta gangguan audio selama panggilan, memastikan komunikasi voice dan video real-time yang stabil dan lancar.
Kode contoh
Deteksi kualitas jaringan di Android: Android/ARTCExample/AdvancedUsage/src/main/java/com/aliyun/artc/api/advancedusage/PreJoinChannelTest/PreJoinChannelTestActivity.java.
Lakukan deteksi kualitas jaringan di iOS: iOS/ARTCExample/AdvancedUsage/PreJoinChannelTest/PreJoinChannelTestVC.swift.
Cara kerja
Mengambil platform iOS sebagai contoh, ARTC SDK menyediakan metode startLastmileDetect untuk mendeteksi kualitas jaringan lokal sebelum bergabung ke channel. Metode ini mengembalikan skor dan statistik kualitas jaringan. Ikuti langkah-langkah berikut:
Sebelum bergabung ke channel, panggil
startLastmileDetectuntuk memulai pengujian. Di dalamAliRtcNetworkQualityProbeConfig, tetapkan target pengujian dan bitrate maksimum yang diharapkan.Setelah memanggil metode ini, SDK memicu callback berikut:
onLastmileDetectResultWithQuality: Dipicu 2 detik setelahstartLastmileDetect. Mengembalikan skor kualitas jaringan upstream dan downstream, mencerminkan penilaian subjektif.onLastmileDetectResultWithBandWidth: Dipicu 30 detik setelahstartLastmileDetect. Mengembalikan statistik jaringan real-time, termasuk tingkat kehilangan paket, fluktuasi jaringan, dan bandwidth yang tersedia, mencerminkan penilaian objektif.
Setelah memperoleh statistik kualitas jaringan, panggil
stopLastmileDetectuntuk menghentikan pengujian.
Contoh kode
Memulai pengujian kualitas jaringan
Android
Panggil operasi startNetworkQualityProbeTest:
public abstract int startNetworkQualityProbeTest(AlirtcNetworkQualityProbeConfig config);iOS
startLastmileDetect - Memulai deteksi kualitas jaringan last-mile
- (int)startLastmileDetect:(AliRtcNetworkQualityProbeConfig *_Nonnull)config;Windows
AliRtcNetworkProbeConfig config;
config.probeUplink = true; // Probe upstream network
config.probeDownlink = true; // Probe downstream network
rtcEngine.startLastmileDetect(config);II. Terima callback deteksi kualitas jaringan
Android
onNetworkQualityProbeTest: dipicu sekitar 3 detik setelah pengujian dimulai, memberikan wawasan awal mengenai kualitas jaringan.
public void onNetworkQualityProbeTest(AliRtcNetworkQuality quality){}
public void onNetworkQualityProbeTestResult(int code, AliRtcEngine.AlirtcNetworkQualityProbeResult result){}iOS
onLastmileDetectResultWithQuality - Callback untuk hasil deteksi kualitas jaringan
onLastmileDetectResultWithBandWidth: dipicu sekitar 30 detik setelah pengujian dimulai, memberikan detail kualitas jaringan.
- (void)onLastmileDetectResultWithQuality:(AliRtcNetworkQuality)networkQuality;
- (void)onLastmileDetectResultWithBandWidth:(int)code result:(AliRtcNetworkQualityProbeResult* _Nonnull)result;Windows
// Handle network quality detection callback (replace onNetworkQualityChanged)
void OnLastmileDetectResultWithQuality(AliEngineNetworkQuality networkQuality) override {
std::string message = getNetworkQualityString(networkQuality);
networkTestResultText += "Network detection quality: " + message + "\n";
std::cout << "=== Network quality detection 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;
}Hentikan deteksi kualitas jaringan
Android
stopNetworkQualityProbeTest - Hentikan pengujian probe kualitas jaringan
public abstract int stopNetworkQualityProbeTest();iOS
Panggil operasi stopLastmileDetect:
- (int)stopLastmileDetect;Windows
rtcEngine.stopLastmileDetect();