GiftStore

简介

GiftStore 提供了一套完整的礼物管理 API,包括发送礼物、刷新礼物列表、设置语言和监听礼物事件。
通过该类,可以在直播间内实现礼物互动功能。
重要:
使用 GiftStore.create 工厂方法创建 GiftStore 实例,需要传入有效的直播间 ID。
说明:
礼物状态更新通过 giftState 发布者传递。订阅它以接收房间内礼物数据的实时更新。

功能特性

礼物发送:支持向当前房间发送指定礼物。
礼物列表:获取和刷新当前房间可用的礼物列表。
语言设置:设置礼物信息的展示语言。
事件监听:监听礼物接收事件。

可订阅数据

GiftState 的字段描述如下:
属性名
类型
描述
usableGifts
ValueListenable<List<GiftCategory>>
当前房间可用的所有礼物分类及礼物列表。

API 列表

函数名
描述
创建礼物管理实例。
礼物事件回调。
礼物事件回调。
发送礼物。
刷新可用礼物列表。
设置展示语言。

创建实例

GiftStore.create

创建礼物管理实例。

观察状态和事件

addGiftListener

礼物事件回调

removeGiftListener

礼物事件回调

礼物操作

sendGift

向当前房间发送指定礼物
Future<CompletionHandler> sendGift({
required String giftID,
required int count,
});
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
giftID
String
必填
要发送的礼物唯一标识 ID。
count
int
必填
单次发送的礼物数量。

refreshUsableGifts

手动刷新当前房间的可用礼物列表。
Future<CompletionHandler> refreshUsableGifts();
版本信息
从 3.5 版本开始支持。

setLanguage

设置礼物信息的展示语言。
void setLanguage(String language);
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
language
String
必填
语言代码("zh-CN" 表示中文,"en" 表示英文),设置完成展示界面刷新后礼物名称、描述等会同步更新为对应语言。

数据结构

Gift

礼物数据模型,包含单个礼物的完整属性信息。
属性
类型
说明
giftID
String
礼物ID。
name
String
礼物名称。
desc
String
礼物描述。
iconURL
String
礼物图标图片的网络 URL,用于加载礼物缩略图。
resourceURL
String
礼物动效资源文件的网络 URL,用于加载礼物展示动效。
level
int
礼物等级,用于区分礼物稀有度或价值层级。
coins
int
礼物价格(金币)。
extensionInfo
Map<String, String>
礼物扩展信息,可自定义字段(如特效类型、赠送限制等)。

GiftCategory

礼物分类。
属性
类型
说明
categoryID
String
分类唯一标识 ID,用于区分不同礼物分类。
name
String
分类展示名称,用于 UI 分类显示(如 "热门礼物","高级礼物")。
desc
String
分类描述信息,用于说明该分类的特点。
extensionInfo
Map<String, String>
分类扩展信息,包含自定义字段(如排序权重、显示样式等)。
giftList
List<Gift>
当前分类下的所有礼物列表。

GiftState

礼物状态,管理当前房间的礼物数据状态,支持实时更新并可被订阅监听。
属性
类型
说明
usableGifts
ValueListenable<List<GiftCategory>>
当前房间可用的所有礼物分类及礼物列表。

GiftListener

礼物事件,用于接收直播间/语音聊天房内的礼物动态。
方法
onReceiveGift: 收到新礼物消息的事件回调。当直播间/语音聊天房内有其他观众发送礼物时,会触发该事件并返回相关信息。
void Function(String liveID, Gift gift, int count, LiveUserInfo sender)? onReceiveGift;

GiftListener({this.onReceiveGift});
参数名
类型
说明
liveID
String
直播间ID。
gift
礼物信息。
count
int
礼物数量。
sender
礼物发送者信息。