SeatGridView
API 简介
SeatGridView 是我们开发语音聊天室 UIKit 的一个基础控件,该核心控件提供了开启语音聊天室、关闭语音聊天室,直播间内麦位管理,如申请上麦,邀请上麦,移动麦位,移人下麦等丰富的 API。
API 概览
API | 描述 |
创建 SeatGridView 对象 | |
打开本地麦克风 | |
关闭本地麦克风 | |
暂停发布本地的音频流 | |
恢复发布本地的音频流 | |
主播创建直播间并开始推流 | |
主播停止推流并销毁直播间 | |
观众加入某个主播的直播间 | |
观众离开某个主播的直播间 | |
更新房间麦位模式 | |
主播响应上麦申请/观众响应上麦邀请 | |
主播取消上麦邀请/观众取消上麦申请 | |
上麦 | |
移麦 | |
下麦 | |
主播邀请用户上麦 | |
主播移用户下麦 | |
主播锁定麦位(包括位置锁定、音频状态锁定和视频状态锁定) | |
主播设置麦位列表的布局模式 | |
为麦位视图设置代理 | |
设置事件回调 | |
移除事件回调 |
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 | |
rowSpacing | 麦位布局行间距 |
SGSeatViewLayoutRowConfig
麦位布局中每一行的布局配置信息
类型 | 描述 |
count | 此行显示的麦位数量 |
seatSpacing | 此行中每个麦位水平间距(仅当对齐方式为 START、END 和 CENTER 时生效) |
seatSize | 此行中麦位布局大小 |
alignment |
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 | 麦位信息 |
- API 简介
- API 概览
- API 详情
- SeatGridView
- startMicrophone
- stopMicrophone
- muteMicrophone
- unmuteMicrophone
- startVoiceRoom
- stopVoiceRoom
- joinVoiceRoom
- leaveVoiceRoom
- updateRoomSeatMode
- responseRemoteRequest
- cancelRequest
- takeSeat
- moveToSeat
- leaveSeat
- takeUserOnSeatByAdmin
- kickUserOffSeatByAdmin
- lockSeat
- setLayoutMode
- setSeatViewDelegate
- addObserver
- removeObserver
- 类型定义
- 回调事件详情
- SeatGridViewObserver概览
- SeatGridViewObserver详情