接Android移动端音视频的快速开发教程(二)
3.
接口(Interface)说明
AnyChat for Android SDK通过接口(类似于C++的回调函数)实现与上层应用的状态更新和数据交互。SDK的很多调用都是异步的,如登录操作,调用函数完成之后,需要等待对应接口的函数来触发是否登录成功,总体原则是:需要异步操作的地方,都采用接口来实现。
根据不同的类型,接口也分为几大类,在实际的开发过程中,可根据具体情况实现这些接口。
3.1.
基本流程事件接口
“AnyChat在线音视频互动平台”采用消息通知的方式来告知系统的各种状态变化。
3.1.1.
接口定义
package com.bairuitech.anychat;
//AnyChat基本事件接口
public interface AnyChatBaseEvent {
public void OnAnyChatConnectMessage(boolean bSuccess);
public void OnAnyChatLoginMessage(INT UserId, INT ErrorCode);
public void OnAnyChatEnterRoomMessage(INT RoomId, INT ErrorCode);
public void OnAnyChatOnlineUserMessage(INT UserNum, INT RoomId);
public void OnAnyChatUserAtRoomMessage(INT UserId, boolean bEnter);
public void OnAnyChatLinkCloseMessage(INT ErrorCode);
}
3.1.2.
网络连接事件
方法: public void OnAnyChatConnectMessage(boolean bSuccess)
参数:bSuccess 表示是否连接成功,BOOLEAN类型;
说明:当客户端连接服务器时被触发,等同于WIN32平台的WM_GV_CONNECT消息。
第 14 页 共 51 页
AnyChat for Android SDK 开发手册 佰锐科技 版权所有
3.1.3.
用户登录事件
方法: public void OnAnyChatLoginMessage(int dwUserId, int dwErrorCode)
参数:
dwUserId 表示自己的用户ID号,当dwErrorCode为0时有效
dwErrorCode 出错代码,可判断登录是否成功
说明:当客户端登录服务器时被触发,等同于WIN32平台的WM_GV_LOGINSYSTEM消息。
3.1.4.
进入房间事件
方法: public void OnAnyChatEnterRoomMessage(int dwRoomId, int dwErrorCode)
参数:
dwRoomId 表示进入的房间ID号
dwErrorCode 出错代码,可判断进入房间是否成功
说明:当客户端请求进入房间时被触发,等同于WIN32平台的WM_GV_ENTERROOM消息。
3.1.5.
房间在线用户事件
方法: public void OnAnyChatOnlineUserMessage(int dwUserNum, int dwRoomId)
参数:
dwUserNum 表示当前房间的在线用户数(包含自己)
dwRoomId 房间编号
说明:房间在线用户消息,进入房间后触发一次,等同于WIN32平台的WM_GV_ONLINEUSER消息。收到该消息后,便可对房间中的用户进行音视频的相关操作,如请求音频、请求视频等。
3.1.6.
房间用户活动事件
方法: public void OnAnyChatUserAtRoomMessage(int dwUserId, boolean bEnter)
第 15 页 共 51 页
AnyChat for Android SDK 开发手册 佰锐科技 版权所有
参数:
dwUserId 表示当前房间活动用户的ID号
bEnter true表示进入房间,false表示离开房间
说明:当成功进入房间之后,有新的用户进入房间,或是房间用户离开房间,均会触发该接口,等同于WIN32平台的WM_GV_USERATROOM消息。
3.1.7.
网络连接关闭事件
方法: public void OnAnyChatLinkCloseMessage(int dwReason)
参数:
dwReason 表示连接被关闭的原因
说明:当连接服务器成功之后,网络连接关闭时触发该接口,等同于WIN32平台的WM_GV_LINKCLOSE消息。如果已打开本地摄像头,则上层应用必须在网络连接关闭事件中关闭本地摄像头,否则可能造成异常。