网络状况

本章节介绍有关网络状况的功能。针对网络状况,网易云提供了网络探测和网络状况回调这两个功能,linux端sdk暂时只支持网络状况回调。 网络状况回调是通话过程中,SDK定时会通知上层当前的网络状况。值得注意的是,这个网络状况是基于当前的实际通话情况的。比如,当前正进行的是音频通话,上报的网络情况是良好,那只是说明当前的网络情况可以很好地满足音频通话,并不能说明当前进行视频通话也会很流畅。

当前通话网络状况回调

API介绍

该回调会在通话过程中实时返回通话成员的网络状态。

API原型

typedef void (*nim_vchat_cb_func)(enum NIMVideoChatSessionType type, int64_t channel_id, int code, const char *json_extension, const void *user_data)

NIMVideoChatSessionType::kNIMVideoChatSessionTypeNetStatus

File:nim_vchat_def.h

参数说明
参数 类型 说明
type enum 回调类型kNIMVideoChatSessionTypeNetStatus
channel_id int64_t 频道id
code int 错误码NIMVideoChatSessionNetStat
json_extension char* Json扩展,返回kNIMVChatUid
user_data void* 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理
枚举定义 说明
kNIMVChatNetStatusVideoClose -1 网络状态极差,视频强制关闭
kNIMVideoChatSessionNetStatVeryGood 0 网络状态很好
kNIMVideoChatSessionNetStatGood 1 网络状态较好
kNIMVideoChatSessionNetStatPoor 2 网络状态较差
kNIMVideoChatSessionNetStatBad 3 网络状态很差
kNIMVideoChatSessionNetStatVeryBad 4 网络状态极差,考虑是否关闭视频
示例
void nim_vchat_cb(enum NIMVideoChatSessionType type, int64_t channel_id, int code, const char *json_extension, const void *user_data)
{
    if (code == 200)
    {
        switch (type)
        {
            case kNIMVideoChatSessionTypeStartRes://创建通话结果 
            break;
            case kNIMVideoChatSessionTypeInviteNotify://通话邀请
            break;
            case kNIMVideoChatSessionTypeCalleeAckRes://确认通话,接受拒绝结果
            break;
            case kNIMVideoChatSessionTypeCalleeAckNotify://确认通话,接受拒绝通知
            break;
            case kNIMVideoChatSessionTypeControlRes://NIMVChatControlType 结果 
            break;
            case kNIMVideoChatSessionTypeControlNotify://NIMVChatControlType 通知
            break;
            case kNIMVideoChatSessionTypeConnect://通话中链接状态通知
            break;
            case kNIMVideoChatSessionTypePeopleStatus://通话中成员状态
            break;
            case kNIMVideoChatSessionTypeNetStatus://通话中网络状态
            break;
            case kNIMVideoChatSessionTypeHangupRes://通话挂断结果
            break;
            case kNIMVideoChatSessionTypeHangupNotify://通话被挂断通知
            break;
            case kNIMVideoChatSessionTypeSyncAckNotify://通话接听挂断同步通知
            break;
            case kNIMVideoChatSessionTypeInfoNotify: //实时状态
            break;
            case kNIMVideoChatSessionTypeVolumeNotify: //音量状态
            break;
            default:
            break;
        }
    }
}