网络状况

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

当前通话网络状况回调

API介绍

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

API原型

typedef std::function SessionStatusCallback;

NIMVideoChatSessionType::kNIMVideoChatSessionTypeNetStatus

File:nim_cpp_vchat.h

参数说明
参数 类型 说明
type enum 回调类型kNIMVideoChatSessionTypeNetStatus
channel_id int64_t 频道id
code int 错误码NIMVideoChatSessionNetStat
json_extension string Json扩展,返回kNIMVChatUid
枚举定义 说明
kNIMVChatNetStatusVideoClose -1 网络状态极差,视频强制关闭
kNIMVideoChatSessionNetStatVeryGood 0 网络状态很好
kNIMVideoChatSessionNetStatGood 1 网络状态较好
kNIMVideoChatSessionNetStatPoor 2 网络状态较差
kNIMVideoChatSessionNetStatBad 3 网络状态很差
kNIMVideoChatSessionNetStatVeryBad 4 网络状态极差,考虑是否关闭视频
示例
void VChatSessionCb(NIMVideoChatSessionType type, std::uint64_t channel_id, int code, const std::string json_extension)
{
    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 kNIMVideoChatSessionTypeMp4Notify:            /**< 通知MP4录制状态,包括开始录制和结束录制 */
        break;
        case kNIMVideoChatSessionTypeInfoNotify:        /**< 通知实时音视频数据状态 */
        break;
        case kNIMVideoChatSessionTypeVolumeNotify:        /**< 通知实时音频发送和混音的音量状态 */
        break;
        case kNIMVideoChatSessionTypeAuRecordNotify:    /**< 通知音频录制状态,包括开始录制和结束录制 */
        break;
    }
}