ClassBrowserRTC4Chime

浏览器端 Amazon Chime SDK RTC 实现

基于 Amazon Chime SDK for JavaScript 实现的浏览器端 RTC 类。 适用于在浏览器环境中使用 Amazon Chime 进行实时语音通信。

const rtc = new BrowserRTC4Chime({
getVoiceSign: async (params) => {
const response = await fetch('/api/get-voice-sign', {
method: 'POST',
body: JSON.stringify(params)
})
return response.json()
},
logLevel: LogLevel.INFO
})

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

Hierarchy (view full)

Constructors

  • 创建 BrowserRTC4Chime 实例

    Parameters

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

      配置选项

      • 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()
            }
      • OptionallogLevel?: LogLevel

        日志级别(可选),默认为 LogLevel.INFO

    Returns BrowserRTC4Chime

Properties

audioInput: undefined | MediaDeviceInfo
audioMixObserver?: AudioMixObserver
audioOutput: undefined | MediaDeviceInfo
audioVideoObserver: AudioVideoObserver = {}
deviceChangeObserver: DeviceChangeObserver = {}
deviceController: DefaultDeviceController
joined: boolean = false

是否已加入语音房间

logger: ConsoleLogger
meetingSession: undefined | DefaultMeetingSession
micro: boolean = false

麦克风是否开启

type: RTCType = RTCType.RealseeBrowserChimeRTC

RTC 实现类型

userId: string = ''
voiceId: string = ''

当前语音房间ID

Methods

  • 初始化 DOM 元素(内部方法) 创建并挂载 audio 标签到页面

    Returns void

  • 注册rtc事件

    Returns void

  • 检测麦克风权限

    Returns Promise<boolean>

    Promise 是否有麦克风权限

  • 触发事件

    Type Parameters

    Parameters

    • name: K

      事件类型

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

      触发事件的数据

    Returns boolean

    canceled 是否被触发取消

  • 判断是否注册了事件

    Parameters

    Returns boolean

  • 初始化事件监听器

    设置设备变化、音视频事件等监听器

    Returns void

  • 加入语音会议

    Parameters

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

    Returns Promise<boolean>

  • 解除事件

    如果 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 是否操作成功