### **開發流程**
在工程準備好了之后,只需簡單的幾步,即可實現基礎的音視頻通話。
#### **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()
```
- SDK介紹
- 工程準備
- 獲取AnyChat Android SDK
- 導入SDK文件
- 混淆加固
- 開發流程
- 初始化SDK
- 初始化及自動登錄
- 退出及釋放連接
- 版本信息查詢
- 登錄方式說明
- 服務器連接斷開通知事件
- 會話保持注冊和銷毀事件
- UDP異常回調注冊和銷毀
- 房間管理
- 注冊房間管理事件
- 注銷房間管理事件
- 進入房間
- 獲取房間中的用戶列表
- 房間內的文字交流
- 退出房間
- 音視頻操作
- 設備初始化
- 注冊設備初始化事件
- 音視頻互動
- 本地麥克風管理
- 打開本地麥克風
- 關閉本地麥克風
- 本地攝像頭管理
- 打開本地攝像頭
- 關閉本地攝像頭
- 切換本地攝像頭
- 接收/終止對方音頻流
- 接收遠程音頻流
- 關閉遠程音頻流
- 接收/終止對方視頻流
- 獲取遠程視頻流
- 關閉遠程視頻流
- 設置遠程視頻流加載監聽
- 注冊遠程視頻流監聽
- 注銷遠程視頻流監聽
- 視頻呼叫
- 注冊視頻呼叫事件
- 客戶呼叫
- 客戶取消呼叫
- 接聽視頻呼叫
- 拒絕接聽
- 掛斷通話
- 注銷視頻呼叫事件
- 錄制(錄音錄像)
- 開始錄制
- 在錄制文件中添加圖片水印
- 在錄制文件中添加文字水印
- 在錄像中插入圖片
- 更新錄像參數
- 結束錄制
- 混音錄制
- 視頻拍照
- 抓拍
- 音視頻參數配置
- 視頻參數配置
- 音頻參數配置
- 噪音檢測
- 設置音頻工具箱
- 獲取噪音大小
- 設置麥克風靈敏度
- 文件傳輸
- 初始化文件模塊
- 注冊文件接收通知事件
- 注銷文件接收通知事件
- 創建文件傳輸任務
- 文件管理
- 初始化文件模塊
- 創建文件上傳任務
- 創建文件下載任務
- 透明通道
- 發送透明通道
- 注冊接收透明通道通知事件
- 注銷接收透明通道通知事件
- 智能排隊
- 初始化排隊模塊
- 營業廳操作
- 獲取營業廳列表
- 進入營業廳
- 席座服務狀態設置
- 離開營業廳
- 排隊操作
- 進入隊列
- 取消排隊
- 狀態查詢
- 查詢坐席狀態
- 查詢隊伍排隊人數
- 查詢當前排隊時間
- 查詢用戶所在隊列的當前位置
- 查詢服務區域內排隊的用戶數
- 查詢營業廳內的坐席數
- 注冊隊列狀態變化事件的監聽
- 注銷隊列狀態變化事件的監聽
- 屏幕共享
- 手寫簽名
- 雙錄
- 基本流程
- 自助雙錄
- 遠程雙錄
- 雙錄接口說明
- PPT資源下載
- 下載任務初始化
- 開始下載
- 取消下載
- 查詢資源下載狀態
- 查詢資源詳細信息
- 資源播放
- PPT資源播放
- 播放
- 暫停
- 停止
- 獲取當前播放信息
- 資源切換到下一幀
- 資源切換到上一幀
- 跳轉到指定幀數播放
- 跳轉到某個時間點播放
- 播放狀態回調接口
- 播放翻頁回調接口
- 媒體資源播放
- 播放
- 暫停
- 停止
- 銷毀
- 獲取當前播放信息
- 播放回調接口
- 時間戳
- 水印
- 用戶相關的查詢接口
- 查詢用戶名
- 網絡檢測
- 開啟實時網絡模塊
- 查詢指定用戶網絡詳情
- 房間內網絡狀態監聽
- 音視頻通話網絡質量查詢
- AI功能模塊
- AI降噪
- 錯誤碼
- FAQ