please select

7.Sensing Network Quality

This document describes how to assess the current network conditions.
When you have a video call on WeChat under poor network conditions (for example, when you are in an elevator), WeChat displays a message indicating the current network quality is poor. This document describes how to use TRTC to implement a similar interaction in your own application.




Call Guide

TRTC provides the onNetworkQuality callback to report the current network quality once every two seconds. It contains two parameters: localQuality and remoteQuality.
localQuality indicates your current network quality, which has six levels: Excellent, Good, Poor, Bad, VeryBad, and Down.
remoteQuality is an array indicating the network quality of remote users. In this array, each element represents the network quality of a remote user.
Quality
Name
Description
0
Unknown
Unknown
1
Excellent
The current network is excellent.
2
Good
The current network is good.
3
Poor
The current network is fine.
4
Bad
The current network is poor. There may be obvious stuttering and delay.
5
VeryBad
The current network is very poor. TRTC can sustain the connection but cannot guarantee the communication quality.
6
Down
The current network cannot meet the minimum requirements of TRTC, and it is impossible to have a normal audio/video call.
You only need to listen for onNetworkQuality of TRTC and display the corresponding prompt on the UI.
import TRTCCloud, { TRTCQuality } from 'trtc-electron-sdk';
const rtcCloud = new TRTCCloud();

function onNetworkQuality(localQuality, remoteQuality) {
switch(localQuality.quality) {
case TRTCQuality.TRTCQuality_Unknown:
console.log('SDK has not yet sensed the current network quality.');
break;
case TRTCQuality.TRTCQuality_Excellent:
console.log('The current network is very good.');
break;
case TRTCQuality.TRTCQuality_Good:
console.log('The current network is good.');
break;
case TRTCQuality.TRTCQuality_Poor:
console.log('The current network quality barely meets the demand.');
break;
case TRTCQuality.TRTCQuality_Bad:
console.log('The current network is poor, and there may be significant freezes and call delays.');
break;
case TRTCQuality.TRTCQuality_Vbad:
console.log('The current network is very poor, the communication quality cannot be guaranteed.');
break;
case TRTCQuality.TRTCQuality_Down:
console.log('The current network does not meet the minimum requirements.');
break;
default:
break;
}
for (let i = 0; i < remoteQuality.length; i++) {
console.log(`remote user: ${remoteQuality[i].userId}, quality: ${remoteQuality[i].quality}`);
}
}

rtcCloud.on('onNetworkQuality', onNetworkQuality);