Function: 直播自定义布局相关接口,此页面中的函数仅支持直播房间类型(LIVE)。
TUILiveLayoutManager
函数接口  | 说明  | 
设置自定义布局信息  | |
TUILiveLayoutManagerEvents
事件接口  | 说明  | 
直播画面布局发生改变事件  | |
麦位排版信息发生变化事件  | 
类型定义
类型  | 说明  | 
直播间麦位排版  | |
麦位排版信息  | |
麦上用户的媒体状态信息  | 
函数接口详情
setLiveStreamLayoutInfo
设置自定义布局信息。
const roomEngine = new TUIRoomEngine();const liveLayoutManager = roomEngine.getLiveLayoutManager();const layoutData = {// 设置画布大小VideoEncode: {Width: 1920,Height: 1080,},LayoutMode: 1000, // 0~9 内置布局模板, 1000 为自定义布局, 只有为1000 时才能 LayoutInfo 属性才有效// 设置画面布局LayoutInfo: {LayoutList: [{LocationX: 0, // 以画面左上角为原点的 x 坐标LocationY: 0, // 以画面左上角为原点的 y 坐标ImageWidth: 1080, // 调整后的画面宽度ImageHeight: 960, // 调整后的画面高度ZOrder: 0, // 画面层级,取值范围: 0 ~ +∞StreamType: 0, // 0 摄像头, 1 屏幕共享, 2 白板, 3 自定义Member_Account: 'admin001', // 该路流的用户IDBackgroundImageUrl: 'ImageUrl', // 可为空RoomId: 'roomId',BackgroundColor: '0x1F212C', // 可为空},],},// 设置最大画面布局信息MaxUserLayout: {LocationX: 0, // 以画面左上角为原点的 x 坐标LocationY: 0, // 以画面左上角为原点的 y 坐标ImageWidth: 1920, // 调整后的画面宽度ImageHeight: 1080, // 调整后的画面高度ZOrder: 0, // 画面层级,最大画面层级推荐为 0StreamType: 0, // 0为摄像头, 1为屏幕共享Member_Account: 'admin001', // 该路流的用户IDBackgroundImageUrl: 'ImageUrl', // 可以设置看看,可能在最大画面时候没作用RoomId: 'roomId',BackgroundColor: '0x1F212C'},};const roomId = 'roomId';const layoutInfo = JSON.stringify(layoutData);await liveLayoutManager.setLiveStreamLayoutInfo(roomId, layoutInfo);
注意:
layoutData 对象内的所有 Key 值均是大驼峰。
目前 LayoutMode 属性值只支持 0 和 1000。
只有 LayoutMode 为 1000 时设置 LayoutInfo 属性才有效,当 LayoutMode 为 0~9 时可以不用传 LayoutInfo、VideoEncode 属性。
LayoutInfo.LayoutList 是一个数组,可以设置多路画面的布局信息。
参数  | 类型  | 是否必填  | 默认值  | 说明  | 
roomId  | String  | 是  | -  | 直播房间 ID。  | 
layoutInfo  | String  | 是  | -  | 自定义布局信息,格式为 JSON 字符串。  | 
返回值:Promise<void>
on
const roomEngine = new TUIRoomEngine();const liveLayoutManager = roomEngine.getLiveLayoutManager();const callback = (roomId, layoutInfo) => {console.log('liveLayoutManager.onLiveVideoLayoutChanged', roomId, layoutInfo);};liveLayoutManager.on(TUILiveLayoutManagerEvents.onLiveVideoLayoutChanged, callback);
参数  | 类型  | 是否必填  | 默认值  | 说明  | 
eventName  | 是  | -  | 事件名。  | |
func  | (...args: any[]) => void  | 是  | -  | 事件处理函数。  | 
返回值:void
off
const roomEngine = new TUIRoomEngine();const liveLayoutManager = roomEngine.getLiveLayoutManager();const callback = (roomId, layoutInfo) => {console.log('liveLayoutManager.onLiveVideoLayoutChanged', roomId, layoutInfo);};liveLayoutManager.off(TUILiveLayoutManagerEvents.onLiveVideoLayoutChanged, callback);
参数  | 类型  | 是否必填  | 默认值  | 说明  | 
eventName  | 是  | -  | 事件名。  | |
func  | (...args: any[]) => void  | 是  | -  | 事件处理函数。  | 
返回值:void
事件接口详情
onLiveVideoLayoutChanged
直播画面布局发生改变事件。
const roomEngine = new TUIRoomEngine();const liveLayoutManager = roomEngine.getLiveLayoutManager();liveLayoutManager.on(TUILiveLayoutManagerEvents.onLiveVideoLayoutChanged, (roomId, layoutInfo) => {console.log('liveLayoutManager.onLiveVideoLayoutChanged', roomId, layoutInfo);});
参数  | 类型  | 说明  | 
roomId  | String  | 房间 ID。  | 
layoutInfo  | String  | 最新的画面布局信息。  | 
onSeatLayoutChanged
麦位排版信息发生变化事件。
const roomEngine = new TUIRoomEngine();const liveLayoutManager = roomEngine.getLiveLayoutManager();liveLayoutManager.on(TUILiveLayoutManagerEvents.onSeatLayoutChanged, ({ roomId, seatLayout }) => {console.log('liveLayoutManager.onSeatLayoutChanged', roomId, seatLayout);});
参数  | 类型  | 说明  | 
options  | Object  | 参数选项。  | 
options.roomId  | String  | 房间 ID。  | 
options.seatLayout  | 麦位排版信息。  | 
类型定义详情
TUISeatLayout
属性  | 类型  | 说明  | 
templateId  | Number  | 麦位排版模板 ID。  | 
canvasWidth  | Number  | 麦位排版画布宽度。  | 
canvasHeight  | Number  | 麦位排版画布高度。  | 
regions  | 麦位排版区域列表。  | 
TUISeatRegion
属性  | 类型  | 说明  | 
roomId  | String  | 直播间 ID。  | 
seatIndex  | Number  | 麦位序号。  | 
isSeatLocked  | Boolean  | 是否被锁定。  | 
userId  | String  | 用户 ID。  | 
userName  | String  | 用户名称。  | 
userAvatar  | String  | 用户头像。  | 
userMicrophoneStatus  | 用户麦克风状态。  | |
userCameraStatus  | 用户摄像头状态。  | |
x  | Number  | 麦位 X 坐标。  | 
y  | Number  | 麦位 Y 坐标。  | 
width  | Number  | 麦位宽度。  | 
height  | Number  | 麦位高度。  | 
zorder  | Number  | 麦位 Z 轴顺序。  | 
TUIDeviceStatus
属性  | 类型  | 说明  | 
TUIDeviceStatusOpened  | Number  | 当前设备处于打开状态。  | 
TUIDeviceStatusClosedBySelf  | Number  | 当前设备处于关闭状态,且是用户主动关闭。  | 
TUIDeviceStatusClosedByAdmin  | Number  | 当前设备处于关闭状态,且是被房主/管理员强制关闭。  |