LiveAudienceStore

简介

LiveAudienceStore 提供了一套完整的观众管理 API,包括获取观众列表、设置管理员、踢出用户、禁言等功能。
通过该类,可以在直播间内实现观众管理功能。
重要:
使用 create(liveID:) 工厂方法创建 LiveAudienceStore 实例,需要传入有效的直播间 ID。
说明:
观众状态更新通过 state 发布者传递。订阅它以接收房间内观众数据的实时更新。

功能特性

观众列表:获取和管理当前房间的观众列表。
权限管理:设置和撤销管理员权限。
用户管理:踢出用户、禁言等操作。
事件监听:监听观众加入、离开等事件。

可订阅数据

LiveAudienceState 的字段描述如下:
属性名
类型
描述
audienceList
观众列表。
audienceCount
UInt
观众数量。
messageBannedUserList
消息被禁言的用户列表。

API 列表

函数名
描述
创建观众管理实例。
观众事件发布者。
获取观众列表。
设置管理员。
撤销管理员。
踢出用户。
禁言/解禁用户。

创建实例

create

创建观众管理实例
public static func create(liveID: String) -> LiveAudienceStore {
let store: LiveAudienceStoreImpl = StoreFactory.shared.getStore(liveId: liveID)
return store
}
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
liveID
String
必填
直播间ID。

观察状态和事件

liveAudienceEventPublisher

观众事件发布者

观众管理

fetchAudienceList

获取观众列表
public func fetchAudienceList(
completion: CompletionClosure?
) {
fatalError("\(#function) must be overridden by subclass")
}
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
completion
必填
完成回调。

setAdministrator

设置管理员
public func setAdministrator(userID: String,
completion: CompletionClosure?) {
fatalError("\(#function) must be overridden by subclass")
}
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
userID
String
必填
要设置为管理员的用户ID。
completion
必填
完成回调。

revokeAdministrator

撤销管理员
public func revokeAdministrator(userID: String,
completion: CompletionClosure?) {
fatalError("\(#function) must be overridden by subclass")
}
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
userID
String
必填
要撤销管理员权限的用户ID。
completion
必填
完成回调。

kickUserOutOfRoom

将用户踢出房间
public func kickUserOutOfRoom(userID: String,
completion: CompletionClosure?) {
fatalError("\(#function) must be overridden by subclass")
}
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
userID
String
必填
要踢出的用户ID。
completion
必填
完成回调。

disableSendMessage

禁用/解禁用户发送消息
public func disableSendMessage(userID: String,
isDisable: Bool,
completion: CompletionClosure?) {
fatalError("\(#function) must be overridden by subclass")
}
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
userID
String
必填
目标用户ID。
isDisable
Bool
必填
true 表示禁用发送消息,false 表示解禁。
completion
必填
完成回调。

数据结构

Role

用户角色。
枚举值
说明
owner
房主。
admin
管理员。
generalUser
普通用户。

LiveUserInfo

直播用户信息。
属性
类型
说明
userID
String
用户唯一标识ID。
userName
String
用户名称。
avatarURL
String
用户头像URL。

LiveAudienceState

直播观众状态。
属性
类型
说明
audienceList
观众列表。
audienceCount
UInt
观众数量。
messageBannedUserList
消息被禁言的用户列表。

LiveAudienceListener

直播观众事件。
此监听器用于接收直播间内的观众动态事件。
方法
onAudienceJoined: 观众加入事件。
case onAudienceJoined(audience: LiveUserInfo)
参数名
类型
说明
audience
加入的观众信息。
onAudienceLeft: 观众离开事件。
case onAudienceLeft(audience: LiveUserInfo)
参数名
类型
说明
audience
离开的观众信息。
onAudienceMessageDisabled: 观众被禁止发言事件。
case onAudienceMessageDisabled(audience: LiveUserInfo, isDisable: Bool)
参数名
类型
说明
audience
观众信息。
isDisable
Bool
是否被禁止发言。