AUI Kits語聊房場景集成工具是阿里云提供的跨平臺音視頻實時通信服務,為業務方提供語音聊天、多人實時互動等場景的能力,借助通信的穩定、流暢、靈活的產品能力,以低代碼的方式助力業務方快速發布應用。本文為您介紹Android端接入語聊房的操作指引。
源碼說明
源碼下載
下載地址請參見GitHub開源項目。
目錄結構
├── Android
│ ├── AUIBaseKits //AUI基礎組件
│ ├── AUIVoiceRoom //UI組件
│ ├── AUIVoiceRoomEngine //場景化接口
│ ├── README.md
│ ├── app //Demo入口
│ ├── build.gradle
│ └── settings.gradle
環境要求
Android Studio插件版本4.1.3
Gradle 7.0.2
Android Studio自帶JDK11
前提條件
跑通Demo
本章節介紹如何編譯運行Demo。
下載并解壓Demo文件,下載地址請參見MediaBox-AUIKits。
配置工程文件:使用Android Studio,選擇File > Open,選擇上一步下載的Demo工程文件。
進入文件VoiceRoomServerConstant.java,修改服務端域名和實時音視頻應用的appID。
public class VoiceRoomServerConstant { public static final String APP_ID = "xxx"; public static final String HOST = "xxx"; }
真機測試
鏈接Android真機,連接成功后顯示如下圖。
單擊下圖綠色運行按鈕,構建工程文件。
安裝到Android真機上,運行互動直播應用。
快速開發自己的語聊房功能
可通過如下步驟快速集成AUIVoiceRoom到您的App中,讓您的App具備語聊房功能。
集成源碼
導入AUIVoiceRoom與AUIVoiceRoomEngine。
倉庫代碼下載后,Android Studio菜單選擇:File > New > Import Module,導入選擇文件夾。
修改文件夾下的build.gradle的三方庫依賴項。
dependencies { implementation 'androidx.appcompat:appcompat:x.x.x' //修改x.x.x為你工程適配的版本 implementation 'com.google.android.material:material:x.x.x' //修改x.x.x為你工程適配的版本 androidTestImplementation 'androidx.test.espresso:espresso-core:x.x.x' //修改x.x.x為你工程適配的版本 implementation 'com.aliyun.aio:AliVCSDK_Standard:x.x.x' //修改x.x.x為你工程適配的版本 }
等待gradle同步完成,完成源碼集成。
源碼配置
完成前提條件后,進入文件VoiceRoomServerConstant.java,修改服務端域名。
// VoiceRoomServerConstant.java public static final String HOST = "你的應用服務器域名";
完成前提條件后,進入文件VoiceRoomServerConstant.java,修改實時音視頻應用ID。
// VoiceRoomServerConstant.java
public static final String APP_ID = "你的實時音視頻應用appID";
調用API
上述步驟完成后,您可以根據自身的業務場景和交互,在您App的其他模塊或主頁上通過組件接口快速實現語聊房功能,也可以根據自身的需求修改源碼。
// 設置個人信息并初始化
String roomId = "xxx";
AUIVoiceRoom auiVoiceRoom = ChatRoomManager.getInstance().createVoiceRoom(roomId);
UserInfo userInfo = new UserInfo("xxx", "xxx");
userInfo.userName = currentUser.getName();
userInfo.avatarUrl = currentUser.getAvatar();
auiVoiceRoom.init(ChatEntryActivity.this.getApplicationContext(), ClientMode.VOICE_ROOM, VoiceRoomServerConstant.APP_ID, userInfo, ChatEntryActivity.this.im_token, new ActionCallback() {
@Override
public void onResult(int code, String msg, Map<String, Object> params) {
if(code == ChatRoomManager.CODE_SUCCESS) {
Log.v(TAG, "init room success");
} else {
Log.v(TAG, "init room fail:code:" + code + ",msg:" + msg );
}
}
});
// 加入房間
RoomInfo roomInfo = new RoomInfo("xxx");
RtcInfo rtcInfo = new RtcInfo("xxx", "xxx");
auiVoiceRoom.joinRoom(roomInfo, rtcInfo, new ActionCallback() {
@Override
public void onResult(int code, String msg, Map<String, Object> params) {
Log.v(TAG, "join room:" + code + ",msg:" + msg + ",roomId:" + roomInfo.roomId);
}
});
運行結果
參考Demo體驗。
常見問題
更多AUIKits問題咨詢及使用說明,請搜索釘釘群(35685013712)加入AUI客戶支持群聯系我們。