LiveListStore

简介

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

功能特性

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

可订阅数据

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

API 列表

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

获取实例

shared

单例对象。

观察状态和事件

liveListEventPublisher

直播列表事件发布者

直播列表

fetchLiveList

获取直播列表
public func fetchLiveList(cursor: String,
count: Int,
completion: CompletionClosure?) {
fatalError("\(#function) must be overridden by subclass")
}
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
cursor
String
必填
游标。
count
Int
必填
数量。
completion
必填
完成回调。

fetchLiveInfo

获取直播信息
public func fetchLiveInfo(liveID: String,
completion: LiveInfoCompletionClosure?) {
fatalError("\(#function) must be overridden by subclass")
}
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
liveID
String
必填
直播间 ID。
completion
LiveInfoCompletionClosure?
必填
完成回调。

直播操作

createLive

创建直播
public func createLive(_ liveInfo: LiveInfo,
completion: LiveInfoCompletionClosure?) {
fatalError("\(#function) must be overridden by subclass")
}
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
liveInfo
必填
直播信息。
completion
LiveInfoCompletionClosure?
必填
完成回调。

joinLive

加入直播
public func joinLive(liveID: String,
completion: LiveInfoCompletionClosure?) {
fatalError("\(#function) must be overridden by subclass")
}
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
liveID
String
必填
直播 ID。
completion
LiveInfoCompletionClosure?
必填
完成回调。

leaveLive

离开直播
public func leaveLive(completion: CompletionClosure?) {
fatalError("\(#function) must be overridden by subclass")
}
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
completion
必填
完成回调。

endLive

结束直播
public func endLive(completion: StopLiveCompletionClosure?) {
fatalError("\(#function) must be overridden by subclass")
}
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
completion
StopLiveCompletionClosure?
必填
完成回调。

updateLiveInfo

更新直播信息
public func updateLiveInfo(_ liveInfo: LiveInfo,
modifyFlag: LiveInfo.ModifyFlag,
completion: CompletionClosure?) {
fatalError("\(#function) must be overridden by subclass")
}
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
liveInfo
必填
直播信息。
modifyFlag
LiveInfo.ModifyFlag
必填
修改标志。
completion
必填
完成回调。

元数据操作

queryMetaData

查询元数据
public func queryMetaData(keys: [String], completion: MetaDataCompletionClosure?) {
fatalError("\(#function) must be overridden by subclass")
}
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
keys
[String]
必填
键列表。
completion
MetaDataCompletionClosure?
必填
完成回调。

updateLiveMetaData

更新直播元数据
public func updateLiveMetaData(_ metaData: [String: String],
completion: CompletionClosure?) {
fatalError("\(#function) must be overridden by subclass")
}
版本信息
从 3.5 版本开始支持。
参数说明
参数名
类型
是否必填
描述
metaData
[String: String]
必填
元数据。
completion
必填
完成回调。

数据结构

TakeSeatMode

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

SeatLayoutTemplate

麦位布局模板,用于简化创建直播间时的麦位配置。
枚举值
说明
videoDynamicGrid9Seats
竖屏动态九宫格,适用于视频直播场景。
videoDynamicFloat7Seats
竖屏动态1v6浮动布局,适用于视频直播场景。
videoFixedGrid9Seats
竖屏静态九宫格,适用于视频直播场景。
videoFixedFloat7Seats
竖屏静态1v6浮动布局,适用于视频直播场景。
videoLandscape4Seats
横屏4人麦位布局,适用于视频直播场景。
karaoke
语音KTV布局,适用于K歌场景,可指定麦位数量。
audioSalon
语音沙龙布局,适用于语聊场景,可指定麦位数量。

LiveEndedReason

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

LiveKickedOutReason

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

LiveInfo

直播信息。
属性
类型
说明
liveID
String
直播 ID。
liveName
String
直播名称。
notice
String
直播公告。
isMessageDisable
Bool
是否禁用消息。
isPublicVisible
Bool
是否公开可见。
isSeatEnabled
Bool
是否启用麦位。
keepOwnerOnSeat
Bool
房主是否保持在麦位上。
maxSeatCount
Int
最大麦位数量。
seatMode
上麦模式。
seatTemplate
麦位布局模板,用于简化麦位配置。
seatLayoutTemplateID
UInt
麦位布局模板 ID。
coverURL
String
封面 URL。
backgroundURL
String
背景 URL。
categoryList
[NSNumber]
分类列表。
activityStatus
Int
活动状态。
liveOwner
直播房主信息。
createTime
Int
创建时间。
totalViewerCount
Int
总观看人数。
isGiftEnabled
Bool
是否启用礼物。
metaData
[String: String]
元数据。

LiveListState

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

LiveListListener

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