SeatGridWidget

最近更新时间:2025-04-14 17:48:52

我的收藏

API 简介

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

API 概览

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

API 详情

SeatGridController

创建一个 SeatGridController 对象实例。SeatGridController 负责提供语音聊天室场景 API。
SeatGridController()
返回值:SeatGridController

SeatGridWidget

创建一个 SeatGridWidget 对象实例。 SeatGridWidget 负责渲染绘制麦位 UI。
SeatGridWidget(
{super.key,
required this.controller,
this.seatWidgetBuilder,
this.onSeatWidgetTap});
参数:
参数
类型
含义
key
Key?
Flutter 控制如何用一个新 widget 替换 旧 widget 的参数
controller
SeatGridWidget 的控制器,负责提供语音聊天室场景 API
seatWidgetBuilder
自定义麦位 widget 的构造器
onSeatWidgetTap
麦位点击事件回调
返回值:SeatGridWidget

startMicrophone

打开本地麦克风。
Future<TUIActionCallback> startMicrophone()
返回值:Future<TUIActionCallback>

stopMicrophone

关闭本地麦克风。
void stopMicrophone()
返回值:void

muteMicrophone

暂停发布本地的音频流。
Future<TUIActionCallback> muteMicrophone()
返回值:Future<TUIActionCallback>

unmuteMicrophone

恢复发布本地的音频流。
Future<TUIActionCallback> unmuteMicrophone()
返回值:Future<TUIActionCallback>

startVoiceRoom

主播创建直播间并开始推流。
Future<TUIValueCallBack<TUIRoomInfo>> startVoiceRoom(TUIRoomInfo roomInfo)
参数:
参数
类型
含义
roomInfo
创建直播间的信息
返回值:Future<TUIValueCallBack<TUIRoomInfo>>

stopVoiceRoom

主播停止推流并销毁直播间。
Future<TUIActionCallback> stopVoiceRoom()
返回值:Future<TUIActionCallback>

joinVoiceRoom

观众加入某个主播的直播间。
Future<TUIValueCallBack<TUIRoomInfo>> joinVoiceRoom(String roomId)
参数:
参数
类型
含义
roomId
String
直播间 ID
返回值:Future<TUIValueCallBack<TUIRoomInfo>>

leaveVoiceRoom

观众离开某个主播的直播间。
Future<TUIActionCallback> leaveVoiceRoom()
返回值:Future<TUIActionCallback>

updateRoomSeatMode

更新房间麦位模式。
Future<TUIActionCallback> updateRoomSeatMode(TUISeatMode seatMode)
参数:
参数
类型
含义
seatMode
freeToTake:自由上麦模式,观众可以自由上麦,无需申请;
applyToTake:申请上麦模式,观众上麦需要主播同意后才能上麦。
返回值:Future<TUIActionCallback>

responseRemoteRequest

主播响应上麦申请/观众响应上麦邀请。
Future<TUIActionCallback> responseRemoteRequest(String userId, bool agree)
参数:
参数
类型
含义
userId
String
响应用户的用户 ID,如果当前身份是观众,ID 可填空
agree
bool
是否接受请求,true:同意请求,false:拒绝请求
返回值:Future<TUIActionCallback>

cancelRequest

主播取消上麦邀请/观众取消上麦申请
Future<TUIActionCallback> cancelRequest(String userId)
参数:
参数
类型
含义
userId
String
取消的用户 ID,如果当前身份是观众,ID 可填空
返回值:Future<TUIActionCallback>

takeSeat

上麦(上麦发言模式下,需要申请)
Future<RequestCallback> takeSeat(int seatIndex, int timeout)
参数:
参数
类型
含义
index
int
上麦的麦位编号
timeout
int
超时时间,单位秒,如果设置为 0,SDK 不会做超时检测,也不会触发超时回调
返回值:Future<RequestCallback>

moveToSeat

移麦(已经在麦位上的用户才可以调用此函数)
Future<TUIActionCallback> moveToSeat(int index)
参数:
参数
类型
含义
index
int
需要移动过去的麦位编号
返回值:Future<TUIActionCallback>

leaveSeat

主动下麦
Future<TUIActionCallback> leaveSeat()
返回值:Future<TUIActionCallback>

takeUserOnSeatByAdmin

主播邀请用户上麦
Future<RequestCallback> takeUserOnSeatByAdmin(int seatIndex, String userId, int timeout)
参数:
参数
类型
含义
index
int
被邀请的麦位编号
userId
String
被邀请的用户 ID
timeout
int
超时时间,单位秒,如果设置为 0,SDK 不会做超时检测,也不会触发超时回调
返回值:Future<RequestCallback>

kickUserOffSeatByAdmin

主播踢用户下麦
Future<TUIActionCallback> kickUserOffSeatByAdmin(String userId)
参数:
参数
类型
含义
userId
String
被踢下麦的用户 ID
返回值:Future<TUIActionCallback>

lockSeat

锁麦,主播锁定麦位(包括位置锁定、音频状态锁定和视频状态锁定)
Future<TUIActionCallback> lockSeat(int index, TUISeatLockParams lockMode)
参数:
参数
类型
含义
seatIndex
int
需要锁定麦位的麦位编号
lockMode
锁麦参数
返回值:Future<TUIActionCallback>

setLayoutMode

设置麦位列表的布局模式。
void setLayoutMode(LayoutMode layoutMode, SeatWidgetLayoutConfig? layoutConfig)
参数:
参数
类型
含义
layoutMode
麦位列表的布局模式,支持聚焦布局、宫格布局、纵向布局、自由布局。
layoutConfig
布局配置信息,只有自由布局模式下才生效
返回值:void

addObserver

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

removeObserver

移除事件回调。

void removeObserver(SeatGridWidgetObserver observer)
参数:
参数
类型
含义
observer
核心组件的回调对象
返回值:void