安装
----
- 安装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
}