LiveListStore

最近更新时间:2026-03-09 09:50:13

我的收藏

简介

LiveListStore 提供了一套完整的直播间管理 API,包括创建直播、加入直播、离开直播、结束直播等功能。
通过该类,可以实现直播间的生命周期管理。
重要:
使用 LiveListStore.shared 单例对象获取 LiveListStore 实例。
说明:
直播状态更新通过 liveState 发布者传递。订阅它以接收直播数据的实时更新。

功能特性

直播列表:获取和管理直播间列表。
直播创建:创建新的直播间。
直播加入:加入已存在的直播间。
直播管理:更新直播信息、结束直播等操作。
事件监听:监听直播结束、被踢出等事件。

可订阅数据

LiveListState 的字段描述如下:
属性名
类型
描述
liveList
ValueListenable<List<LiveInfo>>
直播列表。
liveListCursor
ValueListenable<String>
直播列表游标。
currentLive
ValueListenable<LiveInfo>
当前直播信息。

API 列表

函数名
描述
单例对象。
直播列表事件回调。
直播列表事件回调。
获取直播列表。
获取直播信息。
创建直播。
加入直播。
离开直播。
结束直播。
更新直播信息。
查询元数据。
更新元数据。

获取实例

LiveListStore.shared

单例对象。

观察状态和事件

addLiveListListener

添加直播列表事件监听器
void addLiveListListener(LiveListListener listener);
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
listener
必填
监听器。

removeLiveListListener

移除直播列表事件监听器
void removeLiveListListener(LiveListListener listener);
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
listener
必填
监听器。

直播列表

fetchLiveList

获取直播列表
Future<CompletionHandler> fetchLiveList({
required String cursor,
required int count,
});
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
cursor
String
必填
游标。
count
int
必填
数量。

fetchLiveInfo

获取直播信息。

直播操作

createLive

创建直播
Future<LiveInfoCompletionHandler> createLive(LiveInfo liveInfo);
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
liveInfo
必填
直播信息。

joinLive

加入直播
Future<LiveInfoCompletionHandler> joinLive(String liveID);
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
liveID
String
必填
直播 ID。

leaveLive

离开直播
Future<CompletionHandler> leaveLive();
版本信息
从 3.5 版本开始支持。

endLive

结束直播
Future<StopLiveCompletionHandler> endLive();
版本信息
从 3.5 版本开始支持。

updateLiveInfo

更新直播信息
Future<CompletionHandler> updateLiveInfo({
required LiveInfo liveInfo,
required List<ModifyFlag> modifyFlagList,
});
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
liveInfo
必填
直播信息。
modifyFlag
List<ModifyFlag>
必填
修改标志。

元数据操作

queryMetaData

查询元数据
Future<MetaDataCompletionHandler> queryMetaData(List<String> keys);
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
keys
List<String>
必填
键列表。

updateLiveMetaData

更新直播元数据
Future<CompletionHandler> updateLiveMetaData(Map<String, String> metaData);
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
metaData
Map<String, String>
必填
元数据。

数据结构

TakeSeatMode

上麦模式。
枚举值
说明
free
自由上麦。
apply
申请上麦。

LiveEndedReason

直播结束原因。
枚举值
说明
endedByHost
主播主动结束。
endedByServer
服务器结束。

LiveKickedOutReason

被踢出直播间原因。
枚举值
说明
byAdmin
被管理员踢出。
byLoggedOnOtherDevice
在其他设备登录。
byServer
被服务器踢出。
forNetworkDisconnected
网络断开连接。
forJoinRoomStatusInvalidDuringOffline
离线期间房间状态无效。
forCountOfJoinedRoomsExceedLimit
加入房间数量超过限制。

LiveInfo

直播信息。
属性
类型
是否必填
说明
liveID
String
必填
直播间的唯一标识,最长48个字节,推荐您使用前缀来区分不同的房间类型。
liveName
String
可选
直播间名称,该字段最长 100 个字节,如果您不填写,默认为房间 ID。
notice
String
可选
房间公告,最长100个字节。
seatTemplate
SeatLayoutTemplate
必填
麦位布局模板,用于简化麦位配置。
视频竖屏开播:支持 VideoDynamicGrid9Seats(动态宫格布局)、VideoDynamicFloat7Seats(浮动小窗布局)、VideoFixedGrid9Seats(固定宫格布局)、VideoFixedFloat7Seats(固定小窗布局)等布局。
视频横屏开播:支持 VideoLandscape4Seat (横屏布局)。
语聊房开播:支持 AudioSalon(聊天室布局)、Karaoke(KTV 布局)等布局。
keepOwnerOnSeat
bool
可选
仅适用于语聊房场景,默认值为 false,房主不会自动上麦。如果设置为 true,则房主进房后会自动上麦。
seatMode
可选
上麦模式,取值范围如下,默认为 FreeToTake 模式。
FreeToTake,自由上麦,无需房主或者管理员同意可以直接上麦。
ApplyToTake,申请上麦,需房主或者管理员同意后才可以上麦。
maxSeatCount
int
可选
仅适用于语聊房场景,即 seatTemplate 设置为 AudioSalon 或 Karaoke 时生效,设置房间的麦位数量(取值范围受套餐包最大数量限制)。
isSeatEnabled
bool
可选
已废弃。请使用 seatTemplate 替代,内部将自动解析该参数。
seatLayoutTemplateID
int
可选
已废弃。请使用 seatTemplate 替代,内部将自动解析该参数。
isMessageDisable
bool
可选
默认值为 false,即允许观众发送弹幕。管理员和房主除外。
只有房主和管理员可以设置。
isPublicVisible
bool
可选
房间是否在 直播间列表 中可见,默认值是 true。
只有房主和管理员可以设置。
如果您想在正式开播前试播或者创建私密直播间,可设置为 false。
如果您想在 获取直播列表中能看到当前直播间,可设置为 true。
isGiftEnabled
bool
可选
只读,默认值为 true,即允许观众赠送礼物。
coverURL
String
可选
房间封面,可用于直播间列表中的展示。最大 200 字节。
只有房主和管理员可以设置。
backgroundURL
String
可选
直播间的背景图片,最大 200 字节。
只有房主和管理员可以设置。
categoryList
List<int>
可选
房间分类标签,自定义字段,您可以用来作为房间类型标识,例如游戏、音乐等。
只有房主和管理员可以设置。
单个房间最多支持 3 个标记。
activityStatus
int
可选
直播间内的活动状态,自定义字段。例如:0-游戏准备中; 1-游戏中; 2-游戏结束。
只有房主和管理员可以设置。
当您设置后,所有用户进房都会获取到;当您有更新时,房间内的用户也会同步获取到最新的值。
liveOwner
可选
只读,当前直播间的房主信息,默认为创建房间的用户信息。
createTime
int
可选
只读,房间创建时间戳,单位为毫秒。
totalViewerCount
int
可选
只读,用户进房总次数。
metaData
Map<String, String>
可选
设置的自定义元数据键值对,键和值都必须是字符串类型。
只有房主和管理员可以设置。
单个房间最多支持 10 个 key,每个 key 的长度不超过 50 字节,每个 value 的长度不超过 2KB,单个房间所有 value 的总大小不超过 16KB。

LiveListState

直播列表状态。
属性
类型
说明
liveList
ValueListenable<List<LiveInfo>>
直播列表。
liveListCursor
ValueListenable<String>
直播列表游标。
currentLive
ValueListenable<LiveInfo>
当前直播信息。

LiveListListener

直播列表事件。
方法
onLiveEnded: 直播结束事件。
void Function(String liveID, LiveEndedReason reason, String message)? onLiveEnded;
参数名
类型
说明
liveID
String
直播 ID。
reason
结束原因。
message
String
消息。
onKickedOutOfLive: 被踢出直播间事件。
void Function(String liveID, LiveKickedOutReason reason, String message)? onKickedOutOfLive;

LiveListListener({this.onLiveEnded, this.onKickedOutOfLive});
参数名
类型
说明
liveID
String
直播 ID。
reason
被踢出原因。
message
String
消息。

LiveInfoCompletionHandler

Dart 直播信息完成回调。
Dart 直播信息操作的完成回调,包含返回的直播信息。
属性
属性
类型
说明
liveInfo
成功时返回的直播信息。

StopLiveCompletionHandler

Dart 停止直播完成回调。
Dart 停止直播操作的完成回调,包含直播统计数据。
属性
属性
类型
说明
statisticsData
TUILiveStatisticsData
成功时返回的直播统计数据。

MetaDataCompletionHandler

Dart 元数据完成回调。
Dart 元数据操作的完成回调,包含元数据结果。
属性
属性
类型
说明
metaData
Map<String, String>
成功时返回的元数据。