网络质量是影响参会体验的关键因素之一,通过平台开发者可实时获取会议网络质量数据以支持数据分析或显示。
网络质量数据通过事件回调的方式返回,根据小鱼易连产品定义规则进行了质量级别的划分,开发者可参考进行后续业务处理。
会议中注册了NemoSDKListener即可收到onNetworkIndicatorLevel回调,该方法参数level代表了当前的网络质量,分别为1、2、3、4个等级,代表了差、中、良、优。此信息可在UI界面上呈现给用户,如果网络非常慢的情况下,可以通过关闭视频的方式来保证会议质量。 onVideoStatusChange回调显示了会议中视频质量状态,分别为0:正常;1:本地网络不稳定;2:系统忙,视频质量降低;3:对方网络不稳定;4:网络不稳定,请稍候;5:WiFi信号不稳定。
采用图标的形式提示用户当前网络状态:
XyCallActivity.java
/**
* 本地网络质量提示
*
* @param level 1、2、3、4个等级,差-中-良-优
*/
@Override
public void showNetLevel(int level) {
if (ivNetworkState == null) {
return;
}
switch (level) {
case 4:
ivNetworkState.setImageResource(R.drawable.network_state_four);
break;
case 3:
ivNetworkState.setImageResource(R.drawable.network_state_three);
break;
case 2:
ivNetworkState.setImageResource(R.drawable.network_state_two);
break;
case 1:
ivNetworkState.setImageResource(R.drawable.network_state_one);
break;
}
}
采用Toast提示用户视频质量变化:
XyCallActivity.java
/**
* 视频质量回调
* 0:正常 1:本地网络不稳定 2:系统忙,视频质量降低 3:对方网络不稳定 4:网络不稳定,请稍候 5:WiFi信号不稳定
*/
@Override
public void showVideoStatusChange(int videoStatus) {
if (videoStatus == VideoStatus.VIDEO_STATUS_NORMAL) {
Toast.makeText(XyCallActivity.this, "网络正常", Toast.LENGTH_SHORT).show();
} else if (videoStatus == VideoStatus.VIDEO_STATUS_LOW_AS_LOCAL_BW) {
Toast.makeText(XyCallActivity.this, "本地网络不稳定", Toast.LENGTH_SHORT).show();
} else if (videoStatus == VideoStatus.VIDEO_STATUS_LOW_AS_LOCAL_HARDWARE) {
Toast.makeText(XyCallActivity.this, "系统忙,视频质量降低", Toast.LENGTH_SHORT).show();
} else if (videoStatus == VideoStatus.VIDEO_STATUS_LOW_AS_REMOTE) {
Toast.makeText(XyCallActivity.this, "对方网络不稳定", Toast.LENGTH_SHORT).show();
} else if (videoStatus == VideoStatus.VIDEO_STATUS_NETWORK_ERROR) {
Toast.makeText(XyCallActivity.this, "网络不稳定,请稍候", Toast.LENGTH_SHORT).show();
} else if (videoStatus == VideoStatus.VIDEO_STATUS_LOCAL_WIFI_ISSUE) {
Toast.makeText(XyCallActivity.this, "WiFi信号不稳定", Toast.LENGTH_SHORT).show();
}
}