通话质量监测 编辑文档

功能描述

QttAudio支持报告频道中用户的网络情况。QttAudio会每隔2秒进行一次网络情况统计,包括用户网络的网络质量等级、RTT、上下行丢包率、抖动等统计。

其中网络质量等级分为6类:

QUALITY_UNKNOWN = 0, //网络质量未知
QUALITY_VGOOD = 1, //网络质量好,通话流畅
QUALITY_GOOD = 2, //网络质量较好,偶有卡顿
QUALITY_POOR = 3, //网络质量差,但不影响沟通
QUALITY_BAD = 4, //网络质量比较差,勉强能沟通
QUALITY_VBAD = 5, //网络质量非常差,基本不能沟通

接口描述

  • public class RtcStat {
    public int mUpLossRate; //上行丢包率
    public int mDownLossRate; //下行丢包率
    public int mRttAverage; //平均Rtt
    public int mJitter; //抖动
    }

    public interface ChannelObserver {
    /**
    * 当前通话网络统计回调,通话中每两秒触发一次
    * @param uid 用户ID。表示该ID的用户的网络质量,如果为0,表示本地用户的网络质量
    * @param txQuality 该用户的上行网络质量
    * @param rxQuality 该用户的下行网络质量
    * @param stat 通话相关的统计信息
    */
    void onNetworkStats(long uid, int txQuality, int rxQuality, RtcStat stat);
    }

示例代码

ChannelObserver channelObserver = new ChannelObserver() {
@Override
public void onNetworkStats(long uid, int txQuality, int rxQuality, RtcStat stat) {
if (uid == 0) {
Log.d("qtt_rtc", "自己网络情况:上行质量 " + txQuality + " 下行质量 " + rxQuality + " 上行丢包 " + stat.mUpLossRate + " 下行丢包 " + stat.mDownLossRate + " 端到端时延 " + stat.mRttAverage + " 抖动 " + stat.mJitter);
//todo 这里实现自己网络情况统计的逻辑
} else {
Log.d("qtt_rtc", "uid: " + uid + " 用户网络情况:上行质量 " + txQuality + " 下行质量 " + rxQuality + " 上行丢包 " + stat.mUpLossRate + " 下行丢包 " + stat.mDownLossRate + " 端到端时延 " + stat.mRttAverage + " 抖动 " + stat.mJitter);
//todo 这里实现他人网络情况统计的逻辑
}
};
ChannelEngine channelEngine = ChannelEngine.GetChannelInstance(getApplicationContext(),"your appkey",channelObserver);
野狗新手?
立即注册,为你提供安全可靠的实时通信云服务。
没找到需要的文档?
你可以提交工单反馈 或 阅读常见问题