#### **开发流程**
在工程准备好了之后,只需简单的几步,即可实现基础的音视频通话。
#### **1.初始化SDK**
加载资源,应用程序中只需要执行一次,其他的功能接口都必须在初始化之后才能正常使用。
~~~
AnyChatSDK anychatSDK = AnyChatSDK.getInstance();
// 注册重连失败监听
anychatSDK.registerLinkCloseEvent(this);
AnyChatLoginEvent loginEvent = new AnyChatLoginEvent() {
//连接成功通知
@Override
public void onLogin(int userId) {
//data.userId 登录人账户
}
//连接断开,原因可能有签名错误,重复登录,网络异常断开...
@Override
public void onDisconnect(AnyChatResult result) {
//result.code 错误码
//result.msg 错误描述
}
};
//登录人账户(nickName:'demo@anychat.cn')
//AnyChat服务器地址,如连接云平台,地址为cloud.anychat.cn,端口为8906(serverIp: "demo.anychat.cn")
//AnyChat服务器端口号(serverPort: 8906)
AnyChatInitOpt initOpt = new AnyChatInitOpt("demo@anychat.cn","demo.anychat.cn",8906,loginEvent);
anychatSDK.initSDK(initOpt);
~~~
#### **2.进入房间**
```
AnyChatSDK anychatSDK = AnyChatSDK.getInstance();
AnyChatCallbackEvent enterRoomCallback = new AnyChatCallbackEvent() {
@Override
public void onCallbackEvent(AnyChatResult result, JSONObject JsonData) {
//result.errCode == 0 success,其他为相应错误代码
//JsonData.roomId 成功进入的房间号
}
};
anychatSDK.enterRoom("1","123",enterRoomCallback) {
```
#### **3.打开自己的麦克风以及摄像头**
```
AnyChatSDK anychatSDK = AnyChatSDK.getInstance();
//获取本地麦克风对象列表,通常只有一个
List microphones = brac.getMicrophones();
for (AnyChatMicrophone microphone : microphones) {
//microphone.name 名称
//......
}
//打开其中一个麦克风
microphone.open();
//获取本地摄像头对象列表,通常只有一个
List cameras = brac.getCameras();
for (AnyChatCamera camera : cameras) {
//camera.name 名称
//......
}
//打开其中一个摄像头,并在页面上显示视频画面
camera.open();
```
#### **4.接收对方的音视频流**
```
AnyChatSDK anychatSDK = AnyChatSDK.getInstance();
//接收对方音频流
//remoteUserId:对方用户ID
anychatSDK.getRemoteAudioStream({
remoteUserId
});
//接收对方视频流,并在页面上显示
//context
//remoteUserId:对方用户ID
//surfaceView: 显示视频的控件
anychatSDK.getRemoteVideoStream(context, remoteUserId, surfaceView);
```
#### **5.结束音视频通话**
结束通话时,需停止接收对方的音视频流,关闭自己的麦克风以及摄像头,退出房间以及退出sdk。
```
AnyChatSDK anychatSDK = AnyChatSDK.getInstance();
//终止对方视频流
//remoteUserId:对方用户ID
//index视频绑定的索引号,由getRemoteVideoStream方法返回
anychatSDK.cancelRemoteVideoStream(remoteUserId,index);
//终止对方音频流
//remoteUserId:对方用户ID
anychatSDK.cancelRemoteAudioStream(remoteUserId);
//关闭摄像头
camera.close();
//关闭麦克风
microphone.close();
//离开房间
anychatSDK.leaveRoom();
//退出sdk
anychatSDK.logout()
```