SeatGridView

API 简介

SeatGridView 是我们开发语音聊天室 UIKit 的一个基础控件,该核心控件提供了开启语音聊天室、关闭语音聊天室,直播间内麦位管理,如申请上麦,邀请上麦,移动麦位,移人下麦等丰富的 API。

API 概览

API
描述
创建 SeatGridView 对象
打开本地麦克风
关闭本地麦克风
暂停发布本地的音频流
恢复发布本地的音频流
主播创建直播间并开始推流
主播停止推流并销毁直播间
观众加入某个主播的直播间
观众离开某个主播的直播间
更新房间麦位模式
主播响应上麦申请/观众响应上麦邀请
主播取消上麦邀请/观众取消上麦申请
takeSeat
上麦
移麦
leaveSeat
下麦
主播邀请用户上麦
主播移用户下麦
lockSeat
主播锁定麦位(包括位置锁定、音频状态锁定和视频状态锁定)
主播设置麦位列表的布局模式
为麦位视图设置代理
设置事件回调
移除事件回调

API 详情

SeatGridView

创建一个 SeatGridView 对象实例。
SeatGridView()

startMicrophone

打开本地麦克风。
func startMicrophone(onSuccess: @escaping SGOnSuccess,
onError: @escaping SGOnError)
参数:
参数
类型
含义
onSuccess
SGOnSuccess
成功回调
onError
SGOnError
失败回调

stopMicrophone

关闭本地麦克风。
func stopMicrophone()

muteMicrophone

暂停发布本地的音频流。
func muteMicrophone()

unmuteMicrophone

恢复发布本地的音频流。
func unmuteMicrophone(onSuccess: @escaping SGOnSuccess,
onError: @escaping SGOnError)
参数:
参数
类型
含义
onSuccess
SGOnSuccess
成功回调
onError
SGOnError
失败回调

startVoiceRoom

主播创建直播间并开始推流。
func startVoiceRoom(roomInfo: TUIRoomInfo,
onSuccess: @escaping SGOnRoomSuccess,
onError: @escaping SGOnError)
参数:
参数
类型
含义
roomInfo
TUIRoomInfo
创建直播间的信息
onSuccess
SGOnRoomSuccess
成功回调(含有新的直播间信息)
onError
SGOnError
失败回调

stopVoiceRoom

主播停止推流并销毁直播间。
func stopVoiceRoom(onSuccess: @escaping SGOnSuccess,
onError: @escaping SGOnError)
参数:
参数
类型
含义
onSuccess
SGOnSuccess
成功回调
onError
SGOnError
失败回调

joinVoiceRoom

观众加入某个主播的直播间。
func joinVoiceRoom(roomId: String,
onSuccess: @escaping SGOnRoomSuccess,
onError: @escaping SGOnError)
参数:
参数
类型
含义
roomId
String
直播间 ID
onSuccess
SGOnRoomSuccess
成功回调(含有直播间信息)
onError
SGOnError
失败回调

leaveVoiceRoom

观众离开某个主播的直播间。
func leaveVoiceRoom(onSuccess: @escaping SGOnSuccess,
onError: @escaping SGOnError)
参数:
参数
类型
含义
onSuccess
SGOnSuccess
成功回调
onError
SGOnError
失败回调

updateRoomSeatMode

更新房间麦位模式。
func updateRoomSeatMode(seatMode: TUISeatMode,
onSuccess: @escaping SGOnSuccess,
onError: @escaping SGOnError)
参数:
参数
类型
含义
seatMode
TUISeatMode
freeToTake:自由上麦模式,观众可以自由上麦,无需申请;
applyToTake:申请上麦模式,观众上麦需要主播同意后才能上麦。
onSuccess
SGOnSuccess
成功回调
onError
SGOnError
失败回调

responseRemoteRequest

主播响应上麦申请/观众响应上麦邀请。
func responseRemoteRequest(userId: String,
agree: Bool,
onSuccess: @escaping SGOnSuccess,
onError: @escaping SGOnError)
参数:
参数
类型
含义
userId
String
响应用户的用户 ID,如果当前身份是观众,ID 可填空
agree
Bool
是否接受请求,true:同意请求,false:拒绝请求
onSuccess
SGOnSuccess
成功回调
onError
SGOnError
失败回调

cancelRequest

主播取消上麦邀请/观众取消上麦申请
func cancelRequest(userId: String,
onSuccess: @escaping SGOnSuccess,
onError: @escaping SGOnError)
参数:
参数
类型
含义
userId
String
取消的用户 ID,如果当前身份是观众,ID 可填空
onSuccess
SGOnSuccess
成功回调
onError
SGOnError
失败回调

takeSeat

上麦(上麦发言模式下,需要申请)
func takeSeat(index: Int,
timeout: Int,
onAccepted: @escaping SGOnRequestAccepted,
onRejected: @escaping SGOnRequestRejected,
onCancelled: @escaping SGOnRequestCancelled,
onTimeout: @escaping SGOnRequestTimeout,
onError: @escaping SGOnRequestError)
参数:
参数
类型
含义
index
Int
上麦的麦位编号
timeout
Int
超时时间,单位秒,如果设置为 0,SDK 不会做超时检测,也不会触发超时回调
onAccepted
SGOnRequestAccepted
上麦申请被同意回调
onRejected
SGOnRequestRejected
上麦申请被拒绝回调
onCancelled
SGOnRequestCancelled
上麦申请已取消回调
onTimeout
SGOnRequestTimeout
上麦申请超时回调
onError
SGOnRequestError
上麦申请错误回调

moveToSeat

移麦(已经在麦位上的用户才可以调用此函数)
func moveToSeat(index: Int,
onSuccess: @escaping SGOnSuccess,
onError: @escaping SGOnError)
参数:
参数
类型
含义
index
Int
需要移动过去的麦位编号
onSuccess
SGOnSuccess
成功回调
onError
SGOnError
失败回调

leaveSeat

主动下麦
func leaveSeat(onSuccess: @escaping SGOnSuccess, onError: @escaping SGOnError)
参数:
参数
类型
含义
onSuccess
SGOnSuccess
成功回调
onError
SGOnError
失败回调

takeUserOnSeatByAdmin

主播邀请用户上麦
func takeUserOnSeatByAdmin(index: Int,
userId: String,
onAccepted: @escaping SGOnRequestAccepted,
onRejected: @escaping SGOnRequestRejected,
onCancelled: @escaping SGOnRequestCancelled,
onTimeout: @escaping SGOnRequestTimeout,
onError: @escaping SGOnRequestError)
参数:
参数
类型
含义
index
Int
被邀请的麦位编号
userId
String
被邀请的用户 ID
timeout
Int
超时时间,单位秒,如果设置为 0,SDK 不会做超时检测,也不会触发超时回调
onAccepted
SGOnRequestAccepted
邀请上麦请求被同意回调
onRejected
SGOnRequestRejected
邀请上麦请求被拒绝回调
onCancelled
SGOnRequestCancelled
邀请上麦请求被取消回调
onTimeout
SGOnRequestTimeout
邀请上麦请求已超时回调
onError
SGOnRequestError
邀请上麦请求错误回调

kickUserOffSeatByAdmin

主播移用户下麦
func kickUserOffSeatByAdmin(userId: String,
onSuccess: @escaping SGOnSuccess,
onError: @escaping SGOnError)
参数:
参数
类型
含义
userId
String
被移下麦的用户 ID
onSuccess
SGOnSuccess
成功回调
onError
SGOnError
失败回调

lockSeat

锁麦,主播锁定麦位(包括位置锁定、音频状态锁定和视频状态锁定)
func lockSeat(index: Int,
lockMode: TUISeatLockParams,
onSuccess: @escaping SGOnSuccess,
onError: @escaping SGOnError)
参数:
参数
类型
含义
seatIndex
int
需要锁定麦位的麦位编号
params
TUISeatLockParams
锁麦参数。详情参见:TUIRoomDefine.SeatLockParams
onSuccess
SGOnSuccess
成功回调
onError
SGOnError
失败回调

setLayoutMode

设置麦位列表的布局模式。
func setLayoutMode(layoutMode: SGLayoutMode,
layoutConfig: SeatViewLayoutConfig? = nil
参数:
参数
类型
含义
layoutModel
麦位列表的布局模式,支持元素布局、宫格布局、纵向布局、自由布局。
layoutConfig
布局配置信息,只有自由布局模式下才生效

setSeatViewDelegate

为麦位视图设置适配器。
func setSeatViewDelegate(_ delegate: SGSeatViewDelegate)
参数:
参数
类型
含义
delegate
麦位视图代理

addObserver

设置事件回调。
func addObserver(observer: SeatGridViewObserver)
参数:
参数
类型
含义
observer
核心组件的回调对象

removeObserver

移除事件回调。
func removeObserver(observer: SeatGridViewObserver)
参数:
参数
类型
含义
observer
核心组件的回调对象


类型定义

类型
描述
麦位列表的布局模式,支持元素布局、宫格布局、纵向布局、自定义布局
麦位布局的对齐方式
请求类型(申请上麦和邀请上麦)
麦位布局配置信息
麦位布局中每一行的布局配置信息
麦位视图代理

SGLayoutMode

麦位列表的布局模式
类型
描述
focus
元素布局
grid
宫格布局
vertical
纵向布局
free
自定义布局

SGSeatViewLayoutRowAlignment

麦位布局的对齐方式
类型
说明
start
麦位靠近起始位置
end
麦位靠近结束位置
center
麦位靠近中间位置
spaceBetween
第一个麦位之前和最后一个麦位之后不留空间,其它麦位之间均匀分布剩余空间
spaceAround
第一个麦位之前和最后一个麦位之后分布一半空间,其它麦位之间均匀分布剩余空间
spaceEvenly
在所有麦位之间均匀分布剩余空间

SGRequestType

请求类型
类型
描述
applyToTakeSeat
申请上麦
inviteToTakeSeat
邀请上麦

SGSeatViewLayoutConfig

麦位布局配置信息
类型
描述
rowConfigs
麦位布局中所有行配置信息列表,内容可参考SGSeatViewLayoutRowConfig
rowSpacing
麦位布局行间距

SGSeatViewLayoutRowConfig

麦位布局中每一行的布局配置信息
类型
描述
count
此行显示的麦位数量
seatSpacing
此行中每个麦位水平间距(仅当对齐方式为 START、END 和 CENTER 时生效)
seatSize
此行中麦位布局大小
alignment
此行中布局的对齐方式(SGSeatViewLayoutRowAlignment

SGSeatViewDelegate

麦位视图适配器接口,您可以通过实现该接口来自定义每一个麦位的显示UI。
API
说明
创建单个麦位布局时回调。
更新麦位视图时回调。
更新用户音量时回调。

回调事件详情

onAccepted

申请上麦/邀请上麦请求被接受。
onAccepted: (_ userInfo: TUIUserInfo) -> Void
参数:
参数
类型
描述
userInfo
TUIUserInfo
响应当前请求的用户信息

onRejected

申请上麦/邀请上麦请求被拒绝。
onRejected: (_ userInfo: TUIUserInfo) -> Void
参数:
参数
类型
描述
userInfo
TUIUserInfo
响应当前请求的用户信息

onCancelled

申请上麦/邀请上麦请求被取消。
onCancelled: (_ userInfo: TUIUserInfo) -> Void
参数:
参数
类型
描述
userInfo
TUIUserInfo
取消当前请求的用户信息

onTimeout

申请上麦/邀请上麦请求超时。
onTimeout: (_ userInfo: TUIUserInfo) -> Void
参数:
参数
类型
描述
userInfo
UserInfo
发起请求的用户信息

onError

申请上麦/邀请上麦请求错误。
onError: (_ userInfo: TUIUserInfo, _ code: Int, _ message: String) -> Void
参数:
参数
类型
描述
userInfo
TUIUserInfo
发起请求的用户信息
error
TUICommonDefine.Error
错误码
message
String
错误信息

seatGridView:createSeatView

创建单个麦位布局时回调,您需要将您自定义的 view 作为返回值,核心 view 会帮您创建好视图。
func seatGridView(_ view: SeatGridView, createSeatView seatInfo: TUISeatInfo) -> UIView?
参数:
参数
类型
描述
seatGridView
SeatGridView
语聊房核心组件
seatInfo
SeatInfo
麦位信息
返回值:UIView? (返回值为nil时使用默认麦位视图)

seatGridView:updateSeatView

更新麦位视图时回调,您可以根据回调回来的seatInfo信息来更新自己的麦位视图。
func seatGridView(_ view: SeatGridView, updateSeatView seatInfo: TUISeatInfo, seatView: UIView)
参数:
参数
类型
描述
seatGridView
SeatGridView
语聊房核心组件
seatInfo
TUISeatInfo
麦位信息
seatView
UIView
当前更新的麦位视图

seatGridView:updateUserVolume

更新用户音量时回调,您可以根据回调回来的音量更新自己的麦位视图。
func seatGridView(_ view: SeatGridView, updateUserVolume volume: CGFloat, seatView: UIView)
参数:
参数
类型
描述
seatGridView
SeatGridView
语聊房核心组件
volume
CGFloat
麦位音量信息
seatView
UIView
当前音量变化的麦位布局视图


SeatGridViewObserver概览

函数列表
说明
收到房间销毁的事件
收到被移出房间的事件
收到 申请上麦/邀请上麦 的请求事件
申请麦位/邀请上麦 请求被取消的事件
收到用户被移下麦事件。
用户音频状态发生变化事件。
麦位视图被点击事件。

SeatGridViewObserver详情

onRoomDismissed

直播间被销毁的事件。
func onRoomDismissed(roomId: String)
参数:
参数
类型
描述
roomId
String
房间 ID

onKickedOutOfRoom

自己被移出房间的事件。
func onKickedOutOfRoom(roomId: String,
reason: TUIKickedOutOfRoomReason,
message: String)
参数:
参数
类型
描述
roomId
String
房间 ID
reason
TUIKickedOutOfRoomReason
被移出原因
message
String
被移出的描述

onSeatRequestReceived

收到 申请上麦/邀请上麦 的请求事件。
func onSeatRequestReceived(type: SGRequestType,
userInfo: TUIUserInfo)
参数:
参数
类型
描述
type
请求类型(申请上麦,邀请上麦)
userInfo
TUIUserInfo
发送请求的用户信息

onSeatRequestCancelled

申请麦位/邀请上麦 请求被取消的事件。
func onSeatRequestCancelled(type: SGRequestType,
userInfo: TUIUserInfo)
参数:
参数
类型
描述
type
请求类型(申请上麦,邀请上麦)
userInfo
TUIUserInfo
取消请求的用户信息

onKickedOffSeat

用户被移下麦事件。
func onKickedOffSeat(userInfo: TUIUserInfo)
参数:
参数
类型
描述
userInfo
TUIUserInfo
操作移人的主播的用户信息

onUserAudioStateChanged

用户音频状态发生变化事件。
func onUserAudioStateChanged(userInfo: TUIUserInfo,
hasAudio: Bool,
reason: TUIChangeReason)
参数:
参数
类型
描述
userInfo
TUIUserInfo
用户信息
hasAudio
Bool
是否有音频流
reason
TUIChangeReason
音频流发生变化原因

onSeatViewClicked

麦位视图被点击事件。
func onSeatViewClicked(seatView: UIView, seatInfo: TUISeatInfo)
参数:
参数
类型
描述
seatView
View
当前被点击的麦位视图对象
seatInfo
TUISeatInfo
麦位信息