多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### **开发流程** 在工程准备好了之后,只需简单的几步,即可实现基础的音视频通话。 #### **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<AnyChatMicrophone> microphones = anychatSDK.getMicrophones(); for (AnyChatMicrophone microphone : microphones) { //microphone.name 名称 //...... } //打开其中一个麦克风 microphone.open(); //获取本地摄像头对象列表,通常只有一个 List<AnyChatCamera> cameras = anychatSDK.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() ```