###**開發流程**
在工程準備好了之后,只需簡單的幾步,即可實現基礎的音視頻通話。
#### **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 = brac.getMicrophones();
for (AnyChatMicrophone microphone : microphones) {
//microphone.name 名稱
//......
}
//打開其中一個麥克風
microphone.open();
//獲取本地攝像頭對象列表,通常只有一個
List<AnyChatCamera> 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()
```
- SDK介紹
- 工程準備
- 下載AnyChat Java SDK
- 導入SDK
- 開發流程
- 初始化SDK
- 初始化及自動登錄
- 退出及釋放連接
- 版本信息查詢
- 登錄方式說明
- 服務器連接斷開通知事件
- 會話保持注冊和銷毀事件
- 房間管理
- 注冊房間管理事件
- 注銷房間管理事件
- 進入房間
- 獲取房間中的用戶列表
- 房間內的文字交流
- 退出房間
- 音視頻操作
- 音視頻互動
- 本地麥克風管理
- 打開本地麥克風
- 關閉本地麥克風
- 本地攝像頭管理
- 打開本地攝像頭
- 關閉本地攝像頭
- 切換本地攝像頭
- 接收/終止對方音頻流
- 接收遠程音頻流
- 關閉遠程音頻流
- 接收/終止對方視頻流
- 接收遠程視頻流
- 關閉遠程視頻流
- 視頻呼叫
- 注冊視頻呼叫事件
- 客戶呼叫
- 客戶取消呼叫
- 接受視頻呼叫
- 拒絕接聽
- 掛斷通話
- 注銷視頻呼叫事件
- 錄制(錄音錄像)
- 開始錄制
- 在錄制文件中添加圖片水印
- 在錄制文件中添加文字水印
- 在錄像中插入圖片
- 結束錄制
- 視頻拍照
- 抓拍
- 智能排隊
- 初始化排隊模塊
- 營業廳操作
- 獲取營業廳列表
- 進入營業廳
- 席座服務狀態設置
- 離開營業廳
- 排隊操作
- 排隊
- 取消排隊
- 狀態查詢
- 查詢坐席狀態
- 查詢隊列排隊人數
- 查詢當前排隊時間
- 注冊智能排隊事件的監聽
- 注銷智能排隊事件的監聽
- 文件傳輸
- 初始化文件模塊
- 注冊文件接收通知事件
- 注銷文件接收通知事件
- 創建文件下載任務
- 創建文件傳輸任務
- 文件上傳到服務器
- 初始化文件上傳到服務器功能
- 創建上傳文件到服務器任務
- 透明通道
- 透明通道發送消息
- 注冊接收透明通道通知事件
- 注銷接收透明通道通知事件
- 錯誤碼