通话质量监测
功能描述
加入房间后,SDK上报通话质量相关的回调,上报当前通话的网络质量、本地和远端的音视频统计信息。
接口调用流程
通话质量上报
network-quality网络上下行质量报告事件,用户加入房间后,在网络质量变化的时候会触发一次该事件,报告用户的本地网络上下行质量情况。
this.client.on('network-quality', (networkQualityInfo) => { console.info(`network-quality: uplinkNetworkQuality=${networkQualityInfo.uplinkNetworkQuality}, downlinkNetworkQuality = ${networkQualityInfo.downlinkNetworkQuality}`) })
获取本地音频流统计信息
getLocalAudioStats获取本地设备发送音频流的统计信息。您可以查看当前通话中发送音频的字节数和包数等。
示例代码如下:
this.client.getLocalAudioStats().then((stats) => { console.info(`getLocalAudioStats: ${stats}`) })
获取远端音频流统计信息
getRemoteAudioStats获取当前通话中远端用户音频流的统计信息。您可以查看远端用户发送的音频流字节数、收包数、丢包率等信息。
示例代码如下:
this.client.getRemoteAudioStats().then((stats) => { console.info(`getRemoteAudioStats: ${stats}`) })
获取本地视频流统计信息
getLocalVideoStats获取当前本地视频流统计信息,您可以查看本地已发送的字节数、包数、编码帧数,帧数、视频宽度、视频高度等信息。
示例代码如下:
this.client.getLocalVideoStats().then((stats) => { console.info(`getLocalVideoStats: ${stats}`) })
获取远端视频流统计信息
getRemoteVideoStats获取当前远端视频流统计信息,您可以查看远端用户发送的视频流字节数、包数、编码帧数,帧数、视频宽度、视频高度等信息。
示例代码如下:
this.client.getRemoteVideoStats().then((stats) => { console.info(`getRemoteVideoStats: ${stats}`) })
获取客户端连接状态
getConnectionState获取客户端的连接状态,分别为:
- CONNECTING:连接建立中。
- CONNECTED:连接已建立。
- RECONNECTING:重新连接中。
- DISCONNECTED:连接已断开。
示例代码如下:
console.info(`getConnectingState: ${this.client.getConnectionState()}`)
获取当前网络传输状况统计数据
getTransportStats获取当前网络传输状况统计数据,包括已发送字节数、已接收字节数、当前出流码率、当前入流码率等信息,该方法需要publish后调用。
示例代码如下:
this.client.getTransportStats().then( (rtt) => { console.info('###getTransportStats: bytesSent ' + rtt.bytesSent) console.info('###getTransportStats: bytesReceived ' + rtt.bytesReceived) console.info('###getTransportStats: sendBitrate ' + rtt.sendBitrate) console.info('###getTransportStats: recvBitrate ' + rtt.recvBitrate) console.info(`getTransportStats: ${rtt.rtt}`) }, (error) => { console.info(`getTransportStats: ${error}`) })