LiveSeatStore

简介

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

功能特性

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

可订阅数据

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

API 列表

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

创建实例

LiveSeatStore.create

创建麦位管理实例。

观察状态和事件

addLiveSeatEventListener

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

removeLiveSeatEventListener

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

麦位操作

takeSeat

上麦
Future<CompletionHandler> takeSeat(int seatIndex);
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
seatIndex
int
必填
麦位索引。

leaveSeat

下麦
Future<CompletionHandler> leaveSeat();
版本信息
从 3.5 版本开始支持。

lockSeat

锁定麦位
Future<CompletionHandler> lockSeat(int seatIndex);
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
seatIndex
int
必填
麦位索引。

unlockSeat

解锁麦位
Future<CompletionHandler> unlockSeat(int seatIndex);
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
seatIndex
int
必填
麦位索引。

用户管理

kickUserOutOfSeat

踢用户下麦
Future<CompletionHandler> kickUserOutOfSeat(String userID);
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
userID
String
必填
用户 ID。

moveUserToSeat

移动用户到麦位
Future<CompletionHandler> moveUserToSeat({
required String userID,
required int targetIndex,
MoveSeatPolicy policy = MoveSeatPolicy.abortWhenOccupied,
});
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
userID
String
必填
用户 ID。
targetIndex
int
必填
目标麦位索引。
policy
必填
移动策略。

远程设备控制

openRemoteCamera

开启远程摄像头
Future<CompletionHandler> openRemoteCamera({
required String userID,
required DeviceControlPolicy policy,
});
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
userID
String
必填
用户 ID。
policy
必填
设备控制策略。

closeRemoteCamera

关闭远程摄像头
Future<CompletionHandler> closeRemoteCamera(String userID);
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
userID
String
必填
用户 ID。

openRemoteMicrophone

开启远程麦克风
Future<CompletionHandler> openRemoteMicrophone({
required String userID,
required DeviceControlPolicy policy,
});
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
userID
String
必填
用户 ID。
policy
必填
设备控制策略。

closeRemoteMicrophone

关闭远程麦克风
Future<CompletionHandler> closeRemoteMicrophone(String userID);
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
userID
String
必填
用户 ID。

数据结构

MoveSeatPolicy

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

DeviceControlPolicy

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

SuspendStatus

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

LiveSeatListener

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

SeatUserInfo

麦位用户信息。
属性
类型
说明
userID
String
用户 ID。
userName
String
用户名。
avatarURL
String
头像URL。
role
用户角色。
liveID
String
直播间ID。
microphoneStatus
麦克风状态。
allowOpenMicrophone
bool
是否允许开启麦克风。
cameraStatus
摄像头状态。
allowOpenCamera
bool
是否允许开启摄像头。
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
bool
是否锁定。
userInfo
用户信息。
region
区域信息。

LiveCanvas

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

LiveSeatState

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