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.
TRTC provides the onNetworkQuality callback to report the current network quality once every two seconds. It contains two parameters: localQuality
and remoteQuality
.
Excellent
, Good
, Poor
, Bad
, VeryBad
, and Down
.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);
Was this page helpful?