群视频源码导读说明
群视频相关类说明
file:multi_video_invite.h
收到群视频通知时的窗口展示
对象方法(部分)说明
成员函数介绍
发送群聊接听通知
void SendMultiVchatNotify(bool accept);
参数说明
参数 |
类型 |
说明 |
accept |
bool |
是否接听群聊邀请通话 |
设置邀请界面头像信息
void CheckHeadIcon();
跳转到会话页面
void JumpSession();
邀请超时控制
void InviteTimeOut();
成员信息更改回调处理
void OnUserInfoChange(const std::list<nim::UserNameCard>& uinfos);
参数说明
file:multi_video_form.h
群视频聊天界面展示
####对象方法(部分)说明
多人群聊人员进入通知
void OnPeopleJoin(std::string uid);
参数说明
参数 |
类型 |
说明 |
uid |
std::string |
成员uid |
多人群聊人员退出
void OnPeopleLeave(std::string uid);
参数说明
参数 |
类型 |
说明 |
uid |
std::string |
成员uid |
设置成员uid的bitmap控件信息
void OnSetShowBitmap(std::string uid, bool video,bool refuse=false);
参数说明
参数 |
类型 |
说明 |
uid |
std::string |
成员uid |
video |
bool |
是否是视频模式 |
refuse |
bool |
是否拒绝了邀请 |
成员音量信息
void OnVChatVolumeCallback(std::map<std::string, int32_t> map_volume);
参数说明
参数 |
类型 |
说明 |
map_volume |
std::map<std::string, int32_t> |
uid对应的vol音量信息 |
更新成员的音量信息
void RefreshMemberAudioStatus();
获取音量值的等级
int32_t GetVolumeStep(uint32_t volume);
参数说明
参数 |
类型 |
说明 |
volume |
uint32_t |
音量 |
返回说明
音量等级
获取已经邀请的成员的视频状态
std::map<std::string,bool> GetInvitedMember();
返回值说明
uid 对应的视频状态
设置邀请成员视频状态
void SetInvitedMember(std::string uid,bool video);
参数说明
参数 |
类型 |
说明 |
uid |
std::string |
成员uid |
video |
bool |
是否是视频模式 |
得到视频人数
int GetVideoCount();
返回值说明
返回当前群聊的开启视频的人数,当前房间的视频人数+允许视频通话的人数(还未进房间)
获取正在群聊的成员集合
std::set<std::string> GetTalkingMember()
返回值说明
已经进入音视频房间的成员信息
设置邀请的成员集
void SetInvitingMember(std::set<std::string> inviting_members);
参数说明
参数 |
类型 |
说明 |
inviting_members |
std::setstd::string |
邀请的成员uid集合 |
初始音量,采集,置顶相关UI设置
void InitVolumnSetting();
获取音视频房间名
std::string GetRoomName();
返回值说明
音视频房间名
缓存成员的视频信息
void SetCacheMemberVideo(std::string uid, bool video);
ps.防止对方的音视频模式通知消息(消息kMsgMultiVchatP2PChangeMode)先于该成员进入房间的通知上报,故需要缓存
参数说明
参数 |
类型 |
说明 |
uid |
std::string |
成员uid |
video |
bool |
true:视频 false:音频 |
显示结束通话页面
void EnterEndCallPage(MultiEndCallEnum end_reason);
参数说明
参数 |
类型 |
说明 |
end_reason |
MultiEndCallEnum |
结束原因 |
直接关闭窗口
void DirectQuit();
自动关闭窗口
void OnAutoCloseWnd();
关闭视频设备
void FreeVideo();
关闭音频设备
void FreeAudio();
初始化摄像头控件
void InitCbCameraSetting();
初始化音视频设置操作
void InitSetting();
检查视频输入设备
int CheckVideoInputDevice();
关闭窗口前所做的操作
void BeforeClose();
给uid or tid发送音视频切换通知
void EnterEndCallPage(MultiEndCallEnum end_reason);
参数说明
参数 |
类型 |
说明 |
uid |
std::string |
成员uid or tid |
team |
bool |
true:群透传消息 false:p2p消息 |
bitmap渲染窗口分配
void AdjustVideoBitmap(std::string uid, bool remove, bool video, VchatMemberStatus status);
参数说明
参数 |
类型 |
说明 |
uid |
std::string |
成员uid |
remove |
bool |
remove true:增加,false:移除,ps.目前窗口中未移除,用文字提示 |
video |
bool |
true:视频 false:音频 |
status |
VchatMemberStatus |
uid的通话状态 |
检查视频群聊的人数
int CheckVChatMembers();
返回值说明
正在群聊的人数
限制信息弹框提示
void AdjustVideoBitmap(std::string uid, bool remove, bool video, VchatMemberStatus status);
参数说明
参数 |
类型 |
说明 |
video |
bool |
true:代表视频受限提示 false:代表群聊人数受限提示 |
切换操作
void ExChangeBitmapControl(int bitmap_i_index, int bitmap_j_index);
参数说明
参数 |
类型 |
说明 |
bitmap_i_index |
int |
二维数组索引号 |
bitmap_j_index |
int |
二维数组索引号 |
置顶操作
void SetTopMast(bool forever);
参数说明
参数 |
类型 |
说明 |
forever |
bool |
true:置顶 false:不置顶 |
调整窗口大小
void AdjustWindowSize();
刷新正在群聊的人员记录
void RefreshTalkingMembers(std::string uid, bool remove);
参数说明
参数 |
类型 |
说明 |
uid |
std::string |
uid 成员uid |
remove |
bool |
remove true:移除 false 增加记录 |
启动摄像头设备
void StartCameraDevice();
启动呼叫倒计时
void StartCallTimer(VideoUidsInfo& uid_info);
参数说明
参数 |
类型 |
说明 |
uid_info |
VideoUidsInfo |
成员相关信息 |
关闭uid的呼叫定时器
void StartCallTimer(VideoUidsInfo& uid_info);
参数说明
参数 |
类型 |
说明 |
uid |
std::string |
成员uid |
关闭聊天
void EndVChat();
ps 45s后无人进入那么就关闭会话
调整群视频创建者的视频渲染位置
void AdjustCreatorVideoBitmap(std::string uid);
参数说明
参数 |
类型 |
说明 |
uid |
std::string |
成员uid |
成员信息更改回调处理
void OnUserInfoChange(const std::list<nim::UserNameCard>& uinfos);
参数说明
成员变量(部分)说明
std::string room_name_;
std::string session_id_;
uint64_t channel_id_;
bool creator_;
std::string creator_id_;
bool camera_is_open_;
bool current_video_mode_;
nbase::WeakCallbackFlag paint_video_timer_;
nbase::WeakCallbackFlag start_call_timer_;
VideoUidsInfo video_uids[2][4];
VideoUidsInfo big_wnd_info_;
nbase::NLock data_lock_;
nbase::NLock invited_members_lock_;
std::map<std::string, bool> invited_members_;
std::set<std::string> talking_members_;
std::map<std::string, bool> cache_members_info_;
std::set<std::string> members_info_error_;
Ring voip_ring_;
VchatMemberStatus current_status_;
有帮助
我要吐槽
有帮助
我要吐槽
×
反馈成功

非常感谢您的反馈,我们会继续努力做得更好。