AUIKaraoke Kotlin API
本文介绍 AUIKaraoke 组件的 API。你可以在 GitHub 上查看源码文件。
KaraokeUIKit
提供 AUIKitKaraoke
的核心类,可用于实现组件初始化、创建、销毁房间等基础功能。
setup
fun setup(
config: AUICommonConfig,
ktvApi: KTVApi? = null,
rtcEngineEx: RtcEngineEx? = null,
rtmClient: RtmClient? = null
)
初始化 AUIKaraoke。
在调用 KaraokeUIKit
类下的其他 API 前,你需要先调用该方法进行初始化。
参数
config
:初始化设置,详见AUICommonConfig
。ktvApi
:K 歌房场景化 API 实例。如果你的项目中还未使用场景化 API,请传入null
,AUIKaraoke 内部会自行创建场景化 API 实例。rtcEngineEx
:RtcEngineEx
实例。如果的你的项目中还未使用声网 RTC SDK,请传入null
,AUIKaraoke 内部会自行创建RtcEngineEx
实例。rtmClient
:RtmClient
实例。如果的你的项目中还未使用声网 RTM SDK,请传入null
,AUIKaraoke 内部会自行创建RtmClient
实例。
createRoom
fun createRoom(
createRoomInfo: AUICreateRoomInfo,
success: (AUIRoomInfo) -> Unit,
failure: (AUIException) -> Unit
)
创建 K 歌房间。
在 K 歌场景下,创建房间的人自动成为房主。异步调用成功后,会返回成功创建的房间信息。
参数
createRoomInfo
:房间信息,详见AUICreateRoomInfo
。success
:回调函数,当房间创建成功时调用。接受一个AUIRoomInfo
参数,表示成功创建的房间信息,无返回值。failure
:回调函数,当房间创建失败时调用。接受一个AUIException
参数表示房间创建失败的异常,无返回值。
getRoomList
fun getRoomList(
startTime: Long?,
pageSize: Int,
success: (List<AUIRoomInfo>) -> Unit,
failure: (AUIException) -> Unit
)
获取 K 歌房间列表。
你可以调用该方法获取当前的已创建的 K 歌房间列表。
参数
startTime
:房间创建的时间,用于筛选在该时间之后创建的房间。pageSize
:每一页房间列表所展示的房间数量。success
:回调函数,当成功获取到 K 歌房间列表时调用,会返回一个房间信息列表,详见AUIRoomInfo
。failure
:回调函数,当房间创建失败时调用,接受一个AUIException
参数表示房间创建失败的异常,无返回值。
launchRoom
fun launchRoom(
roomInfo: AUIRoomInfo,
karaokeView: KaraokeRoomView,
)
启动 K 歌房间。
当你成功调用 createRoom
创建房间后,你可以调用该方法启动房间。
参数
roomInfo
:需要拉起的房间信息,详见AUIRoomInfo
。karaokeView
:KaraokeRoomView
实例,用于显示 K 歌房间的界面。
destroyRoom
fun destroyRoom(roomId: String?)
销毁 K 歌房间。
参数
roomId
:要销毁的房间的 ID。
release
fun release()
释放 AUIKaraoke 的所有资源。
registerRoomRespObserver
fun registerRoomRespObserver(observer: AUIRoomManagerRespObserver)
注册房间事件观测器。
你可以调用该方法注册一个 AUIRoomManagerRespObserver
对象,以便监听房间相关的事件回调,例如房间被销毁、用户被踢出、房间的信息更新等。
参数
observer
:AUIRoomManagerRespObserver
对象,用于处理与房间操作相关的各种事件。你可以根据你的业务需求选择性实现该接口类中的方法。
unRegisterRoomRespObserver
fun unRegisterRoomRespObserver(observer: AUIRoomManagerRespObserver)
取消注册房间事件观测器。
当你退出或销毁房间时,可以调用该方法取消注册房间事件观测器。取消后,你不会再收到任何与房间相关的事件通知。
参数
observer
:AUIRoomManagerRespObserver
对象,用于处理与房间操作相关的各种事件。你可以根据你的业务需求选择性实现该接口类中的方法。
AUIRoomManagerRespObserver
该接口类提供房间相关的响应回调。
onRoomDestroy
default void onRoomDestroy(@NonNull String roomId)
房间被销毁回调。
参数
roomId
:被销毁的房间 ID。
onRoomInfoChange
default void onRoomInfoChange(@NonNull String roomId, @NonNull AUIRoomInfo roomInfo)
房间相关信息变更回调。
当房间的房主、房间内人数等信息发生变化时,可通过该回调获取变化后的信息。
参数
roomId
:房间 ID。roomInfo
:房间信息,详见 AUIRoomInfo。
onAnnouncementDidChange
default void onAnnouncementDidChange(String roomId,String content)
房间公告更新回调。
参数
roomId
:房间 ID。content
:房间公告的内容。
onRoomUserBeKicked
default void onRoomUserBeKicked(String roomId,String userId)
用户被踢下麦位回调。
当房主将用上麦的用户踢下麦位时,可通过该回调得知。
参数
roomId
:房间 ID。userId
:被踢用户的 ID。
数据模型
AUICommonConfig
public class AUICommonConfig {
public @NonNull Context context;
public @NonNull String host = "";
public @NonNull String userId = "";
public @NonNull String userName = "";
public @NonNull String userAvatar = "";
}
通用设置。
参数
context
:安卓活动上下文。host
:你的业务服务器域名。userId
:用户 ID。userName
:用户名。userAvatar
:用户头像。
AUIRoomInfo
public class AUIRoomInfo extends AUICreateRoomInfo implements Serializable {
public @NonNull String roomId = "";
public @Nullable AUIUserThumbnailInfo roomOwner;
public int onlineUsers = 0;
public long createTime = 0;
}
已创建的 K 歌房间的相关信息。
参数
roomId
:房间 ID。roomOwner
:房主信息,详见AUIUserThumbnailInfo
。onlineUsers
:房间内的人数。createTime
:房间创建的时间,单位为毫秒。
AUIUserThumbnailInfo
public class AUIUserThumbnailInfo implements Serializable {
public @NonNull String userId = "";
public @NonNull String userName = "";
public @NonNull String userAvatar = "";
}
K 歌中房主的相关信息。
参数
userId
:房主的 ID。userName
:房主的用户名。userAvatar
:房主的头像。
AUIException
public AUIException(int code, String message)
错误码及信息。
参数
code
:错误码。message
:错误信息。