在特定应用场景下,开发者需要获取到参会者音视频数据以支持进行数据分析或显示。 通过平台API,开发者不仅可以获取到网络状态数据,同时还可以获取到参会者的音视频数据,数据详情根据可参考各平台文档详情。
通过监听NetworkIndicatorLevel回调方法,可知道当前的网路质量,该方法参数level代表了当前的网络质量,分别为1、2、3、4个等级,代表了差、中、良、优。此信息可在UI界面上呈现给用户,如果网络非常慢的情况下,可以通过关闭视频的方式来保证会议质量。 通话中可以通过getStatistics接口随时获取通话中音视频详细数据,其中包括带宽、丢包率、往返时延、抖动等参数,其次也可以获取到网络信息、加密方式等信息。具体参数见下如下示例:
interface IStatistics {
people: IAVSessionStatistics; // 与会人媒体统计信息
content: IAVSessionStatistics; // 共享内容媒体统计信息
network: INetworkStatistics; // 网络状况统计
}
interface IAVSessionStatistics{
audioRxInfo: IAudioStatistics[]; // 下行音频统计数据
audioTxInfo: IAudioStatistics[]; // 上行音频统计数据
videoRxInfo: IVideoStatistics[]; // 下行视频统计数据
videoTxInfo: IVideoStatistics[]; // 上行视频统计数据
}
interface INetworkStatistics{
rtt: number; // 往返时间 ms
rxDetectBw: number; // 下行带宽 kbps
rxJitter: number; // 下行抖动 ms
rxLost: number; // 下行丢包率
txDetectBw: number; // 上行带宽 kbps
txJitter: number; // 上行抖动 ms
txLost: number; // 上行丢包率
}
interface IAudioStatistics{
codecType: string; // 编码类型
displayName: string; // 显示名称
actBw: number; // 实际带宽
}
// 网路质量
// level 1~4分别代表代表了差、中、良、优
xyRTC.current.on("NetworkIndicatorLevel", (level:number) => {});
// 统计数据
xyRTC.getStatistics(): result<IStatistics>;