tencent cloud

文档反馈

TUIRoomEngine

最后更新时间:2024-09-11 16:32:26

    TUIRoomEngine 简介

    TUIRoomEngine SDK 提供通用 音视频 房间管理、成员管理、互动控制、即时消息等功能,支持 Conference 和 Live 两大典型场景。
    安装方式:
    // 使用 npm
    npm i @tencentcloud/tuiroom-engine-electron@2.4.0-alpha.3 --save
    
    // 使用 pnpm
    pnpm i @tencentcloud/tuiroom-engine-electron@2.4.0-alpha.3 --save
    
    // 使用 yarn
    yarn add @tencentcloud/tuiroom-engine-electron@2.4.0-alpha.3

    TUIRoomEngine API

    TUIRoomEngine 静态方法

    API
    描述
    once
    监听 TUIRoomEngine ready 事件。
    注意:
    TUIRoomEngine.login 以外的所有方法必须在监听到 TUIRoomEngine ready 事件且 TUIRoomEngine.login 方法执行成功后执行。
    login
    登录 TUIRoomEngine
    logout
    登出 TUIRoomEngine
    设置当前用户基本信息(用户名、用户头像)
    获取当前用户基本信息(用户名、用户头像)
    获取设备管理器
    获取音效管理器
    获取媒体源混流管理器
    获取视频特效插件管理器

    roomEngine 房间管理 API

    API
    描述
    创建房间
    enterRoom
    进入房间
    销毁房间
    exitRoom
    离开房间
    获取房间信息
    更新房间的名字(仅群主或者管理员可以调用)
    更新房间上麦模式(仅群主或者管理员可以调用)
    获取当前房间用户列表
    获取用户的详细信息

    roomEngine 音视频 API

    API
    描述
    设置本地流的渲染位置
    本地摄像头视频流采集
    关闭本地摄像头
    打开本地麦克风
    关闭本地麦克风
    设置本地视频的参数
    设置本地视频流的分辨率模式
    设置本地视频的编码参数
    设置本地音频的参数
    开始向远端推本地视频流
    停止向远端推本地视频流
    停止向远端推本地音频流
    开始向远端推本地音频流
    设置远端流渲染的区域
    开始播放远端用户视频流
    停止播放远端用户视频流
    停止远端用户的音频流

    roomEngine 成员管理 API

    API
    描述
    取消已经发出的请求
    回复远端用户的请求
    改变用户的角色
    将用户踢出房间
    禁止/允许某个用户发送消息

    roomEngine 麦位管理API

    API
    描述
    获取麦位信息
    takeSeat
    获取麦位
    leaveSeat
    释放麦位
    邀请其他人上麦(仅房间主持人和管理员可调用此方法)
    将其他人踢下麦(仅房间主持人和管理员可调用此方法)
    锁定某个麦位状态(仅房间主持人和管理员可调用此方法)
    获取上麦请求列表(仅房间主持人和管理员可调用此方法)

    roomEngine 屏幕分享 API

    API
    描述
    开始屏幕共享
    停止屏幕共享
    获取屏幕分享列表
    切换屏幕分享窗口

    roomEngine 事件监听 API

    API
    描述
    on
    监听 TUIRoomEvents 事件
    off
    取消监听 TUIRoomEvents 事件

    roomEngine 其他 API

    API
    描述
    获取 trtcCloud 实例
    getTIM
    获取 tim 实例

    API 详情

    once

    监听 TUIRoomEngine 'ready' 事件
    TUIRoomEngine.once('ready', () => {
    const roomEngine = new TUIRoomEngine();
    await TUIRoomEngine.init({
    sdkAppId: 0, // 填写您申请的 sdkAppId
    userId: '', // 填写您业务对应的 userId
    userSig: '', // 填写服务器或本地计算的 userSig
    });
    await roomEngine.createRoom({
    roomId: '12345', // 填入您的房间 Id, 注意房间 Id 要求为字符串类型
    name: 'Test Room', // 填入您的房间名称, 房间名称默认为 roomId,最长 30 字节
    roomType: TUIRoomType.kLive, // 设置房间类型为 TUIRoomType.kLive 类型
    });
    });

    login

    登录 TUIRoomEngine, 您必须在登录 TUIRoomEngine 之后才可以调用 TUIRoomEngine 及其实例的其他方法。
    // 登录 TUIRoomEngine
    await TUIRoomEngine.login({
    sdkAppId: 0, // 填写您申请的 sdkAppId
    userId: '', // 填写您业务对应的 userId
    userSig: '', // 填写服务器或本地计算的 userSig
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    sdkAppId
    number
    必填
    -
    sdkAppId
    在 实时音视频控制台 单击 应用管理 > 创建应用 创建新应用之后,即可在 应用信息 中获取 sdkAppId 信息。
    userId
    string
    必填
    -
    用户ID建议限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。
    userSig
    string
    必填
    -
    userSig 签名
    计算 userSig 的方式请参考 UserSig 相关
    tim
    TIM
    非必填
    -
    若您在接入 roomEngine 的同时想使用即时通信 SDK 的更多能力,您可以将创建的 tim 实例传入 TUIRoomEngine。tim 实例的创建方式请参考 TIM.create
    Returns Promise<void>

    logout

    登出 TUIRoomEngine。
    // 登出 TUIRoomEngine
    await TUIRoomEngine.logout();
    Returns Promise<void>

    setSelfInfo

    设置当前用户基本信息(用户名、用户头像)。
    // 设置当前用户用户名及用户头像
    await TUIRoomEngine.setSelfInfo({
    userName: '', // 填写您的新用户名
    avatarUrl: '', // 填写您的新头像地址
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    userName
    string
    必填
    -
    用户名
    avatarUrl
    string
    必填
    -
    用户头像
    Returns Promise<void>

    getSelfInfo

    获取当前用户基本信息(用户名、用户头像)。
    // 获取当前用户用户名及用户头像
    const loginUserInfo = await TUIRoomEngine.getSelfInfo();
    Returns Promise<TUILoginUserInfo> loginUserInfo
    

    getDeviceManager

    获取设备管理器
    import TUIRoomEngine, {
    TUIDeviceManager
    } from '@tencentcloud/tuiroom-engine-electron';
    
    const deviceManager:TUIDeviceManager = TUIRoomEngine.getDeviceManager();
    Returns TUIDeviceManager

    getAudioEffectManager

    获取音效管理器
    import TUIRoomEngine, {
    TUIAudioEffectManager
    } from '@tencentcloud/tuiroom-engine-electron';
    
    const audioEffectManager: TUIAudioEffectManager = TUIRoomEngine.getAudioEffectManager();

    getMediaMixingManager

    获取媒体源混流管理器
    import TUIRoomEngine, { TUIMediaMixingManager } from '@tencentcloud/tuiroom-engine-electron';
    
    const mediaMixingManager: TUIMediaMixingManager = TUIRoomEngine.getMediaMixingManager();

    getVideoEffectPluginManager

    获取视频特效插件管理器
    import TUIRoomEngine, {
    TUIVideoEffectPluginManager
    } from '@tencentcloud/tuiroom-engine-electron';
    
    const videoEffectPluginManager: TUIVideoEffectPluginManager = TUIRoomEngine.getVideoEffectPluginManager();

    createRoom

    主持人创建房间,调用 createRoom 的用户为房间的所有者。创建房间时可设置房间 ID、房间名称、房间类型、是否开启麦位控制、是否允许加入用户开启音视频、发送消息等功能。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.createRoom({
    roomId: '12345', // 填入您的房间 Id, 注意房间 Id 要求为字符串类型
    roomName: 'Test Room', // 填入您的房间名称, 房间名称默认为 roomId,最长 30 字节
    roomType: TUIRoomType.kLive, // 设置房间类型为 TUIRoomType.kLive 类型
    isSeatEnabled: false, // 设置是否开启麦位控制
    isMicrophoneDisableForAllUser: false, // 设置是否允许加入用户打开麦克风
    isCameraDisableForAllUser: false, // 设置是否允许加入用户打开摄像头
    isMessageDisableForAllUser: false, // 设置是否允许加入用户发送消息
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    roomId
    string
    必填
    -
    房间 ID,roomId 限制长度为64字节,且仅支持以下范围的字符集:
    大小写英文字母(a-zA-Z)
    数字(0-9)
    空格 ! # $ % & ( ) + - : ; < = . > ? @ [ ] ^ _ { } | ~ ,
    roomName
    string
    选填
    roomId
    房间名称,默认值为 roomId,不可传入空字符串
    roomType
    选填
    TUIRoomType.kConference
    房间类型
    办公协同、医疗问诊、远程会议、教育场景,roomType 设置为 TUIRoomType.kConference
    电商直播、语聊房场景,roomType 设置为 TUIRoomType.kLive
    isSeatEnabled
    boolean
    选填
    false
    是否开启麦位控制,默认不开启
    seatMode
    选填
    TUISeatMode.kFreeToTake
    上麦模式(开启麦位控制后生效),默认值为 TUISeatMode.kFreeToTake 自由上麦模式,台下观众可以自由上麦,无需申请,seatMode 设置为 TUISeatMode.kFreeToTake 申请上麦模式,台下观众上麦需要房主或者管理员同意后才能上麦,seatMode 设置为 TUISeatMode.kApplyToTake
    isMicrophoneDisableForAllUser
    boolean
    选填
    false
    是否开启全员禁麦,默认不开启全员禁麦
    isCameraDisableForAllUser
    boolean
    选填
    false
    是否开启全员禁画,默认不开启全员禁画
    isMessageDisableForAllUser
    boolean
    选填
    false
    是否允许成员发送消息,默认不禁止
    maxSeatCount
    number
    选填
    -
    最大麦位数量
    roomType 为 TUIRoomType.kConference (教育及会议场景) 时,maxSeatCount 值不做限制
    roomType 为 TUIRoomType.kLivingRoom (直播场景) 时,maxSeatCount 最大限制为 16
    enableCDNStreaming
    boolean
    选填
    false
    是否开启 CDN 直播流
    cdnStreamDomain
    string
    选填
    ''
    直播推流域名
    Returns Promise<void>

    enterRoom

    进入房间接口。
    const roomEngine = new TUIRoomEngine();
    const roomInfo = await roomEngine.enterRoom({
    roomId: '12345',
    roomType: TUIRoomType.kLive
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    roomId
    string
    必填
    -
    房间号
    roomType
    选填
    TUIRoomType.kConference
    房间类型(自 v2.3.0 支持)
    Returns Promise<TUIRoomInfo> roomInfo
    该接口返回当前房间信息

    destroyRoom

    解散房间接口,解散房间必须由房间所有者发起,解散房间之后房间不可进入。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.destroyRoom();
    Returns Promise<void>

    exitRoom

    离开房间接口,用户在执行 enterRoom 之后可通过 exitRoom 离开房间。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.exitRoom();
    Returns Promise<void>

    fetchRoomInfo

    获取房间信息。
    const roomEngine = new TUIRoomEngine();
    const roomInfo = roomEngine.fetchRoomInfo();
    Returns:Promise<TUIRoomInfo> roomInfo

    updateRoomNameByAdmin

    更新当前房间的名字(仅群主或者管理员可以调用)。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.createRoom({ roomId: '12345' });
    await roomEngine.updateRoomNameByAdmin({ roomName: '新的名字' });
    参数:
    参数
    类型
    说明
    默认值
    含义
    roomName
    string
    必填
    -
    更新房间的名字,要求 roomName 不为空字符串
    Returns Promise<void>

    updateRoomSeatModeByAdmin

    更新房间上麦模式(仅群主或者管理员可以调用)。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.createRoom({ roomId: '12345' });
    await roomEngine.updateRoomSeatModeByAdmin({
    seatMode: TUISeatMode.kApplyToTake, // 更新为申请上麦模式
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    seatMode
    必填
    -
    发言类型

    getUserList

    获取当前房间用户列表,注意该接口一次拉取的用户列表量最大为 50 个。
    const roomEngine = new TUIRoomEngine();
    const userList = [];
    let result;
    let nextSequence = 0;
    do {
    result = await roomEngine.getUserList({ nextSequence });
    userList.push(...result.userInfoList);
    nextSequence = result.nextSequence;
    } while (result.nextSequence !== 0)
    参数:
    参数
    类型
    说明
    默认值
    含义
    nextSequence
    number
    选填
    0
    偏移量,默认从 0 开始拉取用户
    ReturnsPromise<object> result
    result.nextSequence 下一次拉取群组用户的偏移量,如果 result.nextSequence 为 0 则代表 userList 全部拉取完毕。
    result.userInfoList 本次拉取的 userList

    getUserInfo

    获取用户的详细信息。
    const roomEngine = new TUIRoomEngine();
    const userList = [];
    const userInfo = await roomEngine.getUserInfo({
    userId: 'user_12345',
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    userId
    string
    必填
    -
    根据 userId 获取该用户的详细信息
    ReturnsPromise<TUIUserInfo> userInfo
    该接口返回指定用户的用户信息
    

    setLocalVideoView

    设置本地流的渲染位置。
    const roomEngine = new TUIRoomEngine();
    // 设置本地摄像头流的播放区域为 id 是 'preview-camera' 的 div 元素
    await roomEngine.setLocalVideoView({
    view: 'preview-camera',
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    view
    string
    必填
    -
    streamType 对应的流渲染的 div 元素的 id
    Returns:Promise<void>
    
    

    openLocalCamera

    打开本地摄像头,开始视频流采集。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.setLocalVideoView({
    streamType: TUIVideoStreamType.kCameraStream,
    view: 'preview-camera',
    });
    await roomEngine.openLocalCamera();
    Returns:Promise<void>

    closeLocalCamera

    关闭本地摄像头。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.closeLocalCamera();
    Returns:Promise<void>

    openLocalMicrophone

    打开本地麦克风, 开始采集音频流。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.openLocalMicrophone();
    Returns:Promise<void>

    closeLocalMicrophone

    关闭本地麦克风。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.closeLocalMicrophone();
    Returns:Promise<void>

    updateVideoQuality

    设置本地视频流的编码参数,默认为 TUIVideoProfile.kVideoQuality_720P。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.updateVideoQuality({
    quality: TUIVideoQuality.kVideoQuality_540p,
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    quality
    必填
    -
    清晰 TUIVideoProfile.kVideoQuality_360P
    标清 TUIVideoProfile.kVideoQuality_540P
    高清 TUIVideoProfile.kVideoQuality_720P
    超清 TUIVideoProfile.kVideoQuality_1080P
    Returns:Promise<void>

    setVideoResolutionMode

    设置本地视频流的分辨率模式,默认为 TUIResolutionMode.kResolutionMode_Landscape。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.setVideoResolutionMode({
    type: TUIVideoStreamType.kCameraStream,
    resolutionMode: TUIResolutionMode.kResolutionMode_Landscape,
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    streamType
    必填
    -
    本地流类型
    resolutionMode
    必填
    TUIResolutionMode.kResolutionMode_Landscape
    分辨率模式
    Returns:Promise<void>
    

    updateVideoQualityEx

    设置本地视频流的编码参数,默认为 TUIVideoProfile.kVideoQuality_720P。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.updateVideoQualityEx({
    streamType: TUIVideoStreamType.kCameraStream,
    encoderParams: {
    videoResolution: TUIVideoQuality.kVideoQuality_720p,
    fps: 15,
    bitrate: 2000,
    resolutionMode: TUIResolutionMode.kResolutionMode_Landscape,
    }
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    streamType
    必填
    -
    本地流类型
    encoderParams
    必填
    -
    详细编码参数
    

    updateAudioQuality

    设置本地音频的参数。
    注意:
    该方法需要在 openLocalMicrophone 之前进行设置,否则不会生效。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.updateAudioQuality({
    quality: TUIAudioQuality.kAudioProfileMusic,
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    audioProfile
    必填
    -
    TUIAudioQuality.kAudioProfileSpeech:语言模式;采样率:16k
    TUIAudioQuality.kAudioProfileDefault:标准模式(或者默认模式);采样率:48k
    TUIAudioQuality.kAudioProfileMusic:音乐模式;采样率:48k
    Returns:Promise<void>

    startPushLocalVideo

    进房后会默认向远端推本地视频流,该接口用于停止推流后重新向远端推本地视频流。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.startPushLocalVideo();
    Returns:Promise<void>

    stopPushLocalVideo

    停止向远端推本地视频流。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.stopPushLocalVideo();
    Returns:Promise<void>

    muteLocalAudio

    停止向远端推本地音频流。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.muteLocalAudio();
    Returns:Promise<void>
    

    unmuteLocalAudio

    开始向远端推本地音频流。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.unmuteLocalAudio();
    Returns:Promise<void>
    

    setRemoteVideoView

    设置远端流渲染的区域。
    const roomEngine = new TUIRoomEngine();
    
    // 设置远端用户视频流在 id 为 'remote_preview_camera' 的区域播放
    await roomEngine.setRemoteVideoView({
    userId: 'user_1234',
    streamType: TUIVideoStreamType.kCameraStream,
    view: 'remote_preview_camera',
    });
    // 设置远端用户屏幕分享流在 id 为 'remote_preview_screen' 的区域播放
    await roomEngine.setRemoteVideoView({
    userId: 'user_1234',
    streamType: TUIVideoStreamType.kScreenStream,
    view: 'remote_preview_screen',
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    userId
    string
    必填
    -
    用户 ID
    streamType
    必填
    -
    用户流类型
    view
    string
    必填
    -
    播放远端用户流的 div 元素的 id
    Returns:Promise<void>

    startPlayRemoteVideo

    开始播放远端用户视频流。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.startPlayRemoteVideo({
    userId: 'user_1234',
    streamType: TUIVideoStreamType.kCameraStream,
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    userId
    string
    必填
    -
    用户 ID
    streamType
    必填
    -
    用户流类型
    TUIVideoStreamType.kCameraStream 视频流
    TUIVideoStreamType.kScreenStream 屏幕分享流
    TUIVideoStreamType.kCameraStreamLow 低清视频流
    Returns:Promise<void>

    stopPlayRemoteVideo

    停止播放远端用户视频流。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.stopPlayRemoteVideo({
    userId: 'user_1234',
    streamType: TUIVideoStreamType.kCameraStream,
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    userId
    string
    必填
    -
    用户 ID
    streamType
    必填
    -
    用户流类型
    TUIVideoStreamType.kCameraStream 视频流
    TUIVideoStreamType.kScreenStream 屏幕分享流
    TUIVideoStreamType.kCameraStreamLow 低清视频流
    Returns:Promise<void>

    muteRemoteAudioStream

    停止远端用户的音频流。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.muteRemoteAudioStream({
    userId: 'user_1234',
    isMute: true,
    });
    参数
    类型
    说明
    默认值
    含义
    userId
    string
    必填
    -
    用户 ID
    isMute
    boolean
    必填
    -
    是否停止远端用户的音频

    

    cancelRequest

    取消已经发出的请求。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.cancelRequest({
    requestId: '', // 请使用实际 requestId
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    requestId
    string
    必填
    -
    请求 ID
    ReturnsPromise<string> requestId
    该接口返回 requestId,用户可使用该 requestId 调用 cancelRequest 接口取消请求。
    

    responseRemoteRequest

    回复远端用户的请求。
    const roomEngine = new TUIRoomEngine();
    // 同意远端的请求
    await roomEngine.responseRemoteRequest({
    requestId: '', // 请使用实际 requestId
    agree: true,
    });
    // 拒绝远端的请求
    await roomEngine.responseRemoteRequest({
    requestId: '', // 请使用实际 requestId
    agree: false,
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    requestId
    string
    必填
    -
    请求 ID
    agree
    boolean
    必填
    -
    是否同意
    ReturnsPromise<void>

    disableSendingMessageByAdmin

    特定用户是否被允许发消息。
    await roomEngine.disableSendingMessageByAdmin({
    userId: 'user_1234',
    isDisable: true,
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    userId
    string
    必填
    -
    用户 ID
    isDisable
    boolean
    必填
    -
    是否被禁用
    Returns:Promise<void>

    changeUserRole

    改变用户的角色(仅主持人可调用该接口)。
    const roomEngine = new TUIRoomEngine();
    
    // 将房间移交给用户 user_1234
    await roomEngine.changeUserRole({
    userId: 'user_1234',
    role: TUIRole.kRoomOwner,
    });
    
    // 将用户 user_1234 设置为房间管理员
    await roomEngine.changeUserRole({
    userId: 'user_1234',
    userRole: TUIRole.kAdministrator,
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    userId
    string
    必填
    -
    用户 ID
    userRole
    TUIRole
    必填
    -
    用户角色
    主持人 TUIRole.kRoomOwner
    管理员 TUIRole.kAdministrator
    普通成员 TUIRole.kGeneralUser
    Returns:Promise<void>

    kickRemoteUserOutOfRoom

    将用户踢出房间(仅主持人和管理员可调用该接口)。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.kickRemoteUserOutOfRoom({
    userId: 'user_1234',
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    userId
    string
    必填
    -
    用户 ID
    Returns:Promise<void>

    getSeatList

    获取麦位列表
    const roomEngine = new TUIRoomEngine();
    const seatList = await roomEngine.getSeatList();
    ReturnsPromise<TUISeatInfo[]> seatList
    seatList 为当前房间所有麦位列表

    takeSeat

    麦下用户可调用 takeSeat 成为麦上用户,仅麦上用户可发布本地音视频流。
    当 roomInfo.roomType 为 TUIRoomType.kConference 且 roomInfo.seatMode 为 TUISeatMode.kApplyToTake 时,普通用户调用 takeSeat 方法需要等待主持人/管理员的同意后成为麦上用户。
    当 roomInfo.roomType 为 TUIRoomType.kLivingRoom 且 roomInfo.seatMode 为 TUISeatMode.kFreeToTake 时, 普通用户调用 takeSeat 方法成功后即为麦上用户。
    主持人&管理员调用 takeSeat 成功后即为麦上用户。
    麦上用户的变更通过 TUIRoomEvents.onSeatListChanged 通知所有用户。
    const roomEngine = new TUIRoomEngine();
    // 情景一:主持人/管理员上麦
    // 情景二:当 roomInfo.roomType 为 TUIRoomType.kConference
    // 且 roomInfo.seatMode 为 TUISeatMode.kFreeToTake 模式时,普通用户上麦
    await roomEngine.takeSeat({
    seatIndex: -1,
    timeout: 0,
    });
    // 情景三:当 roomInfo.seatMode 为 TUISeatMode.kApplyToTake 模式时,普通用户上麦
    const requestId = await roomEngine.instance?.takeSeat({
    seatIndex: -1,
    timeout: 0,
    requestCallback: ({ requestCallbackType, requestId, userId, code, message }) => {
    switch (requestCallbackType) {
    case TUIRequestCallbackType.kRequestAccepted:
    // 请求被接受
    break;
    case TUIRequestCallbackType.kRequestRejected:
    // 请求被拒绝
    break;
    case TUIRequestCallbackType.kRequestCancelled:
    // 请求已取消
    break;
    case TUIRequestCallbackType.kRequestTimeout:
    // 请求超时
    break;
    case TUIRequestCallbackType.kRequestError:
    // 请求错误
    break;
    default:
    break;
    }
    },
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    seatIndex
    number
    必填
    -
    麦位 index, 无麦位序号时设置为 -1
    timeout
    number
    必填
    -
    超时时间。若 timeout 设置为 0,则无超时时间
    requestCallback
    Function
    选填
    空函数
    请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调
    Returns:Promise<string> requestId
    roomInfo.seatMode 为 TUISeatMode.kApplyToTake 模式时,普通用户调用该接口时返回 requestId,普通用户可使用该 requestId 调用 cancelRequest 接口取消上麦请求。
    

    leaveSeat

    释放麦位。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.leaveSeat();
    ReturnsPromise<void>

    takeUserOnSeatByAdmin

    邀请其他人上麦。
    const roomEngine = new TUIRoomEngine();
    const requestId = roomEngine.takeUserOnSeatByAdmin({
    seatIndex: 0,
    userId: 'user_1234',
    timeout: 0,
    requestCallback: ({ requestCallbackType, requestId, userId, code, message }) => {
    switch (requestCallbackType) {
    case TUIRequestCallbackType.kRequestAccepted:
    // 请求被接受
    break;
    case TUIRequestCallbackType.kRequestRejected:
    // 请求被拒绝
    break;
    case TUIRequestCallbackType.kRequestCancelled:
    // 请求已取消
    break;
    case TUIRequestCallbackType.kRequestTimeout:
    // 请求超时
    break;
    case TUIRequestCallbackType.kRequestError:
    // 请求错误
    break;
    default:
    break;
    }
    },
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    seatIndex
    number
    必填
    -
    麦位 index
    userId
    string
    必填
    -
    用户 ID
    timeout
    number
    必填
    -
    超时时间。若 timeout 设置为 0 ,则无超时时间
    requestCallback
    Function
    选填
    空函数
    请求回调,用来通知发起方请求被接受/拒绝/取消/超时/错误的回调
    ReturnsPromise<string> requestId
    该接口返回 requestId,用户可使用该 requestId 调用 cancelRequest 接口取消请求。
    

    kickUserOffSeatByAdmin

    要求其他人下麦。
    const roomEngine = new TUIRoomEngine();
    const requestId = await roomEngine.kickUserOffSeatByAdmin({
    seatIndex: 0,
    userId: 'user_1234',
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    seatIndex
    number
    必填
    -
    麦位 index
    userId
    string
    必填
    -
    用户 ID
    ReturnsPromise<void>

    lockSeatByAdmin

    锁定某个麦位状态(仅房间主持人和管理员可调用此方法)。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.lockSeatByAdmin({
    seatIndex: 0,
    lockParams: {
    lockSeat: true,
    lockVideo: true,
    lockAudio: true,
    },
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    seatIndex
    number
    必填
    -
    麦位索引
    lockParams
    必填
    -
    锁麦参数
    Returns:Promise<void>

    getSeatApplicationList

    获取房间内申请上麦用户的请求列表
    const roomEngine = new TUIRoomEngine();
    const applicationList = await roomEngine.getSeatApplicationList();
    Returns:Promise<TUIRequest[]>

    startScreenSharingElectron

    开始屏幕共享 Electron。
    const roomEngine = new TUIRoomEngine();
    // 情景一:开始屏幕共享
    await roomEngine.startScreenSharingElectron({
    targetId: 'targetId'
    });
    
    // 情景二:开始屏幕共享并在本地预览
    await roomEngine.startScreenSharingElectron({
    targetId: 'targetId',
    view: 'screen-preview'
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    targetId
    string
    选填
    -
    分享窗口 ID,可从 getScreenSharingTarget 获取
    view
    string
    选填
    -
    本地预览屏幕分享的 dom 元素的 id
    ReturnsPromise<void>

    stopScreenSharingElectron

    停止屏幕共享 Electron。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.stopScreenSharingElectron();
    ReturnsPromise<void>

    getScreenSharingTarget

    获取屏幕分享列表 Electron。
    const roomEngine = new TUIRoomEngine();
    const screenList = await roomEngine.getScreenSharingTarget();
    ReturnsPromise<void>

    selectScreenSharingTarget

    切换屏幕分享窗口 Electron。
    const roomEngine = new TUIRoomEngine();
    await roomEngine.selectScreenSharingTarget({
    targetId: 'targetId'
    });
    参数:
    参数
    类型
    说明
    默认值
    含义
    targetId
    string
    必填
    -
    分享窗口 ID,可从 getScreenSharingTarget 获取
    ReturnsPromise<void>

    on

    监听 roomEngine 的事件。
    const roomEngine = new TUIRoomEngine();
    roomEngine.on(event, func);
    参数:
    参数
    类型
    说明
    默认值
    含义
    event
    必填
    -
    TUIRoomEngine 事件列表
    func
    Function
    必填
    -
    事件回调函数
    Returnsvoid

    off

    取消监听 roomEngine 的事件。
    const roomEngine = new TUIRoomEngine();
    roomEngine.off(event, func);
    参数:
    参数
    类型
    说明
    默认值
    含义
    event
    必填
    -
    TUIRoomEngine 事件列表
    func
    Function
    必填
    -
    事件回调函数
    Returnsvoid

    getTRTCCloud

    获取 trtcCloud 实例,web 端 trtcCloud 能力请查看:TRTCCloud API 文档
    const roomEngine = new TUIRoomEngine();
    const trtcCloud = roomEngine.getTRTCCloud();
    ReturnsTRTCCloud

    getTIM

    获取 tim 实例,web 端 tim 能力请查看: IM API 文档
    const roomEngine = new TUIRoomEngine();
    const tim = roomEngine.getTIM();
    Returns: TIM
    
    
    
    
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持