LiveAudienceStore

Introduction

LiveAudienceStore provides a complete set of audience management APIs, including fetching audience list, setting administrators, kicking users, muting, etc.
Through this class, you can implement audience management functions in live rooms.
Important:
Use the LiveAudienceStore.create factory method to create a LiveAudienceStore instance, which requires a valid live room ID.
Note:
Audience state updates are delivered through the liveAudienceState publisher. Subscribe to it to receive real-time updates of audience data in the room.

Features

Audience List:Get and manage the audience list of the current room
Permission Management:Set and revoke administrator permissions
User Management:Kick users, mute, and other operations
Event Listening:Listen for audience join, leave, and other events

Subscribable Data

LiveAudienceState fields are described below:
Property
Type
Description
audienceList
StateFlow<List<LiveUserInfo>>
Audience list.
audienceCount
StateFlow<Int>
Audience count.
messageBannedUserList
StateFlow<List<LiveUserInfo>>
List of users banned from sending messages.

API List

Function
Description
Create audience management instance.
Audience event callbacks.
Audience event callbacks.
Fetch audience list.
Set administrator.
Revoke administrator.
Kick user.
Mute/unmute user.

Creating Instance

LiveAudienceStore.create

Create audience management instance

Observing State and Events

addLiveAudienceListener

Add audience event listener
abstract fun addLiveAudienceListener(listener: LiveAudienceListener)
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
listener
Required
Listener.

removeLiveAudienceListener

Remove audience event listener
abstract fun removeLiveAudienceListener(listener: LiveAudienceListener)
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
listener
Required
Listener.

Audience Management

fetchAudienceList

Fetch audience list
abstract fun fetchAudienceList(completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
completion
Required
Completion callback.

setAdministrator

Set administrator
abstract fun setAdministrator(userID: String?, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
userID
String?
Required
User ID to be set as administrator.
completion
Required
Completion callback.

revokeAdministrator

Revoke administrator
abstract fun revokeAdministrator(userID: String?, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
userID
String?
Required
User ID to revoke administrator permission.
completion
Required
Completion callback.

kickUserOutOfRoom

Kick user out of room
abstract fun kickUserOutOfRoom(userID: String?, completion: CompletionHandler?)
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
userID
String?
Required
User ID to be kicked out.
completion
Required
Completion callback.

disableSendMessage

Disable/enable user message sending
abstract fun disableSendMessage(
userID: String?,
isDisable: Boolean,
completion: CompletionHandler?
)
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
userID
String?
Required
Target user ID.
isDisable
Boolean
Required
true to disable message sending, false to enable.
completion
Required
Completion callback.

Data Structures

Role

User role.
Enum Value
Description
OWNER
Room owner.
ADMIN
Administrator.
GENERAL_USER
General user.

LiveUserInfo

Live user information
Property
Type
Description
userID
String
User unique identifier ID.
userName
String
User name.
avatarURL
String
User avatar URL.

LiveAudienceState

Live audience state
Property
Type
Description
audienceList
StateFlow<List<LiveUserInfo>>
Audience list.
audienceCount
StateFlow<Int>
Audience count.
messageBannedUserList
StateFlow<List<LiveUserInfo>>
List of users banned from sending messages.

LiveAudienceListener

Live audience events
This listener is used to receive audience dynamic events in the live room.
Methods
onAudienceJoined: Audience joined event.
open fun onAudienceJoined(audience: LiveUserInfo) {}
Parameter
Type
Description
audience
Information of the joined audience.
onAudienceLeft: Audience left event.
open fun onAudienceLeft(audience: LiveUserInfo) {}
Parameter
Type
Description
audience
Information of the left audience.
onAudienceMessageDisabled: Audience message disabled event.
open fun onAudienceMessageDisabled(audience: LiveUserInfo, isDisable: Boolean) {}
Parameter
Type
Description
audience
Audience information.
isDisable
Boolean
Whether message sending is disabled.