网络状况
本章节介绍有关网络状况的功能。针对网络状况,网易云信提供了网络探测和网络状况回调这两个功能。
网络探测是一个辅助的网络情况测试工具,可以探测音视频通话网络的连通性、丢包率和延迟等信息。目前支持选择音频通话和视频通话这两种通话模式的探测,视频通话的网络探测支持选择相应的清晰度进行探测。另外,网络探测会占用网络带宽资源,建议在通话开始之前使用以免影响通话质量。
网络状况回调是通话过程中,SDK 定时会通知上层当前的网络状况。值得注意的是,这个网络状况是基于当前的实际通话情况的。比如,当前正进行的是音频通话,上报的网络情况是良好,那只是说明当前的网络情况可以很好地满足音频通话,并不能说明当前进行视频通话也会很流畅。
网络探测
API 介绍
- 连上 PC Agent 之后,可以通过该方法探测当前网络的情况
示例
var detectType = Netcall.NETDETECT_AUDIO;
netcall
.netDetect(detectType)
.then(function(obj) {
console.log("netDetect success", obj);
})
.catch(function(err) {
console.log("netDetect error", err);
});
- 参数说明
参数名 | 类型 | 说明 |
---|---|---|
detectType | number | 需要探测的类型,可选值参照这里 |
obj 为探测结果对象,属性如下
obj 属性名 | 类型 | 说明 |
---|---|---|
code | number | 是否探测成功 |
status | number | 探测结果类型,可选值参照这里 |
PC-Agent网络状况回调
API 介绍
- 仅使用PC agent的时候,与WebRTC不兼容
- 连上 PC Agent 之后,可以通过该方法实时监听当前网络的情况
示例
netcall.on("netStatus", function(obj) {
console.log("当前网络情况", obj);
});
- 参数说明
obj 为网络情况结果对象,属性如下
obj 属性名 | 类型 | 说明 |
---|---|---|
account | string | 当前的账号名 |
status | number | 网络情况结果类型,可选值参照这里 |
WebRTC网络状况回调
- API 介绍
- 仅使用WebRTC/NRTC的时候,与PC agent不兼容
- 当用户与其他用户建立 P2P 音视频会话或者多人音视频会话后,WebRTC 可以根据当前网络延迟和 rtt 对当前网络状况进行一个评估。
- 挂断电话或者离开频道后,网络回调就停止检测了
- 仅支持最新 Chrome 和 Firefox
ps:2019-06-26 网络状态常量将在下一个版本有变动,将会去掉CHAT_NET_STATUS_VERY_GOOD
,并新增CHAT_NET_STATUS_VIDEO_CLOSE
,请升级时注意变更。
- 示例
netcall.on("netStatus", function(obj) {
console.log("当前网络情况", obj.quality);
});
- 参数说明
obj 为网络情况结果对象,属性如下
obj 属性名 | 类型 | 说明 |
---|---|---|
quality | number | 网络情况结果类型 |
quality 的取值如下
quality | 说明 |
---|---|
WebRTC.CHAT_NET_STATUS_VERY_GOOD | 当前网络状况非常好 |
WebRTC.CHAT_NET_STATUS_GOOD | 网络状况好,音视频通话偶有卡顿; |
WebRTC.CHAT_NET_STATUS_POOR | 网络状况差,音频通话流畅; |
WebRTC.CHAT_NET_STATUS_BAD | 网络状况非常差,音频通话偶有卡顿。 |
网络探测(webrtc)
API 介绍
- webrtc 使用该方式在通话前进行网络探测,用户探测用户的当前网络情况,判断是否能够正常的进行音视频通话。(该方法需要使用摄像头,请在音视频通话前使用该接口)
示例
netcall
.detectNetworkStatus({ detectTime: 30, fromDevice: true })
.then(function(obj) {
console.log("netDetect completed", obj);
})
.catch(function(err) {
console.log("netDetect error", err);
});
- 参数说明
参数名 | 类型 | 说明 |
---|---|---|
detectTime | number | 探测的时间,[建议 15s 以上] |
fromDevice | Boolean | 探测源使用摄像头,设置为 true |
obj 为探测结果对象,属性如下
obj 属性名 | 类型 | 说明 |
---|---|---|
cid | number | 本次测试的频道 id |
user_ip | number | 本次测试的自己端的外网 IP |
server_ip | number | 本次的测试的服务器端的 IP |
browser | string | 本次的测试使用的浏览器类型 |
upload_network_status | array | 探测结果上行链路的详细信息 |
download_network_status | array | 探测结果上行链路的详细信息 |
upload_network_status 为探测结果上行链路的详细信息,属性如下
obj 属性名 | 类型 | 说明 |
---|---|---|
up_rtt | number | 上行链路的延迟 |
up_loss | number | 上行链路的丢包率 |
up_bwe | number | 上行链路的带宽 |
up_framerate | number | 上行链路的视频帧率 |
up_resolution | string | 上行链路的视频分辨率 |
codec | string | 上行链路的视频编码类型 |
up_status | string | 上行链路是否建立成功 |
network_status | string | 上行链路状况说明 |
download_network_status 为探测结果上行链路的详细信息,属性如下
obj 属性名 | 类型 | 说明 |
---|---|---|
down_rtt | number | 下行链路的延迟 |
down_loss | number | 下行链路的丢包率 |
down_bwe | number | 下行链路的带宽 |
down_framerate | number | 下行链路的视频帧率 |
down_resolution | string | 下行链路的视频分辨率 |
codec | string | 下行链路的视频编码类型 |
down_status | string | 下行链路是否建立成功 |
network_status | string | 下行链路状况说明 |
本篇文档内容是否对您有帮助?
有帮助
我要吐槽
此文档对你是否有帮助
×
有帮助
我要吐槽
×