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客户支持群联系我们。