浏览器端 TRTC RTC 实现

基于腾讯云 TRTC SDK 实现的浏览器端 RTC 类。 适用于在浏览器环境中进行实时语音通信。

const rtc = new BrowserRTC({
getVoiceSign: async (params) => {
const response = await fetch('/api/get-voice-sign', {
method: 'POST',
body: JSON.stringify(params)
})
return response.json()
},
autoPlayConfirm: (opts) => {
// 处理自动播放确认
opts.onConfirm()
}
})

// 加入房间
await rtc.join({
voiceId: 'voice-id',
userId: 'user-id',
roomId: 'room-id',
type: RTCType.RealseeBrowserRTC
})

// 切换麦克风
await rtc.toggleMicro(true)

Hierarchy (view full)

Constructors

  • 创建 BrowserRTC 实例

    Parameters

    • options: {
          autoPlayConfirm?: ((opts: {
              onConfirm: (() => void);
          }) => void);
          getVoiceSign: ((params: GetVoiceSignParams) => Promise<GetVoiceSignReturnType>);
      }

      配置选项

      • OptionalautoPlayConfirm?: ((opts: {
            onConfirm: (() => void);
        }) => void)

        自动播放确认回调(可选),用于处理浏览器的自动播放策略

          • (opts): void
          • Parameters

            • opts: {
                  onConfirm: (() => void);
              }
              • onConfirm: (() => void)
                  • (): void
                  • Returns void

            Returns void

      • getVoiceSign: ((params: GetVoiceSignParams) => Promise<GetVoiceSignReturnType>)

        获取语音签名的函数,必需

          • (params): Promise<GetVoiceSignReturnType>
          • 获取用户语音签名的函数

            用于获取加入 RTC 语音房间所需的签名信息。 通常需要调用后端 API 来生成签名。

            Parameters

            • params: GetVoiceSignParams

              获取语音签名所需的参数,包含以下属性:

              • voiceId: 语音房间ID
              • userId: 用户ID
              • roomId: 房间ID

            Returns Promise<GetVoiceSignReturnType>

            Promise 返回包含签名信息的 Promise,包含:

            • sdkAppId: RTC的sdkAppId
            • userId: RTC的用户ID
            • roomId: RTC的语音房间号
            • userSig: RTC的用户签名
            const getVoiceSign: GetVoiceSign = async (params) => {
            const response = await fetch('/api/get-voice-sign', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify(params)
            })
            return response.json()
            }

    Returns BrowserRTC

Properties

joined: boolean = false

是否已加入语音房间

micro: boolean = false

麦克风是否开启

type: RTCType = RTCType.RealseeBrowserRTC

RTC 实现类型

voiceId: string = ''

当前语音房间ID

Methods

  • 检查系统要求

    检查浏览器是否满足 TRTC 的系统要求。

    Returns Promise<CheckResult>

    系统要求检查结果

  • 检测麦克风权限

    Returns Promise<boolean>

    Promise 是否有麦克风权限

  • 触发事件

    Type Parameters

    Parameters

    • name: K

      事件类型

    • Rest...data: Parameters<RTCEventType[K]>

      触发事件的数据

    Returns boolean

    canceled 是否被触发取消

  • 判断是否注册了事件

    Parameters

    Returns boolean

  • 加入语音房间

    Parameters

    • options: {
          roomId: string;
          type: RTCType;
          userId: string;
          voiceId: string;
      }

      加入房间的选项

      • roomId: string
      • type: RTCType
      • userId: string
      • voiceId: string

    Returns Promise<boolean>

    Promise 是否成功加入房间

  • 解除事件

    如果 name 不传的话解除对应所有事件 如果 name, callback 不传的话解除所有name的所有事件

    Type Parameters

    Parameters

    Returns void

  • 注册事件

    Type Parameters

    Parameters

    Returns (() => void)

    解除事件

      • (): void
      • Returns void

  • 注册事件(是否只执行一次)

    Type Parameters

    Parameters

    Returns (() => void)

    解除事件

      • (): void
      • Returns void

  • 退出语音房间

    Returns Promise<boolean>

    Promise 是否成功退出房间

  • 震动(如果设备支持)

    Returns void

  • 切换麦克风状态

    Parameters

    • Optionalflag: boolean

      是否开启麦克风,不传则切换当前状态

    Returns Promise<boolean>

    Promise 是否操作成功