Android端快速集成

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歌房功能。

集成源码

  1. 导入AUIKaraokeRoom、AUIKaraokeRoomEngine与AUIVoiceRoomEngine:仓库代码下载后,Android Studio菜单选择: File -> New -> Import Module,导入选择文件夹。

  2. 修改文件夹下的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为你工程适配的版本
}
  1. 等待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客户支持群联系我们。