安装 ---- - 安装SetupEChatCom.msi - 将ActiveX.cab文件放在Web的根目录下 ​ 初始化 ------ 初始化配置 ~~~~~~~~~~ - 传参返回值采用UTF-8编码 - ``Context`` 和 ``Dns`` 配置,修改echat.ini文件(文件路径在桌面上面): .. code:: ini [account] context = dev [network] dns = <语音服务IP:端口> 示例 ---- 登录示例 ~~~~~~~~ 加载ActiveX控件 ^^^^^^^^^^^^^^^ 注意: clsid必须为117343BA-BEAF-485D-B80C-7B5BE7395697不能更改 .. code:: html 初始化EchatApi ^^^^^^^^^^^^^^ 注意:actix.Init()只能初始化一次。 .. code:: html 登录成功事件 ^^^^^^^^^^^^ .. code:: html 登录失败事件 ^^^^^^^^^^^^ .. code:: html 主页面示例 ~~~~~~~~~~ 加载ActiveX控件 ^^^^^^^^^^^^^^^ 注意: clsid必须为117343BA-BEAF-485D-B80C-7B5BE7395697不能更改 .. code:: html 初始化EchatApi中的事件 ^^^^^^^^^^^^^^^^^^^^^^ .. code:: html 接口定义 -------- 账号管理 ~~~~~~~~ Login方法(String,String,Int) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 调度员登录方法 语法 '''' .. code:: c# public int Login(string account, string password, int role) 参数 account ​ Type:System.String ​ 登录账号 password ​ Type:System.String ​ 明文密码 role ​ Type:System.Int32 ​ 用户角色,0:对讲用户;3:调度员 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 备注 '''' 参数role传固定值3 通知事件 '''''''' - onOnlineStatusChangedX,当用户登录成功后触发,\ ``OnlineStatus`` 为 ``ONLINE_STATUS_ONLINE`` - ``onErrorX``\ ,当用户登录失败时触发。错误码参考: 错误码 示例 '''' .. code:: html Logout方法() ^^^^^^^^^^^^ 退出登录界面 语法 '''' .. code:: c# public int Logout(); 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 示例 '''' .. code:: html GetCurrentUser方法() ^^^^^^^^^^^^^^^^^^^^ 获取用户信息 语法 '''' .. code:: c# public string GetCurrentUser() 返回值 Type: System.String 序列化的 JSON 字符串。 对象:用户实体类 User 参考 :用户信息 示例 '''' 代码示例 .. code:: html 返回数据示例 .. code:: json {"gid":0,"uid":1,"role":3,"online":0,"has_gid":0,"has_role":1,"audio_enabled":1,"name":"账号09"} GetOnlineStatus方法() ^^^^^^^^^^^^^^^^^^^^^ 获取当前用户在线状态 语法 '''' .. code:: c# public OnlineStatus GetOnlineStatus(); 返回值 Type:OnlineStatus 返回在线状态的枚举,参考: 用户在线状态 示例 '''' .. code:: html GetUid方法() ^^^^^^^^^^^^ 获取当前账号UID 语法 '''' .. code:: c# public int GetUid(); 返回值 Type:System.Int32 返回当前登录用户的UID ​ 示例 '''' .. code:: html GetName方法() ^^^^^^^^^^^^^ 获取用户名 语法 '''' .. code:: c# public string GetName(); 返回值 Type:System.Sting 返回当前登录用户的中文名 示例 '''' .. code:: html HasAudioEnabled方法() ^^^^^^^^^^^^^^^^^^^^^ 是否被禁言状态 语法 '''' .. code:: c# public bool HasAudioEnabled(); 返回值 Type:System.Boolean true:正常发言 ,false:被禁言。 ​ 示例 '''' .. code:: html ChangeName方法 (string) ^^^^^^^^^^^^^^^^^^^^^^^ 修改用户名 语法 '''' .. code:: c# public int ChangeName(string name); 参数 name ​ Type:System.String ​ 登录账号 ​ +--------+--------------+--------+ | 参数 | 描述 | 备注 | +========+==============+========+ | name | 新用户名称 | | +--------+--------------+--------+ 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 ​ 通知事件 '''''''' - ``onChangeNameResultX`` 修改用户名触发此事件,事件处理是否修改成功。 示例 '''' .. code:: html ChangePassword方法(String,String) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 修改密码 语法 '''' .. code:: c# public int ChangePassword(string oldpassword, string newpassword); 参数 oldpassword ​ Type:System.String ​ 旧密码(明文) newpassword ​ Type:System.String ​ 新密码(明文) 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 通知事件 '''''''' - ``onChangePasswordResultX`` , 修改密码触发此事件,事件处理是否修改成功 示例 '''' .. code:: html SaveAccount方法(String) ^^^^^^^^^^^^^^^^^^^^^^^ 保存账号 语法 '''' .. code:: c# public int SaveAccount(string account); 参数 account ​ Type: System.String ​ 序列化的 JSON 字符串。 ​ 对象:用户实体类 User 参考 用户信息 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 示例 '''' .. code:: html ClearAccount方法() ^^^^^^^^^^^^^^^^^^ 清空已保存账号 语法 '''' .. code:: c# public int ClearAccount(); 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 示例 '''' .. code:: html HasAccount方法() ^^^^^^^^^^^^^^^^ 是否已保存账号 语法 '''' .. code:: c# public bool HasAccount(); 返回值 Type:System.Boolean true:有 ,false:无 示例 '''' .. code:: html GetSavedAccount方法() ^^^^^^^^^^^^^^^^^^^^^ 获取已保存的账号 语法 '''' .. code:: c# public string GetSavedAccount(); 返回值 Type: System.String 序列化的 JSON 字符串。 对象:账号实体类 Account参考 账号信息 示例 '''' 代码示例 .. code:: html 返回值示例 .. code:: json {"Name":"13800000009","Password":"1","Role":3,"IsRemembered":0,"IsAutoLogin":0} LoginWithSaved方法() ^^^^^^^^^^^^^^^^^^^^ 使用已存储的账号登录 语法 '''' .. code:: c# public int LoginWithSaved(); 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 通知事件 '''''''' - ``onOnlineStatusChangedX`` ,当用户登录成功后触发,\ ``OnlineStatus`` 状态改为 ``ONLINE_STATUS_ONLINE`` - ``OnErrorX``\ ,当用户登录失败时触发。 示例 '''' .. code:: html onOnlineStatusChangedX事件 ^^^^^^^^^^^^^^^^^^^^^^^^^^ 登录状态改变通知 语法 '''' .. code:: c# void onOnlineStatusChangedX(object OnlineStatus); 参数 status ​ Type: System.Object 用户在线状态 ​ OnlineStatus 参考: 用户在线状态 示例 '''' .. code:: html onChangeNameResultX事件 ^^^^^^^^^^^^^^^^^^^^^^^ 修改用户名称通知 语法 '''' .. code:: c# void onChangeNameResultX(object success); 参数 success ​ Type: System.Object 修改名称结果 ​ true:修改成功 false:修改失败 示例 '''' .. code:: html onChangePasswordResultX事件 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 修改密码通知 语法 '''' .. code:: c# void onChangePasswordResultX(object success); ​ 参数 success ​ Type: System.Object 修改密码结果 ​ true:修改成功 false:修改失败 示例 '''' .. code:: html onAudioEnableChangedX事件 ^^^^^^^^^^^^^^^^^^^^^^^^^ 当前用户遥开遥闭状态通知 语法 '''' .. code:: c# void onAudioEnableChangedX(object audio_enable); 参数 audio\_enable ​ Type: System.Object ​ true:遥开 false:遥闭 示例 '''' .. code:: html onUserChangedX事件 ^^^^^^^^^^^^^^^^^^ 注册监听用户状态变化 - 被动触发条件 echat 服务内部 User 缓存变更时触发,例如用户状态改变或用户名改变。 当前用户所在群组里的其他用户正在讲话时 语法 '''' .. code:: c# void onUserChangedX(object count, object usersListjson); 参数 count ​ Type: System.Object 变化用户数 ​ usersListjson: ​ Type:System.String ​ 序列化的 JSON 字符串。 ​ 对象:用户实体类 User 参考 :用户信息 ​ 示例 '''' 代码示例 .. code:: html 返回数据示例 .. code:: json usersListjson数据: [{"gid":600901,"uid":50711,"role":0,"online":1,"has_gid":1,"has_role":1,"audio_enable":1,"name":"账号01"}] 群组 ~~~~ JoinGroup方法(Int) ^^^^^^^^^^^^^^^^^^ 根据群组ID,进入到相应的群组里 语法 '''' .. code:: c# public int JoinGroup(int gid); 参数 gid ​ Type:System.Int32 ​ 群组ID 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 通知事件 '''''''' 见 通知事件 示例 '''' .. code:: html LeaveGroup方法() ^^^^^^^^^^^^^^^^ 用户离开当前所在群组 语法 '''' .. code:: c# public int LeaveGroup(); 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 通知事件 '''''''' 见 通知事件 示例 '''' .. code:: html Call方法(Array) ^^^^^^^^^^^^^^^ 创建临时群组 语法 '''' .. code:: c# public int Call(Array uids); 参数 uids ​ Type:System.Array ​ 一维Array,用户ID 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 通知事件 '''''''' 见 通知事件 示例 '''' .. code:: html 销毁临时群组 ^^^^^^^^^^^^ 临时群组创建者退出临时群组即为销毁临时群组。 GetGroupList方法() ^^^^^^^^^^^^^^^^^^ 获取当前登录的调度员所在集团的所有群组列表 语法 '''' .. code:: c# public string GetGroupList(); 返回值 Type: System.String 序列化的 JSON 字符串。 对象:群组实体类 Group参考:群组信息 示例 '''' 代码示例 .. code:: html 返回值示例 GetGroupByGid方法(int ) ^^^^^^^^^^^^^^^^^^^^^^^ 根据GID 查询群组信息 语法 '''' .. code:: c# public string GetGroupByGid(int gid); 参数 gid ​ Type:System.Int32 ​ 群组ID 返回值 Type: System.String 序列化的 JSON 字符串。 对象:群组实体类 Group参考:群组信息 示例 '''' 代码示例 .. code:: html 返回值示例: GetCurrentGroup() ^^^^^^^^^^^^^^^^^ 获取用户当前所在的群组ID 语法 '''' .. code:: c# public int GetCurrentGroup(); 返回值 Type:System.Int32 群组ID 示例 '''' .. code:: html GetMemberList(Int) ^^^^^^^^^^^^^^^^^^ 获取成员列表 语法 '''' .. code:: c# public string GetMemberList(int gid) 参数 gid ​ Type:System.Int32 ​ 群组ID 返回值 Type: System.String 序列化的 JSON 字符串。 对象:成员实体类Member参考:成员信息 示例 '''' 代码示例 .. code:: html 返回值示例: StartWatchGroup(Int) ^^^^^^^^^^^^^^^^^^^^ 监听群组 语法 '''' .. code:: c# public int StartWatchGroup(int gid); 参数 gid ​ Type:System.Int32 ​ 群组ID 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 示例 '''' .. code:: html ​ StopWatchGroup(Int) ^^^^^^^^^^^^^^^^^^^ 取消监听群组 语法 '''' .. code:: c# public String StopWatchGroup(int gid); 参数 gid ​ Type:System.Int32 ​ 群组ID 返回值 Type: System.String 序列化的 JSON 字符串。 对象:群组实体类Group参考:群组信息 示例 '''' .. code:: html #### .. raw:: html
onCurrentGroupX事件 .. raw:: html
当前所在群组变化通知 语法 '''' .. code:: c# void onCurrentGroupX(object gid, object group_name); 参数 ​ gid ​ Type: System.Object ​ 群组ID group\_name ​ Type: System.Object ​ 群组名称 示例 '''' .. code:: html #### .. raw:: html
onMemberChangedX事件 .. raw:: html
群组成员发生变化通知 - 被动触发条件 ​ 其他成员进入所在的组时 ​ 其他成员在自身所在的组下线时 ​ 切换群组时 - 主动触发 ​ 进组 ​ 离开群组 ​ 创建临时组 语法 '''' .. code:: c# void onMemberChangedX(object value); 参数 value ​ Type:System.String ​ 序列化的 JSON 字符串。 ​ 对象:群组成员变化实体类 MemberChanged 参考 : 群组成员变化 示例 '''' .. code:: html #### .. raw:: html
onMemberListX事件 .. raw:: html
成员列表获取完毕 语法 '''' .. code:: c# void onMemberListX(object gid); 参数 ​ gid ​ Type: System.Object ​ 群组ID 示例 '''' .. code:: html #### .. raw:: html
onGroupListX事件 .. raw:: html
群组列表发生变化通知 语法 '''' .. code:: c# void onGroupListX(); 示例 '''' .. code:: html 对讲 ~~~~ StartSpeak方法() ^^^^^^^^^^^^^^^^ 抢麦 - 获取话权 语法 '''' .. code:: c# public int StartSpeak(); 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 通知事件 '''''''' 见 onStartSpeakX事件 示例 '''' .. code:: html StopSpeak方法() ^^^^^^^^^^^^^^^ 放麦 - 释放话权 语法 '''' .. code:: c# public int StopSpeak(); 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 通知事件 '''''''' 见 onStopSpeakX事件 示例 '''' .. code:: html GetPlayingSoundUser方法() ^^^^^^^^^^^^^^^^^^^^^^^^^ 获取正在播放声音的人的user信息 语法 '''' .. code:: c# public string GetPlayingSoundUser(); 返回值 Type: System.String 序列化的 JSON 字符串。 对象:用户实体类User参考:用户信息 示例 '''' .. code:: html 返回数据示例: .. code:: json {"gid":600901,"uid":50711,"role":0,"online":1,"has_gid":1,"has_role":1,"audio_enable":1,"name":"账号01"} GetSpeakingUsers方法() ^^^^^^^^^^^^^^^^^^^^^^ 获取正在讲话的人的user信息(不一定是正在播放的,对于多群组而言) 语法 '''' .. code:: c# public string GetSpeakingUsers(); 返回值 Type: System.String 序列化的 JSON 字符串。 对象:用户实体类User集合参考:用户信息 示例 '''' .. code:: html 返回数据示例 .. code:: json [{"gid":600901,"uid":50711,"role":0,"online":1,"has_gid":1,"has_role":1,"audio_enable":1,"name":"账号01"},{"gid":600901,"uid":50712,"role":0,"online":1,"has_gid":1,"has_role":1,"audio_enable":1,"name":"账号02"}] IsSpeaking方法() ^^^^^^^^^^^^^^^^ 自己当前是否正在讲话 语法 '''' .. code:: c# public bool IsSpeaking(); 返回值 Type:System.Boolean 成功标示 true:在说话 ,false:没有说话 示例 '''' .. code:: html IsListening() ^^^^^^^^^^^^^ 自己当前是否正收听语音 语法 '''' .. code:: c# public bool IsListening(); 返回值 Type:System.Boolean 成功标示 true:在说话 ,false:没有说话 示例 '''' .. code:: html #### .. raw:: html
onStartSpeakX事件 .. raw:: html
抢麦通知 - 主动触发条件 ​ 调用StartSpeak()方法 语法 '''' .. code:: c# void onStartSpeakX(object gid, object group_name); 参数 gid ​ Type: System.Object ​ 当前讲话者所在的群组ID group\_name ​ Type: System.Object ​ 当前讲话者所在的群组名称 示例 '''' .. code:: html #### .. raw:: html
onStopSpeakX事件 .. raw:: html
放麦通知 - 主动触发条件 ​ 调用StopSpeak()方法 - 被动触发事件 ​ 讲话超时被摘麦 语法 '''' .. code:: c# void onStopSpeakX(object gid, object group_name); 参数 gid ​ Type: System.Object ​ 当前讲话者所在的群组ID group\_name ​ Type: System.Object ​ 当前讲话者所在的群组名称 示例 '''' .. code:: html #### .. raw:: html
onStartPlayingX事件 .. raw:: html
开始播放讲话者事件通知 语法 '''' .. code:: c# void onStartPlayingX(object uid, object name, object gid, object group_name); 参数 uid ​ Type: System.Object ​ 讲话者ID name ​ Type: System.Object ​ 讲话者名称 gid ​ Type: System.Object ​ 群组ID group\_name ​ Type: System.Object ​ 群组名称 示例 '''' .. code:: html #### .. raw:: html
onStopPlayingX事件 .. raw:: html
停止播放讲话者事件通知 语法 '''' .. code:: c# void onStopPlayingX(object uid, object name, object gid, object group_name); 参数 uid ​ Type: System.Object ​ 讲话者ID name ​ Type: System.Object ​ 讲话者名称 gid ​ Type: System.Object ​ 群组ID group\_name ​ Type: System.Object ​ 群组名称 示例 '''' .. code:: html #### .. raw:: html
onUserStartSpeakX事件 .. raw:: html
调度员所在群组里,其他成员抢麦成功事件通知 语法 '''' .. code:: c# void onUserStartSpeakX(object uid, object name, object gid, object group_name); 参数 uid ​ Type: System.Object ​ 讲话者ID name ​ Type: System.Object ​ 讲话者名称 gid ​ Type: System.Object ​ 群组ID group\_name ​ Type: System.Object ​ 群组名称 示例 '''' .. code:: html #### .. raw:: html
onUserStopSpeakX事件 .. raw:: html
调度员所在群组里,其他成员放麦事件通知 语法 '''' .. code:: c# void onUserStopSpeakX(object uid, object name, object gid, object group_name); 参数 uid ​ Type: System.Object ​ 讲话者ID name ​ Type: System.Object ​ 讲话者名称 gid ​ Type: System.Object ​ 群组ID group\_name ​ Type: System.Object ​ 群组名称 示例 '''' .. code:: html 广播 ~~~~ SendTextBroadcast方法(string , Array) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 发送文字广播 语法 '''' .. code:: c# public int SendTextBroadcast(string text, Array uids) 参数 text ​ Type:System.String ​ 文字信息(文字长度1-40个字符) uids ​ Type:System.Array ​ 一维Array,收听广播的用户ID集合 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 通知事件 '''''''' 见 onSendedX事件 示例 '''' .. code:: html StartRecordBroadcastAudio方法() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 开始录制音频文件 语法 '''' .. code:: c# public int StartRecordBroadcastAudio() 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 示例 '''' .. code:: html StopRecordBroadcastAudio方法() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 停止录制音频文件 语法 '''' .. code:: c# public int StopRecordBroadcastAudio() 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 示例 '''' .. code:: html SendAudioBroadcast(Array) ^^^^^^^^^^^^^^^^^^^^^^^^^ 发送语音广播 语法 '''' .. code:: c# public int SendAudioBroadcast(Array uids) 参数 uids ​ Type:System.Array ​ 一维Array,收听广播的用户ID集合 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 通知事件 '''''''' 见 onSendedX事件 示例 '''' .. code:: html PlayRecordBroadcastAudio方法() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 播放已录制的待播放音频文件 语法 '''' .. code:: c# public int PlayRecordBroadcastAudio() 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 通知事件 '''''''' 见 OnPlayStopX事件 示例 '''' .. code:: html #### .. raw:: html
onSendedX事件 .. raw:: html
发送广播结果响应事件 - 主动触发条件 执行 SendAudioBroadcast 方法 执行SendTextBroadcast方法 语法 '''' .. code:: c# void onSendedX(object success); 参数 success: ​ Type:System.Object ​ ture:发送成功 false:发送失败 示例 '''' .. code:: html #### .. raw:: html
OnPlayStopX事件 .. raw:: html
录音结束回调 - 主动触发条件 ​ 执行 PlayRecordBroadcastAudio 方法 语法 '''' .. code:: c# void OnPlayStopX(); 示例 '''' .. code:: html 调度 ~~~~ TempJoinGroup方法(Int,Array) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 将在线的用户临时加入到指定的群组中 语法 '''' .. code:: c# public int TempJoinGroup(int gid, Array uids) 参数 gid ​ Type:System.Int32 ​ 群组ID uids ​ Type:System.Array ​ 一维Array,用户ID集合 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 示例 '''' .. code:: html TempLeaveGroup(Int, Array) ^^^^^^^^^^^^^^^^^^^^^^^^^^ 临时移出组 语法 '''' .. code:: c# public int TempLeaveGroup(int gid, Array uids) 参数 gid ​ Type:System.Int32 ​ 群组ID uids ​ Type:System.Array ​ 一维Array,用户ID集合 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 示例 '''' .. code:: html Audioenable方法(Array, bool) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 遥开遥闭 语法 '''' .. code:: c# public int Audioenable(Array uids, bool audioenabled) 参数 uids ​ Type:System.Array ​ 一维Array,用户ID集合 audioenabled ​ Type:System.Boolean ​ true:遥开 false:遥闭 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 示例 '''' .. code:: html ForceDispatch方法(Array) ^^^^^^^^^^^^^^^^^^^^^^^^ 强拉,在群组列表中把在线不在本群组内的人员强拉回调度员所在群组 语法 '''' .. code:: c# public int ForceDispatch(Array uids) 参数 uids ​ Type:System.Array ​ 一维Array,用户ID集合 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 示例 '''' .. code:: html Takemic方法(Array) ^^^^^^^^^^^^^^^^^^ 强拆,在群组列表中把正在讲话的用户强拆,强制中断其语音 语法 '''' .. code:: c# public int Takemic(Array uids) 参数 uids ​ Type:System.Array ​ 一维Array,用户ID集合 返回值 Type:System.Int32 执行成功标示:0【成功】 -1【失败】 示例 '''' .. code:: html GetUser方法(int) ^^^^^^^^^^^^^^^^ 获取用户信息 语法 '''' .. code:: c# public string GetUser(int uid) 参数 uid ​ Type:System.Int32 ​ 用户ID 返回值 Type: System.String 序列化的 JSON 字符串。 对象:用户实体类User参考:用户信息 示例 '''' .. code:: html 返回数据示例 .. code:: json {"gid":600901,"uid":50711,"role":0,"online":1,"has_gid":1,"has_role":1,"audio_enable":1,"name":"账号01"} GetUsers方法(Array) ^^^^^^^^^^^^^^^^^^^ 获取用户信息集合 语法 '''' .. code:: c# public string GetUser(Array uids) 参数 uids ​ Type:System.Array ​ 一维Array,用户ID集合 返回值 Type: System.String 序列化的 JSON 字符串。 对象:用户实体类User集合参考:用户信息 示例 '''' .. code:: html 返回数据示例 .. code:: json [{"gid":600901,"uid":50711,"role":0,"online":1,"has_gid":1,"has_role":1,"audio_enable":1,"name":"账号01"}] #### .. raw:: html
onDispatchedX事件 .. raw:: html
强拉结果通知事件 - 主动触发条件 ​ 执行ForceDispatch 方法 语法 '''' .. code:: c# void onDispatchedX(object usersListjson); 参数 usersListjson Type: System.Object 序列化的 JSON 字符串。 对象:Dispatched 参考 : 强拉信息 示例 '''' .. code:: html #### .. raw:: html
onTakeMicX事件 .. raw:: html
强拆结果通知事件 - 主动触发条件 ​ 执行 Takemic 方法 语法 '''' .. code:: c# void onTakeMicX(object success); 参数 success ​ Type: System.Object ​ true:成功 false:失败 示例 '''' .. code:: html #### .. raw:: html
onAudioEnabledX事件 .. raw:: html
遥开遥闭结果通知事件 - 主动触发条件 ​ 执行 Audioenable方法 语法 '''' .. code:: c# void onAudioEnabledX(object usersListjson); 参数 usersListjson Type: System.Object 序列化的 JSON 字符串。 对象: Andioenable 参考 : 遥开遥闭 示例 '''' .. code:: html 本地录音 ~~~~~~~~ EnableLocalRecord方法(bool, string) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 设置本地录音 语法 '''' .. code:: c# public int EnableLocalRecord(bool enable, string pathDir) 参数 enable ​ Type:System.Boolean ​ true:开启本地录音 false:关闭本地录音 pathDir ​ Type:System.String ​ 本地录音文件保存的路径 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 示例 '''' .. code:: html PlayLocalRecord方法(string) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 播放本地录音 语法 '''' .. code:: c# public int PlayLocalRecord(string path) 参数 path ​ Type:System.String ​ 文件的绝对路径(播放的文件格式为evrc) 返回值 Type:System.Int32 执行成功标示 0:成功 ,-1:失败 示例 '''' .. code:: html onStartRecordX事件 ^^^^^^^^^^^^^^^^^^ 开始录音的通知事件 语法 '''' .. code:: c# void onStartRecordX(object gid, object uid, object starttime, object filename); 示例 '''' .. code:: html 参数 gid ​ Type: System.Object ​ 群组ID uid ​ Type: System.Object ​ 讲话者ID starttime ​ Type: System.Object ​ 开始录制时间 filename ​ Type: System.Object ​ 文件名称 onStopRecordX事件 ^^^^^^^^^^^^^^^^^ 结束录音的通知事件 语法 '''' .. code:: c# void onStopRecordX(object success, object gid, object uid, object finishtime, object filename); 参数 success ​ Type: System.Object ​ 执行结果true:成功 false:失败 gid ​ Type: System.Object ​ 群组ID uid ​ Type: System.Object ​ 讲话者ID finishtime ​ Type: System.Object ​ 结束录制时间 filename ​ Type: System.Object ​ 文件名称 示例 '''' .. code:: html 数据结构定义 ------------ ### .. raw:: html
账号信息 .. raw:: html
.. code:: c# public struct Account { /// /// 登录名 /// public string Name /// /// 密码 /// public string Password /// /// 用户角色 /// 0:对讲用户 3:调度员 /// public int Role /// /// 是否自动登录 /// public int IsAutoLogin /// /// 是否记住密码 /// public int IsRemembered } ### .. raw:: html
群组信息 .. raw:: html
.. code:: c# public struct Group { /// /// 群组类型:1为普通组,2为临时组,3为紧急组 /// public int type; /// /// 群组编号 /// public UInt32 gid; /// /// 群组名称 /// public string name; /// /// 群组优先级 /// public int prior; /// /// 服务IP /// public UInt32 ip; /// /// 服务端口 /// public UInt16 port; } ### .. raw:: html
用户信息 .. raw:: html
.. code:: c# public struct User { /// /// 所在群组的编号 /// public UInt32 gid; /// /// 用户编号 /// public UInt32 uid; /// /// 用户角色 0:对讲用户 3:调度员 /// public UInt32 role; /// /// 在线状态 /// public int online; /// /// 是否有群组编号 /// public int has_gid; /// /// 是否有角色 /// public int has_role; /// /// 语音状态是否打开 /// public int audio_enabled; /// /// 成员名称 /// public string name; } ### .. raw:: html
成员信息 .. raw:: html
.. code:: c# public struct Member { /// /// 所在群组的编号 /// public UInt32 gid; /// /// 用户编号 /// public UInt32 uid; /// /// 用户角色 /// public UInt32 role; /// /// 在线状态 /// public int online; /// /// 是否再组 /// public int ingroup; /// /// 是否有群组编号 /// public int has_gid; /// /// 是否有角色 /// public int has_role; /// /// 语音状态是否打开 /// public int audio_enabled; /// /// 成员名称 /// public string name; } ### .. raw:: html
群组成员变化 .. raw:: html
.. code:: c# public class MemberChanged { /// /// 群组ID /// public int Gid; /// /// 新加入当前群组人员id /// public List Us; /// /// 新加入成员个数 /// public int Uc; /// ///退出当前群组人员id /// public List Rs; /// /// 退出成员个数 /// public int Rc; /// /// 进入当前群组人员 id /// public List Js; /// /// 进入成员个数 /// public int Jc; /// /// 离开当前群组人员i /// public List Ls; /// /// 离开成员个数 /// public int Lc; } ### .. raw:: html
强拉信息 .. raw:: html
.. code:: c# public class Dispatched { /// /// 执行结果 /// public bool Success; /// /// 是否有群组 /// public bool HasGid; /// /// 群组ID /// public int Gid; /// /// 用户ID集合 /// public List Uids; /// /// 用户个数 /// public int UidSize; } ### .. raw:: html
遥开遥闭 .. raw:: html
.. code:: c# public class AudioEnabled { /// /// 执行结果 /// public bool Success; /// /// 遥开遥闭状态 /// public bool AudioEnable; /// /// 用户ID集合 /// public List Uids; /// /// 用户个数 /// public int Size; } 数据定义 -------- ### .. raw:: html
错误码 .. raw:: html
:: -1:帐号密码错误 -2:帐号已欠费或已超出服务期 -3:帐号不存在 -4:无效的帐号登录权限 -10:帐号已在其他位置登录 -11:帐号登录超时 -20:网络连接失败 -21:网络正在重连 -30:加入群组失败 -31:加入群组请求超时 -40:当前有人正在讲话<服务器回馈> -41:短时间内不允许多次抢麦 -42:摇闭状态不允许抢麦 -43:内部会话状态错误<主动放麦后立马去抢麦> -44:抢麦时申请音频焦点失败 -45:已较低的优先级抢麦<出现在当时正在有人讲话,自身比讲话人优先级低时> -46:网络不稳定 -50:打开录音设备失败 接口调用返回值 ~~~~~~~~~~~~~~ :: -1:操作失败 0:操作成功 ### .. raw:: html
用户在线状态 .. raw:: html
.. code:: c# public enum OnlineStatus { /// /// 未知状态 /// ONLINE_STATUS_UNKNOWN = 0, /// /// 离线状态 /// ONLINE_STATUS_OFFLINE = 1, /// /// 登录中 /// ONLINE_STATUS_LOGINING = 2, /// /// 在线状态 /// ONLINE_STATUS_ONLINE = 3 }