TUIRoomEngine 3.0.0 版本开始支持。
TUILiveListManager
函数接口 | 说明 |
开始直播,该接口自 v3.3.0 版本支持。 | |
停止直播,该接口自 v3.3.0 版本支持。 | |
加入直播,该接口自 v3.3.0 版本支持。 | |
离开直播,该接口自 v3.3.0 版本支持。 | |
获取直播间列表。 | |
修改直播间信息。 | |
获取直播间信息。 | |
进房前预览视频流,该接口自 v3.3.0 版本支持。 | |
停止预览视频流,该接口自 v3.3.0 版本支持。 | |
监听 TUILiveListManagerEvents 事件。 | |
取消 TUILiveListManagerEvents 事件监听。 |
TUILiveListManagerEvents
事件接口 | 说明 |
直播间信息发生变化事件。 |
类型定义
类型 | 说明 |
直播间信息。 | |
直播间列表查询结果。 | |
直播间信息发生修改结构体。 | |
直播统计数据。 |
函数接口详情
startLive
说明:
该接口自 v3.3.0 开始支持。
开始直播。
const liveInfo = {roomId: '123',roomType: TUIRoomType.kLive,name: 'ABC',notice: 'this is a description',isSeatEnabled: true,seatMode: TUISeatMode.kApplyToTake,seatLayoutTemplateId: 200,maxSeatCount: 8,coverUrl: '',backgroundUrl: '',categoryList: [],activityStatus: 1,isMessageDisableForAllUser: false,isGiftEnabled: false,isLikeEnabled: false,isPublicVisible: false,keepOwnerOnSeat: false,};const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();const resultLiveInfo = await liveListManager.startLive(liveInfo);console.log('直播开始成功,CDN流地址:', resultLiveInfo.cdnStreamUrl);
参数 | 类型 | 是否必填 | 默认值 | 说明 |
liveInfo | TUILiveInfo | 是 | - | 直播间信息,包含房间ID、名称、公告等配置。 |
stopLive
说明:
该接口自 v3.3.0 开始支持。
停止直播。
try {const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();const statistics = await liveListManager.stopLive();console.log('直播结束,统计数据:', {观众人数: statistics.totalViewers,礼物总数: statistics.totalGiftsSent,点赞总数: statistics.totalLikesReceived});} catch (error) {console.error('停止直播失败:', error);}
joinLive
说明:
该接口自 v3.3.0 开始支持。
加入直播。
try {const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();const liveInfo = await liveListManager.joinLive('live_room_123');console.log('成功加入直播间:', {房间名称: liveInfo.name,房间公告: liveInfo.notice,CDN流地址: liveInfo.cdnStreamUrl});} catch (error) {console.error('加入直播间失败:', error);}
参数 | 类型 | 是否必填 | 默认值 | 说明 |
roomId | String | 是 | - | 要加入的直播间 ID。 |
leaveLive
说明:
该接口自 v3.3.0 开始支持。
离开直播。
try {const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();await liveListManager.leaveLive();console.log('成功离开直播间');} catch (error) {console.error('离开直播间失败:', error);}
返回值:Promise<void>
fetchLiveList
获取直播间列表。
const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();const liveList = [];let cursor = '';let count = 20;let result;do {result = await liveListManager.fetchLiveList({ cursor, count });liveList.push(...result.liveInfoList);cursor = result.cursor;} while(cursor !== '');
参数 | 类型 | 是否必填 | 默认值 | 说明 |
options | Object | 是 | - | 参数选项。 |
options.cursor | String | 是 | '' | 分页获取索引,第一次拉取填 '',返回的数据中 cursor 不为 '',表示需要分页,请以返回的 cursor 作为参数再次调用接口拉取,直至返回的cursor为 '',表示数据已经全部拉取。 |
options.count | Number | 是 | - | 本次拉取数量。 |
setLiveInfo
修改直播间信息。
const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();liveListManager.setLiveInfo({roomId: "141569",coverUrl: "https://qcloudimg.tencent-cloud.cn/image/document/live-cover.png",isPublicVisible: false,activityStatus: 1,categoryList: [1,2,3],backgroundUrl: "https://qcloudimg.tencent-cloud.cn/image/document/live-cover.png"});
参数 | 类型 | 是否必填 | 默认值 | 说明 |
options | Object | 是 | - | 参数选项。 |
options.roomId | String | 是 | - | 直播房间 ID。 |
options.activityStatus | Number | 否 | - | 直播间活跃状态: 用户自定义标记。 |
options.categoryList | Array | 否 | - | 直播间分类标签,单个房间最大支持3个标记。 |
options.coverUrl | String | 否 | - | 直播间封面图片 HTTP URL 地址,最大支持 200 个字节。 |
options.backgroundUrl | String | 否 | - | 直播间背景图片 HTTP URL 地址,最大支持 200 个字节。 |
options.isPublicVisible | Boolean | 否 | - | 直播间是否公开。 |
options.seatLayoutTemplateId | Number | 否 | - | 直播间麦位排版模板 ID。 |
返回值:Promise<void>
getLiveInfo
获取直播间信息。
const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();const result = await liveListManager.getLiveInfo({ roomId: "141569" });
参数 | 类型 | 是否必填 | 默认值 | 说明 |
options | Object | 是 | - | 参数选项。 |
options.roomId | String | 是 | - | 直播房间号。 |
startPreloadVideoStream
进房前预览视频流。
const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();await liveListManager.startPreloadVideoStream({roomId: "live_room_123",isMuteAudio: false,view: "previewVideoContainer"});
参数 | 类型 | 是否必填 | 默认值 | 说明 |
options | Object | 是 | - | 参数选项。 |
options.roomId | String | 是 | - | 房间 ID。 |
options.isMuteAudio | Boolean | 是 | - | 是否静音预览。 |
options.view | String | 是 | - | 播放视频流区域。 |
返回值:Promise<void>
stopPreloadVideoStream
停止预览视频流。
const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();await liveListManager.stopPreloadVideoStream({roomId: "live_room_123"});
参数 | 类型 | 是否必填 | 默认值 | 说明 |
options | Object | 是 | - | 参数选项。 |
options.roomId | String | 是 | - | 房间 ID。 |
返回值:Promise<void>
on
监听 TUILiveListManagerEvents 事件。
const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();const callback = ({ liveModifyInfo }) => {console.log('liveListManager.onLiveInfoChanged', liveModifyInfo);};liveListManager.on(TUILiveListManagerEvents.onLiveInfoChanged, callback);
参数 | 类型 | 是否必填 | 默认值 | 说明 |
eventName | 是 | - | 事件名。 | |
func | (...args: any[]) => void | 是 | - | 事件处理函数。 |
off
取消 TUILiveListManagerEvents 事件监听。
const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();const callback = ({ liveModifyInfo }) => {console.log('liveListManager.onLiveInfoChanged', liveModifyInfo);};liveListManager.off(TUILiveListManagerEvents.onLiveInfoChanged, callback);
参数 | 类型 | 是否必填 | 默认值 | 说明 |
eventName | TUILiveListManagerEvents | 是 | - | 事件名。 |
func | (...args: any[]) => void | 是 | - | 事件处理函数。 |
事件接口详情
onLiveInfoChanged
直播间信息发生变化事件。
const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();liveListManager.on(TUILiveListManagerEvents.onLiveInfoChanged, ({ liveModifyInfo}) => {console.log('liveListManager.onLiveInfoChanged', liveModifyInfo);});
参数 | 类型 | 说明 |
options | Object | 参数选项。 |
options.liveModifyInfo | 直播间信息变更。 |
类型定义详情
TUILiveInfo
属性 | 类型 | 说明 |
roomId | String | 直播间 ID。 |
roomType | TUIRoomType | 直播间类型,只能是 TUIRoomType.kLive 类型。 |
name | String | 直播间名称。 |
notice | String | 直播间公告。 |
isMessageDisableForAllUser | Boolean | 直播间是否禁言所有用户发送文字、表情消息。 |
isGiftEnabled | Boolean | 直播间是否支持礼物。 |
isLikeEnabled | Boolean | 直播间是否支持点赞。 |
isPublicVisible | Boolean | 直播间是否公开。 |
isSeatEnabled | Boolean | 直播间是否支持麦位。 |
keepOwnerOnSeat | Boolean | 直播间是否保持主播永远在麦上。 |
seatLayoutTemplateId | Number | 直播间麦位排版模板 ID。 |
maxSeatCount | Number | 直播间最大麦位数量。 |
seatMode | TUISeatMode | 直播间麦位模式。 |
coverUrl | String | 直播间封面图片 HTTP URL 地址,最大支持 200 个字节。 |
backgroundUrl | String | 直播间背景图片 HTTP URL 地址,最大支持 200 个字节。 |
categoryList | Array | 直播间分类标签,单个房间最大支持3个标记。 |
activityStatus | Number | 直播间活跃状态: 用户自定义标记。 |
roomOwner | String | 直播间房主用户 ID,只读。 |
ownerName | String | 直播间房主用户名,只读。 |
ownerAvatarUrl | String | 直播间房主头像 URL,只读。 |
createTime | Number | 直播间创建时间,单位毫秒,只读。 |
totalViewers | Number | 累计观看次数,只读。 |
isUnlimitedRoomEnabled | Boolean | 是否支持无限大房间,只读。 |
cdnStreamUrl | String | 直播流地址,只读。 |
lebSecretKey | String | 直播流加密密钥,只读。 |
lebEncrypted | String | 直播流加密信息,只读。 |
lebSignature | String | 直播流加密签名,只读。 |
TUILiveListResult
属性 | 类型 | 说明 |
cursor | String | 列表下标。 |
listInfoList | 拉取的直播间列表。 |
TUILiveModifyInfo
属性 | 类型 | 说明 |
roomId | String | 直播房间号。 |
isPublicVisible | Boolean | 可选,直播间是否公开。 |
activityStatus | Number | 可选,直播间活跃状态: 用户自定义标记。 |
coverUrl | String | 可选,直播间封面图片 HTTP URL 地址,最大支持 200 个字节。 |
backgroundUrl | String | 可选,直播间背景图片 HTTP URL 地址,最大支持 200 个字节。 |
categoryList | Array | 可选,直播间分类标签,单个房间最大支持3个标记。 |
TUILiveStatisticsData
属性 | 类型 | 说明 |
totalViewers | Number | 观众人数。 |
totalGiftsSent | Number | 礼物发送总数。 |
totalGiftCoins | Number | 礼物总价值。 |
totalUniqueGiftSenders | Number | 礼物发送者总数。 |
totalLikesReceived | Number | 点赞总数。 |