AUI Kits 在线K歌房场景集成工具是阿里云提供的跨平台音视频实时通信服务,为业务方提供在线点歌、独唱、多人合唱、语音聊天等场景的能力,借助通信的稳定、流畅、灵活的产品能力,以低代码的方式助力业务方快速发布应用。
源码说明
源码下载
下载地址请参见。
源码结构
├── Android //Android平台工程结构跟目录
│ ├── AUIBaseKits //AUI基础组件
│ ├── AUIKaraokeRoom //UI组件
│ ├── AUIKaraokeRoomEngine //在线K歌房场景接口与实现
│ ├── AUIVoiceRoomEngine // 语聊场景接口与实现
│ ├── README.md
│ ├── app //Demo
│ ├── build.gradle
│ └── settings.gradle
环境要求
Android Studio 插件版本4.1.3
Gradle 7.0.2
Android Studio自带 JDK 11
前提条件
需要开通应用,并且在你的服务端上开发相关接口或直接部署提供的Server源码,请参见前置准备。
快速开发自己的在线K歌房功能
可通过以下几个步骤快速集成AUIKaraokeRoom到你的APP中,让你的APP具备在线K歌房功能。
集成源码
导入AUIKaraokeRoom、AUIKaraokeRoomEngine与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同步完成,完成源码集成。
源码配置
完成前提条件后,进入文件KTVServerConstant.java,修改服务端域名。
// KTVServerConstant.java
public static final String HOST = "你的应用服务器域名";
完成前提条件后,进入文件KTVServerConstant.java,修改互动直播应用appID。
// KTVServerConstant.java
public static final String APP_ID = "你的互动直播应用appID";
调用API
完成上步工作后,接下来可以根据自身的业务场景和交互,可以在你APP其他模块或主页上通过组件接口快速实现K歌房功能,也可以根据自身的需求修改源码。
// 设置个人信息并初始化
String roomId = "xxx";
ARTCKaraokeRoomController auiKaraokeRoom = KTVRoomManager.getInstance().createKTVRoomController(roomId);
UserInfo userInfo = new UserInfo("xxx", "xxx");
userInfo.userName = currentUser.getName();
userInfo.avatarUrl = currentUser.getAvatar();
auiKaraokeRoom.init(KaraokeEntryActivity.this.getApplicationContext(), KTVServerConstant.APP_ID, KaraokeEntryActivity.this.authorization, userInfo, KaraokeEntryActivity.this.im_token, new ActionCallback() {
@Override
public void onResult(int code, String msg, Map<String, Object> params) {
if(code == KTVRoomManager.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");
auiKaraokeRoom.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客户支持群联系我们。
文档内容是否对您有帮助?