BarrageStore

简介

BarrageStore 提供了一套完整的弹幕管理 API,包括发送文本弹幕、发送自定义弹幕和添加本地提示消息。
通过该类,可以在直播间内实现弹幕互动功能。
重要:
使用 create 工厂方法创建 BarrageStore 实例,需要传入有效的直播间 ID。
说明:
弹幕状态更新通过 barrageState 发布者传递。订阅它以接收房间内弹幕数据的实时更新。

功能特性

文本弹幕:支持发送纯文本弹幕消息。
自定义弹幕:支持发送自定义格式的弹幕(如带特效的弹幕)。
本地提示:支持添加仅本地可见的提示消息。

可订阅数据

BarrageState 的字段描述如下:
属性名
类型
描述
messageList
ValueListenable<List<Barrage>>
当前房间的弹幕消息列表,支持实时更新并可被订阅监听。

API 列表

函数名
描述
创建弹幕管理实例。
发送文本弹幕。
发送自定义弹幕。
添加本地提示消息。

创建实例

create

弹幕管理核心类,用于处理直播间/语音聊天房内的弹幕相关业务逻辑。
static BarrageStore create(String liveID) {
return StoreFactory.shared.getStore<BarrageStore>(liveID: liveID);
}
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
liveID
String
必填
直播间ID。

发送弹幕

sendTextMessage

发送文本类型弹幕。
Future<CompletionHandler> sendTextMessage({
required String text,
Map<String, String>? extensionInfo,
});
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
text
String
必填
文本弹幕内容。
extensionInfo
Map<String, String>?
必填
扩展信息,可包含自定义字段(如指定弹幕颜色、字体大小等)。

sendCustomMessage

发送自定义类型弹幕。
Future<CompletionHandler> sendCustomMessage({
required String businessID,
required String data,
});
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
businessID
String
必填
业务标识ID,用于区分不同业务场景的自定义弹幕。
data
String
必填
自定义数据内容,通常为JSON格式字符串,用于传递业务自定义的数据。

本地消息

appendLocalTip

添加本地提示消息(在本地添加提示或操作反馈消息,仅当前客户端可见)。
void appendLocalTip(Barrage message);
版本信息
从 3.5 版本开始支持。
注意事项
说明:
该消息仅在本地显示,不会通过网络发送给其他用户。
参数说明
参数名
类型
是否必填
描述
message
必填
本地弹幕消息(如系统提示、操作反馈等,仅当前用户可见)。

数据结构

BarrageType

弹幕类型枚举,用于区分不同的弹幕消息种类。
枚举值
说明
text
0
文本类型弹幕,包含纯文字内容。
custom
1
自定义类型弹幕,支持业务自定义数据格式(如带特效的弹幕、互动消息等)。

Barrage

弹幕数据模型,包含单条弹幕的完整属性信息。
属性
类型
说明
liveID
String
弹幕所属直播间/语音聊天房的唯一标识ID。
sender
弹幕发送者的用户信息(如用户ID、昵称、头像等)。
sequence
int
弹幕消息的唯一序列ID,用于消息排序和去重。
timestampInSecond
int
弹幕发送时间戳(单位:秒),用于展示发送时间顺序。
messageType
弹幕消息类型(文本或自定义)。
textContent
String
文本类型弹幕的消息内容,即弹幕的文本内容。
extensionInfo
Map<String, String>
弹幕扩展信息,可自定义字段(如显示样式、优先级等)。当 messageType 为 TEXT 时有效。
businessID
String
自定义类型弹幕的业务标识ID,用于区分不同业务场景的自定义弹幕。
data
String
自定义类型弹幕的具体数据内容(通常为JSON格式字符串),当 messageType 为 CUSTOM 时有效。

BarrageState

弹幕状态,管理当前房间的弹幕数据状态。
属性
类型
说明
messageList
ValueListenable<List<Barrage>>
当前房间的弹幕消息列表,支持实时更新并可被订阅监听。