SeatGridView

简介

LiveSeatStore 提供了一套完整的麦位管理 API,包括上麦、下麦、锁麦、解锁麦位、踢用户下麦、远程控制设备等功能。 通过该类,可以在直播间内实现麦位管理功能。
重要:
使用 LiveSeatStore.create 工厂方法创建 LiveSeatStore 实例,需要传入有效的直播间 ID。
说明:
麦位状态更新通过 liveSeatState 发布者传递。订阅它以接收房间内麦位数据的实时更新。

功能特性

麦位管理:上麦、下麦、锁麦、解锁麦位等操作。
用户管理:踢用户下麦、移动用户到指定麦位。
设备控制:远程控制用户的摄像头和麦克风。
事件监听:监听麦位相关事件。

可订阅数据

LiveSeatState 的字段描述如下:
属性名
类型
描述
seatList
StateFlow<List<SeatInfo>>
麦位列表。
canvas
StateFlow<LiveCanvas>
画布信息。
speakingUsers
StateFlow<MutableMap<String, Int>>
正在说话的用户。
avStatistics
StateFlow<List<AVStatistics>>
音视频相关统计信息。

API 列表

函数名
描述
创建麦位管理实例。
麦位事件回调。
麦位事件回调。
上麦。
下麦。
锁麦。
解锁麦位。
踢用户下麦。
移动用户。
开启远程摄像头。
关闭远程摄像头。
开启远程麦克风。
关闭远程麦克风。

创建实例

LiveSeatStore.create

创建麦位管理实例。

观察状态和事件

addLiveSeatEventListener

添加麦位事件监听器
abstract fun addLiveSeatEventListener(
listener: LiveSeatListener?
)
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
listener
必填
监听器。

removeLiveSeatEventListener

移除麦位事件监听器
abstract fun removeLiveSeatEventListener(
listener: LiveSeatListener?
)
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
listener
必填
监听器。

麦位操作

takeSeat

上麦
abstract fun takeSeat(
seatIndex: Int,
completion: CompletionHandler?
)
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
seatIndex
Int
必填
麦位索引。
completion
必填
完成回调。

leaveSeat

下麦
abstract fun leaveSeat(completion: CompletionHandler?)
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
completion
必填
完成回调。

lockSeat

锁定麦位
abstract fun lockSeat(
seatIndex: Int,
completion: CompletionHandler?
)
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
seatIndex
Int
必填
麦位索引。
completion
必填
完成回调。

unlockSeat

解锁麦位
abstract fun unlockSeat(
seatIndex: Int,
completion: CompletionHandler?
)
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
seatIndex
Int
必填
麦位索引。
completion
必填
完成回调。

用户管理

kickUserOutOfSeat

踢用户下麦
abstract fun kickUserOutOfSeat(
userID: String?,
completion: CompletionHandler?
)
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
userID
String?
必填
用户 ID。
completion
必填
完成回调。

moveUserToSeat

移动用户到麦位
abstract fun moveUserToSeat(
userID: String?,
targetIndex: Int,
policy: MoveSeatPolicy? = MoveSeatPolicy.ABORT_WHEN_OCCUPIED,
completion: CompletionHandler?
)
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
userID
String?
必填
用户 ID。
targetIndex
Int
必填
目标麦位索引。
policy
必填
移动策略。
completion
必填
完成回调。

远程设备控制

openRemoteCamera

开启远程摄像头
abstract fun openRemoteCamera(
userID: String?,
policy: DeviceControlPolicy,
completion: CompletionHandler?
)
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
userID
String?
必填
用户 ID。
policy
必填
设备控制策略。
completion
必填
完成回调。

closeRemoteCamera

关闭远程摄像头
abstract fun closeRemoteCamera(
userID: String?,
completion: CompletionHandler?
)
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
userID
String?
必填
用户 ID。
completion
必填
完成回调。

openRemoteMicrophone

开启远程麦克风
abstract fun openRemoteMicrophone(
userID: String?,
policy: DeviceControlPolicy,
completion: CompletionHandler?
)
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
userID
String?
必填
用户 ID。
policy
必填
设备控制策略。
completion
必填
完成回调。

closeRemoteMicrophone

关闭远程麦克风
abstract fun closeRemoteMicrophone(
userID: String?,
completion: CompletionHandler?
)

internal val hasAudioStreamUserList: MutableSet<String> = mutableSetOf()
internal val hasVideoStreamUserList: MutableSet<String> = mutableSetOf()
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
userID
String?
必填
用户 ID。
completion
必填
完成回调。

数据结构

MoveSeatPolicy

移动麦位策略。
枚举值
说明
ABORT_WHEN_OCCUPIED
被占用时中止。
FORCE_REPLACE
强制替换。
SWAP_POSITION
交换位置。

DeviceControlPolicy

设备控制策略。
枚举值
说明
UNLOCK_ONLY
仅解锁。

SuspendStatus

用户的挂起状态。
枚举值
说明
NONE
未挂起。
IN_BACKGROUND
用户进入后台挂起。
IN_CALLING
用户正在接听电话。

LiveSeatListener

麦位相关的回调事件。
方法
方法名
说明
onLocalCameraOpenedByAdmin
当本地摄像头被管理员开启时触发此回调。
onLocalCameraClosedByAdmin
当本地摄像头被管理员关闭时触发此回调。
onLocalMicrophoneOpenedByAdmin
当本地麦克风被管理员开启时触发此回调。
onLocalMicrophoneClosedByAdmin
当本地麦克风被管理员关闭时触发此回调。

SeatUserInfo

麦位用户信息。
属性
类型
说明
userID
String
用户 ID。
userName
String
用户名。
avatarURL
String
头像URL。
role
用户角色。
liveID
String
直播间ID。
microphoneStatus
麦克风状态。
allowOpenMicrophone
Boolean
是否允许开启麦克风。
cameraStatus
摄像头状态。
allowOpenCamera
Boolean
是否允许开启摄像头。
userSuspendStatus
用户挂起状态。

RegionInfo

麦位视图坐标信息。
属性
类型
说明
x
Int
X坐标。
y
Int
Y坐标。
w
Int
宽度。
h
Int
高度。
zorder
Int
层级顺序。

AVStatistics

音视频相关统计信息。
属性
类型
说明
userID
String
用户 ID。
videoBitrate
Int
本地视频的码率。
videoWidth
Int
本地视频的宽度。
videoHeight
Int
本地视频的高度。
frameRate
Int
本地视频的帧率。
audioSampleRate
Int
音频的采样率。
audioBitrate
Int
音频码率。

SeatInfo

麦位信息。
属性
类型
说明
index
Int
麦位索引。
isLocked
Boolean
是否锁定。
userInfo
用户信息。
region
区域信息。

LiveCanvas

直播画布。
属性
类型
说明
w
Int
宽度。
h
Int
高度。
templateID
Int
模板ID。

LiveSeatState

LiveSeatStore 对外提供的麦位状态数据。
属性
类型
说明
seatList
StateFlow<List<SeatInfo>>
麦位列表。
canvas
StateFlow<LiveCanvas>
画布信息。
speakingUsers
StateFlow<MutableMap<String, Int>>
正在说话的用户。
avStatistics
StateFlow<List<AVStatistics>>
音视频相关统计信息。