通话数据统计
提示
以下示例代码中的 room 指加入房间成功后获取到的房间实例。
SDK 通过 IRCRTCReportListener 提供详细的通话状态数据,上层依据此数据可进行提示、状态判断等处理。
监听通话质量数据
在直播模式下、会议模式下均支持监听通话质量数据。
-
获取房间实例
- 会议模式:
RCRTCRoom - 直播模式:主播角色用户使用
RCLivingRoom实例、观众角色用户使用RCAudienceLivingRoom实例。在直播模式下,如果观众不加入房间直接订阅liveUrl,也可以在获取RCAudienceClient实例后使用registerReportListener注册IRCRTCReportListener监听。
- 会议模式:
-
使用
registerReportListener注册监听器
typescript
import { IRCRTCStateReport, IRCCandidatePairStat, IRCTrackStat, ILiveAudioState } from '@rongcloud/plugin-rtc'
// 注册房间质量数据监听器
room.registerReportListener({
/**
* 用于接收状态数据报告
* @param report
*/
onStateReport (report: IRCRTCStateReport) {
/**
* 报告生成时间
*/
const timestamp: number = report.timestamp
/**
* 对等连接状态数据,其中包含反应当前与媒体服务器之间的 UDP 通道质量的信息
*/
const iceCandidatePair: IRCCandidatePairStat = report.iceCandidatePair
/**
* 所有的上行流的状态数据
*/
const senders: IRCTrackStat[] = report.senders
/**
* 订阅的下行流状态数据
*/
const receivers: IRCTrackStat[] = report.receivers
},
/**
* 上报直播房间内音频合流的音源信息
* 仅在直播房间内观众端有效
* ILiveAudioState 中包含 userId、trackId、audioLevel
* @since @rongcloud/plugin-rtc@5.6.3
*/
onReportLiveAudioStates (liveAudioStates: ILiveAudioState[]) {
console.log('liveAudioStates', liveAudioStates);
}
})
IRCRTCReportListener 提供两个方法:
onStateReport:(适用于会议和直播场景)上报音视频统计数据,例如音视频流相关用户数据、音视频流质量数据、网络状态与质量数据等onReportLiveAudioStates:(仅限直播场景,要求 SDK 版本 ≧ 5.6.3)上报合流的各主播音源属性ILiveAudioState,其中包含每个主播的音量数据
通信质量数据
SDK 会通过 IRCRTCReportListener 的 onStateReport 方法上报音视频质量统计数据,例如音视频流相关用户数据、音视频流质量数据、网络状态与质量数据等。
IRCRTCStateReport:RTCPeerConnection 的详细状态数据IRCCandidatePairStat:连接状态数据IRCTrackStat:流状态数据