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