tencent cloud

文档反馈

SeatGridView

最后更新时间:2024-12-13 17:59:38

    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()

    unMuteLocalAudio

    恢复发布本地的音频流。
    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
    麦位信息
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持