Topik ini menjelaskan cara menguji kualitas jaringan sebelum melakukan panggilan.
Pengenalan fitur
ARTC SDK mendukung pengujian kualitas jaringan lokal sebelum bergabung ke channel guna mengidentifikasi potensi masalah jaringan dan menanganinya lebih awal. Fitur ini membantu mencegah gangguan seperti tersendat, frame drop, dan gangguan audio, sehingga memastikan stabilitas serta kelancaran panggilan voice dan video real-time.
Contoh kode
Android: Android/ARTCExample/AdvancedUsage/src/main/java/com/aliyun/artc/api/advancedusage/PreJoinChannelTest/PreJoinChannelTestActivity.java
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, serta mengembalikan skor dan statistik kualitas jaringan. Prosedurnya adalah sebagai berikut:
Sebelum bergabung ke channel, panggil
startLastmileDetectuntuk memulai pengujian kualitas jaringan. Konfigurasikan parameter pengujian dalamAliRtcNetworkQualityProbeConfig, termasuk target pengujian dan bitrate maksimum yang diharapkan.SDK memicu callback berikut:
onLastmileDetectResultWithQuality: Dipicu 2 detik setelahstartLastmileDetectdipanggil. Callback ini mengembalikan skor jaringan upstream dan downstream, yang mencerminkan penilaian subjektif.onLastmileDetectResultWithBandWidth: Dipicu 30 detik setelahstartLastmileDetectdipanggil. Callback ini mengembalikan data real-time mengenai kondisi jaringan, termasuk tingkat kehilangan paket, fluktuasi jaringan, dan bandwidth yang tersedia, yang mencerminkan penilaian objektif.
Setelah memperoleh statistik kualitas jaringan, panggil
stopLastmileDetectuntuk menghentikan pengujian kualitas jaringan lokal.
Contoh kode
Memulai pengujian kualitas jaringan
Android
Panggil operasi startNetworkQualityProbeTest:
public abstract int startNetworkQualityProbeTest(AlirtcNetworkQualityProbeConfig config);iOS
Panggil operasi startLastmileDetect:
- (int)startLastmileDetect:(AliRtcNetworkQualityProbeConfig *_Nonnull)config;Terima pesan callback
Android
onNetworkQualityProbeTest: dipicu sekitar 3 detik setelah pengujian dimulai, memberikan wawasan awal mengenai kualitas jaringan.
onNetworkQualityProbeTestResult: dipicu sekitar 30 detik setelah pengujian dimulai, memberikan detail kualitas jaringan.
public void onNetworkQualityProbeTest(AliRtcNetworkQuality quality){}
public void onNetworkQualityProbeTestResult(int code, AliRtcEngine.AlirtcNetworkQualityProbeResult result){}iOS
onLastmileDetectResultWithQuality: dipicu sekitar 2 detik setelah pengujian dimulai, memberikan wawasan awal mengenai 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;Hentikan deteksi kualitas jaringan
Android
Panggil operasi stopNetworkQualityProbeTest:
public abstract int stopNetworkQualityProbeTest();iOS
Panggil operasi stopLastmileDetect:
- (int)stopLastmileDetect;