TUILiveLayoutManager
函数接口 | 说明 |
设置自定义布局信息 | |
监听 TUILiveLayoutManagerEvents 事件 | |
取消 TUILiveLayoutManagerEvents 事件监听 |
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
监听 TUILiveLayoutManagerEvents 事件。
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
取消 TUILiveLayoutManagerEvents 事件监听。
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 | 麦位排版信息。 |
类型定义详情
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 | 当前设备处于关闭状态,且是被房主/管理员强制关闭。 |