🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### **开发流程** 在工程准备好了之后,只需简单的几步,即可实现基础的音视频通话。 #### **1.初始化SDK** 加载资源,应用程序中只需要执行一次,其他的功能接口都必须在初始化之后才能正常使用。 ``` const anychatSDK: AnyChatSDK = AnyChatSDK.getInstance(); // 注册重连失败监听 anychatSDK.registerLinkCloseEvent(this); const loginEvent : AnyChatLoginEvent = { //连接成功通知 onLogin(userId: number) { //data.userId 登录人账户 } //连接断开,原因可能有签名错误,重复登录,网络异常断开... onDisconnect(result: AnyChatResult) { //result.errCode 错误码 //result.errMsg 错误描述 } }; //登录人账户(nickName:'demo@anychat.cn') //AnyChat服务器地址,如连接云平台,地址为cloud.anychat.cn,端口为8906(serverIp: "demo.anychat.cn") //AnyChat服务器端口号(serverPort: 8906) const initOpt: AnyChatInitOpt = new AnyChatInitOpt("demo@anychat.cn","demo.anychat.cn",8906,loginEvent); anychatSDK.sdkInit(initOpt); ``` #### **2.进入房间** ``` const anychatSDK: AnyChatSDK = AnyChatSDK.getInstance(); const enterRoomCallback: AnyChatCallbackEvent = { onCallbackEvent(result : AnyChatResult , JsonData: object) { //result.errCode == 0 success,其他为相应错误代码 //JsonData.roomId 成功进入的房间号 } }; anychatSDK.enterRoom("1","123",enterRoomCallback) { ``` #### **3.打开自己的麦克风以及摄像头** ``` const anychatSDK: AnyChatSDK = AnyChatSDK.getInstance(); //获取本地麦克风对象列表,通常只有一个 let microphones = anychatSDK.getMicrophones(); for (let microphone of microphones) { //microphone.deviceName 名称 //...... } //打开其中一个麦克风 microphone.open(); //获取本地摄像头对象列表,通常只有一个 let cameras = anychatSDK.getCameras(getContext()); for (let camera of cameras) { //camera.getVideoCapture() 名称 //...... } //打开其中一个摄像头,并在页面上显示视频画面 camera.open(); ``` #### **4.接收对方的音视频流** ``` const anychatSDK = AnyChatSDK.getInstance(); //接收对方音频流 //remoteUserId:对方用户ID anychatSDK.getRemoteAudioStream(remoteUserId); //接收对方视频流,并在页面上显示 //context //remoteUserId:对方用户ID anychatSDK.getRemoteVideoStream(context, remoteUserId); ``` #### **5.结束音视频通话** 结束通话时,需停止接收对方的音视频流,关闭自己的麦克风以及摄像头,退出房间以及退出sdk。 ``` const anychatSDK = AnyChatSDK.getInstance(); //终止对方视频流 //remoteUserId:对方用户ID anychatSDK.cancelRemoteVideoStream(remoteUserId); //终止对方音频流 //remoteUserId:对方用户ID anychatSDK.cancelRemoteAudioStream(remoteUserId); //关闭摄像头 camera.close(); //关闭麦克风 microphone.close(); //离开房间 anychatSDK.leaveRoom(); //退出sdk anychatSDK.release() ```