SeatGridView

API 简介

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

API 概览

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

API 详情

SeatGridView

创建一个 SeatGridView 对象实例。同时支持代码创建xml 加载两种方式创建。
public SeatGridView(Context context)
参数:
参数
类型
含义
context
Context
Android 上下文对象
返回值:SeatGridView

startMicrophone

打开本地麦克风。
void startMicrophone(ActionCallback callback)
参数:
参数
类型
含义
callback
ActionCallback
操作的回调
返回值:void

stopMicrophone

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

muteMicrophone

暂停发布本地的音频流。
void muteMicrophone()
返回值:void

unmuteMicrophone

恢复发布本地的音频流。
void unmuteMicrophone(ActionCallback callback)
参数:
参数
类型
含义
callback
ActionCallback
操作的回调
返回值:void

startVoiceRoom

主播创建直播间并开始推流。
void startVoiceRoom(RoomInfo roomInfo, GetRoomInfoCallback callback)
参数:
参数
类型
含义
roomInfo
RoomInfo
创建直播间的信息
callback
ActionCallback
操作的回调
返回值:void

stopVoiceRoom

主播停止推流并销毁直播间。
void stopVoiceRoom(ActionCallback callback)
参数:
参数
类型
含义
callback
ActionCallback
操作的回调
返回值:void

joinVoiceRoom

观众加入某个主播的直播间。
void joinVoiceRoom(String roomId, GetRoomInfoCallback callback)
参数:
参数
类型
含义
roomId
String
直播间 ID
callback
ActionCallback
操作的回调
返回值:void

leaveVoiceRoom

观众离开某个主播的直播间。
void leaveVoiceRoom(ActionCallback callback)
参数:
参数
类型
含义
callback
ActionCallback
操作的回调
返回值:void

updateRoomSeatMode

更新房间麦位模式。
void updateRoomSeatMode(SeatMode seatMode, ActionCallback callback)
参数:
参数
类型
含义
seatMode
SeatMode
FREE_TO_TAKE:自由上麦模式,观众可以自由上麦,无需申请;
APPLY_TO_TAKE:申请上麦模式,观众上麦需要主播同意后才能上麦。
callback
ActionCallback
操作的回调。
返回值:void

responseRemoteRequest

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

cancelRequest

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

takeSeat

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

moveToSeat

移麦(已经在麦位上的用户才可以调用此函数)
void moveToSeat(int index, ActionCallback callback)
参数:
参数
类型
含义
index
int
需要移动过去的麦位编号
callback
ActionCallback
操作的回调
返回值:void

leaveSeat

主动下麦
void leaveSeat(ActionCallback callback)
参数:
参数
类型
含义
callback
ActionCallback
操作的回调
返回值:void

takeUserOnSeatByAdmin

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

kickUserOffSeatByAdmin

主播踢用户下麦
void kickUserOffSeatByAdmin(String userId, ActionCallback callback)
参数:
参数
类型
含义
userId
String
被踢下麦的用户 ID
callback
ActionCallback
操作的回调
返回值:void

lockSeat

锁麦,主播锁定麦位(包括位置锁定、音频状态锁定和视频状态锁定)
void lockSeat(int seatIndex, TUIRoomDefine.SeatLockParams params, ActionCallback callback)
参数:
参数
类型
含义
seatIndex
int
需要锁定麦位的麦位编号
params
TUIRoomDefine.SeatLockParams
锁麦参数。详情参见:TUIRoomDefine.SeatLockParams
callback
ActionCallback
操作的回调
返回值:void

setLayoutMode

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

setSeatViewAdapter

为麦位视图设置适配器。
void setSeatViewAdapter(VoiceRoomDefine.SeatViewAdapter adapter)
参数:
参数
类型
含义
adapter
麦位视图适配器
返回值:void

addObserver

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

removeObserver

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


类型定义

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

LayoutMode

麦位列表的布局模式
类型
描述
FOCUS
元素布局
GRID
宫格布局
VERTICAL
纵向布局
FREE
自定义布局

SeatViewLayoutRowAlignment

麦位布局的对齐方式
类型
说明
START
麦位靠近起始位置
END
麦位靠近结束位置
CENTER
麦位靠近中间位置
SPACE_BETWEEN
第一个麦位之前和最后一个麦位之后不留空间,其它麦位之间均匀分布剩余空间
SPACE_AROUND
第一个麦位之前和最后一个麦位之后分布一半空间,其它麦位之间均匀分布剩余空间
SPACE_EVENLY
在所有麦位之间均匀分布剩余空间

RequestType

请求类型
类型
描述
APPLY_TO_TAKE_SEAT
申请上麦
INVITE_TO_TAKE_SEAT
邀请上麦

Size

麦位布局大小
类型
描述
width
布局宽度
height
布局高度

SeatViewLayoutConfig

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

SeatViewLayoutRowConfig

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

RequestCallback

申请上麦/邀请上麦回调
API
说明
请求被接受
请求被拒绝
请求被取消
onTimeout
请求超时
onError
请求异常

SeatViewAdapter

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

回调事件详情

onAccepted

申请上麦/邀请上麦请求被接受。
void onAccepted(TUIRoomDefine.UserInfo userInfo);
参数:
参数
类型
描述
userInfo
UserInfo
响应当前请求的用户信息
返回值:void

onRejected

申请上麦/邀请上麦 请求被拒绝。
void onRejected(TUIRoomDefine.UserInfo userInfo);
参数:
参数
类型
描述
userInfo
UserInfo
响应当前请求的用户信息
返回值:void

onCancelled

申请上麦/邀请上麦 请求被取消。
void onCancelled(TUIRoomDefine.UserInfo userInfo);
参数:
参数
类型
描述
userInfo
UserInfo
取消当前请求的用户信息
返回值:void

onTimeout

申请上麦/邀请上麦 请求超时。
void onTimeout(TUIRoomDefine.UserInfo userInfo);
参数:
参数
类型
描述
userInfo
UserInfo
发起请求的用户信息
返回值:void

onError

申请上麦/邀请上麦 请求错误。
void onError(TUIRoomDefine.UserInfo userInfo, TUICommonDefine.Error error, String message);
参数:
参数
类型
描述
userInfo
UserInfo
发起请求的用户信息
error
TUICommonDefine.Error
错误码
message
String
错误信息
返回值:void

createSeatView

创建单个麦位布局时回调,您需要将您自定义的 view 作为返回值,核心 view 会帮你创建好视图。
View createSeatView(SeatGridView seatGridView, TUIRoomDefine.SeatInfo seatInfo);
参数:
参数
类型
描述
seatGridView
SeatGridView
语聊房核心组件
seatInfo
SeatInfo
麦位信息
返回值:View

updateSeatView

更新麦位视图时回调,您可以根据回调回来的seatInfo信息来更新自己的麦位视图。
void updateSeatView(SeatGridView seatGridView, TUIRoomDefine.SeatInfo seatInfo, View seatView);
参数:
参数
类型
描述
seatGridView
SeatGridView
语聊房核心组件
seatInfo
SeatInfo
麦位信息
seatView
View
当前更新的麦位视图
返回值:void

updateUserVolume

更新用户音量时回调,您可以根据回调回来的音量更新自己的麦位视图。
void updateUserVolume(SeatGridView seatGridView, int volume, View seatView);
参数:
参数
类型
描述
seatGridView
SeatGridView
语聊房核心组件
volume
int
音量大小
seatView
View
当前音量变化的麦位布局视图
返回值:void


SeatGridViewObserver概览

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

SeatGridViewObserver详情

onRoomDismissed

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

onKickedOutOfRoom

自己被踢出房间的事件。
void onKickedOutOfRoom(String roomId, TUIRoomDefine.KickedOutOfRoomReason reason, String message);
参数:
参数
类型
描述
roomId
String
房间 ID
reason
KickedOutOfRoomReason
被踢出原因
message
String
被踢出的描述
返回值:void

onSeatRequestReceived

收到 申请上麦/邀请上麦 的请求事件。
void onSeatRequestReceived(VoiceRoomDefine.RequestType type, TUIRoomDefine.UserInfo userInfo);
参数:
参数
类型
描述
type
请求类型(申请上麦,邀请上麦)
userInfo
UserInfo
发送请求的用户信息
返回值:void

onSeatRequestCancelled

申请麦位/邀请上麦 请求被取消的事件。
void onSeatRequestCancelled(VoiceRoomDefine.RequestType type, TUIRoomDefine.UserInfo userInfo);
参数:
参数
类型
描述
type
请求类型(申请上麦,邀请上麦)
userInfo
UserInfo
取消请求的用户信息
返回值:void

onKickedOffSeat

用户被踢下麦事件。
void onKickedOffSeat(UserInfo userInfo);
参数:
参数
类型
描述
userInfo
UserInfo
操作踢人的主播的用户信息
返回值:void

onUserAudioStateChanged

用户音频状态发生变化事件。
void onUserAudioStateChanged(UserInfo userInfo, boolean hasAudio, TUIRoomDefine.ChangeReason reason);
参数:
参数
类型
描述
userInfo
UserInfo
用户信息
hasAudio
boolean
是否有音频流
reason
ChangeReason
音频流发生变化原因
返回值:void

onSeatViewClicked

麦位视图被点击事件。
void onSeatViewClicked(View seatView, TUIRoomDefine.SeatInfo seatInfo);
参数:
参数
类型
描述
seatView
View
当前被点击的麦位视图对象
seatInfo
SeatInfo
麦位信息
返回值:void