LiveListStore
Introduction
LiveListStore provides a complete set of live room management APIs, including creating live, joining live, leaving live, ending live and other functions. Through this class, you can manage the lifecycle of live rooms.Important:
Use the LiveListStore.shared singleton object to get the
LiveListStore instance.Note:
Live state updates are delivered through the liveState publisher. Subscribe to it to receive real-time updates of live data.
Features
Live List:Get and manage live room list
Live Creation:Create new live rooms
Live Joining:Join existing live rooms
Live Management:Update live info, end live and other operations
Event Listening:Listen for live ended, kicked out and other events
Subscribable Data
LiveListState fields are described below:
API List
Function | Description |
Singleton object. | |
Live list event callbacks. | |
Live list event callbacks. | |
Get live list. | |
Get live info. | |
Create live. | |
Join live. | |
Leave live. | |
End live. | |
Update live info. | |
Query metadata. | |
Update metadata. |
Getting Instance
LiveListStore.shared
Singleton object
Observing State and Events
addLiveListListener
Add live list event listener
abstract fun addLiveListListener(listener: LiveListListener)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Required | Description |
listener | Required | Listener. |
removeLiveListListener
Remove live list event listener
abstract fun removeLiveListListener(listener: LiveListListener)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Required | Description |
listener | Required | Listener. |
Live List
fetchLiveList
Get live list
abstract fun fetchLiveList(cursor: String?,count: Int,completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Required | Description |
cursor | String? | Required | Cursor. |
count | Int | Required | Count. |
completion | Required | Completion callback. |
fetchLiveInfo
Get live info
abstract fun fetchLiveInfo(liveID: String,completion: LiveInfoCompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Required | Description |
liveID | String | Required | Live room ID. |
completion | Required | Completion callback. |
Live Operations
createLive
Create live
abstract fun createLive(liveInfo: LiveInfo,completion: LiveInfoCompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Required | Description |
liveInfo | Required | Live info. | |
completion | Required | Completion callback. |
joinLive
Join live
abstract fun joinLive(liveID: String?,completion: LiveInfoCompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Required | Description |
liveID | String? | Required | Live ID. |
completion | Required | Completion callback. |
leaveLive
Leave live
abstract fun leaveLive(completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Required | Description |
completion | Required | Completion callback. |
endLive
End live
abstract fun endLive(completion: StopLiveCompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Required | Description |
completion | Required | Completion callback. |
updateLiveInfo
Update live info
abstract fun updateLiveInfo(liveInfo: LiveInfo,modifyFlagList: List<LiveInfo.ModifyFlag>,completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Required | Description |
liveInfo | Required | Live info. | |
modifyFlag | List<LiveInfo.ModifyFlag> | Required | Modify flag. |
completion | Required | Completion callback. |
Metadata Operations
queryMetaData
Query metadata
abstract fun queryMetaData(keys: List<String>,completion: MetaDataCompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Required | Description |
keys | List<String> | Required | Key list. |
completion | Required | Completion callback. |
updateLiveMetaData
Update live metadata
abstract fun updateLiveMetaData(metaData: HashMap<String, String>,completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter | Type | Required | Description |
metaData | HashMap<String, String> | Required | Metadata. |
completion | Required | Completion callback. |
Data Structures
TakeSeatMode
Take seat mode.
Enum Value | Description |
FREE | Free to take seat. |
APPLY | Apply to take seat. |
SeatLayoutTemplate
Seat layout template for simplifying seat configuration when creating a live room.
Enum Value | Description |
VideoDynamicGrid9Seats | Portrait dynamic 9-grid layout for video live streaming. |
VideoDynamicFloat7Seats | Portrait dynamic 1v6 floating layout for video live streaming. |
VideoFixedGrid9Seats | Portrait static 9-grid layout for video live streaming. |
VideoFixedFloat7Seats | Portrait static 1v6 floating layout for video live streaming. |
VideoLandscape4Seats | Landscape 4-seat layout for video live streaming. |
Karaoke | Audio KTV layout for karaoke scenes with configurable seat count. |
AudioSalon | Audio salon layout for voice chat scenes with configurable seat count. |
LiveEndedReason
Live ended reason.
Enum Value | Description |
ENDED_BY_HOST | Ended by host. |
ENDED_BY_SERVER | Ended by server. |
LiveKickedOutReason
Kicked out of live room reason.
Enum Value | Description |
BY_ADMIN | Kicked out by admin. |
BY_LOGGED_ON_OTHER_DEVICE | Logged on other device. |
BY_SERVER | Kicked out by server. |
FOR_NETWORK_DISCONNECTED | Network disconnected. |
FOR_JOIN_ROOM_STATUS_INVALID_DURING_OFFLINE | Join room status invalid during offline. |
FOR_COUNT_OF_JOINED_ROOMS_EXCEED_LIMIT | Count of joined rooms exceed limit. |
LiveInfo
Live information
Property | Type | Required | Description |
liveID | String | Required | Unique identifier for the live room, maximum 48 bytes. It is recommended to use prefixes to distinguish different room types. |
liveName | String | Optional | Live room name, maximum 100 bytes. If not set, defaults to the room ID. |
notice | String | Optional | Room announcement, maximum 100 bytes. |
seatTemplate | Required | Seat layout template for simplifying seat configuration. Portrait video streaming: Supports VideoDynamicGrid9Seats (dynamic grid layout), VideoDynamicFloat7Seats (floating window layout), VideoFixedGrid9Seats (fixed grid layout), VideoFixedFloat7Seats (fixed floating layout), etc.Landscape video streaming: Supports VideoLandscape4Seat (landscape layout).Voice chat room streaming: Supports AudioSalon (chat room layout), Karaoke (KTV layout), etc. | |
keepOwnerOnSeat | Boolean | Optional | Only applicable to voice chat room scenarios; default value is false, and the owner will not automatically take a seat. If set to true, the owner will automatically take a seat after entering the room. |
seatMode | Optional | Take seat mode, with the following options. Default is FreeToTake mode.FreeToTake: Free to take seat, no approval from owner or admin is required.ApplyToTake: Apply to take seat, approval from owner or admin is required. | |
maxSeatCount | Int | Optional | Only applicable to voice chat room scenarios, effective when SeatTemplate is set to AudioSalon or Karaoke, sets the number of seats in the room (value range is limited by the maximum count in the package). |
isSeatEnabled | Boolean | Optional | Deprecated. Use seatTemplate instead. This parameter will be parsed automatically. |
seatLayoutTemplateID | Int | Optional | Deprecated. Use seatTemplate instead. This parameter will be parsed automatically. |
isMessageDisable | Boolean | Optional | Default value is false, allowing viewers to send barrage messages. Admins and owners are exceptions.Only the owner and admins can modify this setting. |
isPublicVisible | Boolean | Optional | Whether the room is visible in the live room list, default value is true.Only the owner and admins can modify this setting. Set to false if you want to preview before officially going live or create a private live room.Set to true if you want the room to be visible in the live room list. |
isGiftEnabled | Boolean | Optional | Read-only, default value is true, allowing viewers to send gifts. |
coverURL | String | Optional | Room cover image, can be used for display in the live room list. Maximum 200 bytes. Only the owner and admins can modify this setting. |
backgroundURL | String | Optional | Background image of the live room, maximum 200 bytes. Only the owner and admins can modify this setting. |
categoryList | List<Int> | Optional | Room category tags, custom field, can be used as room type identifiers such as gaming, music, etc. Only the owner and admins can modify this setting. A single room supports up to 3 tags. |
activityStatus | Int | Optional | Activity status within the live room, custom field. For example: 0 - Game preparing; 1 - In game; 2 - Game ended. Only the owner and admins can modify this setting. Once set, all users entering the room will receive this value; when updated, users in the room will also receive the latest value. |
liveOwner | Optional | Read-only, the owner information of the current live room, defaults to the user who created the room. | |
createTime | Long | Optional | Read-only, room creation timestamp in milliseconds. |
totalViewerCount | Int | Optional | Read-only, total number of times users have entered the room. |
metaData | Map<String, String> | Optional | Custom metadata key-value pairs, both keys and values must be strings. Only the owner and admins can modify this setting. A single room supports up to 10 keys, each key can be up to 50 bytes, each value can be up to 2KB, and the total size of all values in a single room cannot exceed 16KB. |
LiveListState
Live list state
LiveListListener
Live list events
Methods
onLiveEnded: Live ended event.
open fun onLiveEnded(liveID: String, reason: LiveEndedReason, message: String) {}
Parameter | Type | Description |
liveID | String | Live ID. |
reason | Ended reason. | |
message | String | Message. |
onKickedOutOfLive: Kicked out of live room event.
open fun onKickedOutOfLive(liveID: String, reason: LiveKickedOutReason, message: String) {}
Parameter | Type | Description |
liveID | String | Live ID. |
reason | Kicked out reason. | |
message | String | Message. |
LiveInfoCompletionHandler
Live info completion callback interface.
Methods
onSuccess: Success callback.
fun onSuccess(liveInfo: LiveInfo)
Parameter | Type | Description |
liveInfo | Live info. |
onFailure: Failure callback.
fun onFailure(code: Int, desc: String)
Parameter | Type | Description |
code | Int | Error code. |
desc | String | Error description. |
StopLiveCompletionHandler
Stop live completion callback interface.
Methods
onSuccess: Success callback.
fun onSuccess(statisticsData: TUILiveListManager.LiveStatisticsData)
Parameter | Type | Description |
statisticsData | TUILiveListManager.LiveStatisticsData | Live statistics data. |
onFailure: Failure callback.
fun onFailure(code: Int, desc: String)
Parameter | Type | Description |
code | Int | Error code. |
desc | String | Error description. |
MetaDataCompletionHandler
Metadata completion callback interface.
Methods
onSuccess: Success callback.
fun onSuccess(metaData: HashMap<String, String>)
Parameter | Type | Description |
metaData | HashMap<String, String> | Metadata. |
onFailure: Failure callback.
fun onFailure(code: Int, desc: String)
Parameter | Type | Description |
code | Int | Error code. |
desc | String | Error description. |