You need to enable JavaScript to run this app.
文档中心
实时音视频

实时音视频

复制全文
下载 pdf
Web 4.69
API 详情
复制全文
下载 pdf
API 详情

WTNstream

类型: interface

  • API
方法描述
startPushWTN将本地音视频发布为一路 WTN 流,用户无需进房。
发布后,同一 AppId 下的用户无需进房,即可通过 StreamId 订阅该流。
stopPushWTN停止发布 WTN 流。由 startPushWTN 发布的 WTN 流。
muteWTNLocalAudio暂停/继续发布指定 WTN 流的音频。
muteWTNLocalVideo暂停/继续发布指定 WTN 流的视频。
sendWTNSEIMessage通过 WTN 流视频帧发送 SEI 数据。
startPlayWTN订阅指定 WTN 流。
无论用户是否在房间内,都可以调用本接口获取和播放指定的 WTN 流。
stopPlayWTN取消订阅指定 WTN 流。
muteWTNRemoteAudio暂停/恢复订阅指定 WTN 流的音频。
muteWTNRemoteVideo暂停/恢复订阅指定 WTN 流的视频。
setWTNRemoteVideoPlayer为指定 WTN 流设置使用的视图和渲染模式。
setWTNRemoteAudioPlaybackVolume调节本地播放的 WTN 流播放音量。
getWTNVideoPlayerVisibility获取指定 WTN 流视频播放器的可见性状态。

startPushWTN

将本地音视频发布为一路 WTN 流,用户无需进房。
发布后,同一 AppId 下的用户无需进房,即可通过 StreamId 订阅该流。

  • 类型

    (token: string | null, streamId: string, videoMute: boolean, audioMute: boolean) => Promise<void>
    
  • 注意

    • 使用同一 appID 的用户,无论是否进房,可以调用 startPlayWTN 获取和播放指定的 WTN 流。
    • 不同用户使用同一 WTN 流 ID 多次调用本接口时,RTC SDK 将使用最后一次调用时传入的参数更新 WTN 流。
    • 使用不同的 WTN 流 ID 多次调用本接口可以发布多路 WTN 流。
    • 调用 stopPushWTN 停止推 WTN 流。
  • 参数

    • token

      类型: string | null

      动态密钥,用于对发流用户进行鉴权验证。
      测试时可使用控制台生成临时 Token,RoomId 填写任意值。正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。Token 有效期及生成方式参看使用 Token 完成鉴权。
      使用不同 AppID 的 App 是不能互通的。
      请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致失败。

    • streamId

      类型: string

      WTN ID。该字符串需符合正则表达式:[a-zA-Z0-9_@\-\.]{1,128}。

    • videoMute

      类型: boolean

      是否关闭视频。 true:关闭视频;false:开启视频。

    • audioMute

      类型: boolean

      是否关闭音频。 true:关闭音频;false:开启音频。

  • 返回值

    类型: Promise<void>

    同时将收到 onWTNPushStateChanged 回调。

stopPushWTN

停止发布 WTN 流。由 startPushWTN 发布的 WTN 流。

muteWTNLocalAudio

暂停/继续发布指定 WTN 流的音频。

  • 类型

    (streamId: string, mute: boolean) => Promise<void>
    
  • 参数

    • streamId

      类型: string

      WTN 流 ID。当前用户通过 startPushWTN 发布的 WTN 流。

    • mute

      类型: boolean

      是否关闭音频

  • true:关闭

  • false:打开

  • 返回值

    类型: Promise<void>

    同时将收到 onWTNPushStateChanged 回调。

muteWTNLocalVideo

暂停/继续发布指定 WTN 流的视频。

  • 类型

    (streamId: string, mute: boolean) => Promise<void>
    
  • 参数

    • streamId

      类型: string

      WTN 流 ID。当前用户通过 startPushWTN 发布的 WTN 流。

    • mute

      类型: boolean

      是否关闭视频

  • true:关闭

  • false:打开

  • 返回值

    类型: Promise<void>

    同时将收到 onWTNPushStateChanged 回调。

sendWTNSEIMessage

通过 WTN 流视频帧发送 SEI 数据。

  • 类型

    (streamId: string, sei: Uint8Array, repeatCount: number) => void
    
  • 参数

    • streamId

      类型: string

      WTN 流 ID。当前用户通过 startPushWTN 发布的 WTN 流。

    • sei

      类型: Uint8Array

      SEI 消息。

    • repeatCount

      类型: number

      消息发送重复次数。取值范围是 [0, max{29, %{视频帧率}-1}]。推荐范围 [2,4]。

      调用此接口后,SEI 数据会添加到从当前视频帧开始的连续 repeatCount+1 个视频帧中。

startPlayWTN

订阅指定 WTN 流。
无论用户是否在房间内,都可以调用本接口获取和播放指定的 WTN 流。

  • 类型

    (token: string | null, streamId: string, videoMute: boolean, audioMute: boolean) => Promise<void>
    
  • 注意

  • 参数

    • token

      类型: string | null

      动态密钥,用于对订阅用户进行鉴权验证。
      测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。Token 有效期及生成方式参看使用 Token 完成鉴权。
      使用不同 AppID 的 App 是不能互通的。
      请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致失败。

    • streamId

      类型: string

      WTN 流 ID。可以是远端通过 startPushWTN 或 startPushPublicStream 发布的流。
      如果指定流暂未发布,则本地客户端将在其开始发布后接收到流数据。

    • videoMute

      类型: boolean

      是否关闭视频。 true:关闭视频;false:开启视频。

    • audioMute

      类型: boolean

      是否关闭音频。 true:关闭音频;false:开启音频。

  • 返回值

    类型: Promise<void>

stopPlayWTN

取消订阅指定 WTN 流。

  • 类型

    (streamId: string) => Promise<void>
    
  • 注意

    关于订阅 WTN 流,查看 startPlayWTN。

  • 参数

    • streamId

      类型: string

      WTN 流 ID。

  • 返回值

    类型: Promise<void>

muteWTNRemoteAudio

暂停/恢复订阅指定 WTN 流的音频。

  • 类型

    (streamId: string, mute: boolean) => Promise<void>
    
  • 参数

    • streamId

      类型: string

      WTN 流 ID。 当前用户已通过 startPlayWTN 订阅该 WTN 流。

    • mute

      类型: boolean

      是否关闭音频

  • true:关闭

  • false:打开

  • 返回值

    类型: Promise<void>

muteWTNRemoteVideo

暂停/恢复订阅指定 WTN 流的视频。

  • 类型

    (streamId: string, mute: boolean) => Promise<void>
    
  • 注意

    通过 startPlayWTN 订阅 WTN 流后,你可以通过本接口暂停/恢复订阅 WTN 流的视频。

  • 参数

    • streamId

      类型: string

      WTN 流 ID。当前用户已通过 startPlayWTN 订阅该 WTN 流。

    • mute

      类型: boolean

      是否关闭视频

  • true:关闭

  • false:打开

  • 返回值

    类型: Promise<void>

setWTNRemoteVideoPlayer

为指定 WTN 流设置使用的视图和渲染模式。

  • 类型

    (streamId: string, videoPlayerOption: Omit<VideoPlayerOption, 'userId' | 'playerId'>) => HTMLVideoElement | undefined
    
  • 参数

    • streamId

      类型: string

      WTN 流 ID。

    • videoPlayerOption

      类型: Omit<VideoPlayerOption, "userId" | "playerId">

      视图信息和渲染模式。

  • 返回值

    类型: HTMLVideoElement | undefined

    参见 HTMLVideoElement。

setWTNRemoteAudioPlaybackVolume

调节本地播放的 WTN 流播放音量。

  • 类型

    (streamId: string, volume: number) => void
    
  • 注意

    • 建议成功播放 WTN 流后设置音量。
    • 若调用本方法时尚未播放 WTN 流,设置将在开始播放后生效。
  • 参数

    • streamId

      类型: string

      音频所属 WTN 流 ID

    • volume

      类型: number

      播放的音量值和原始音量的比值,取值范围 [0, 400],单位 %。默认值为 100%。
      为保证更好的通话质量,建议将 volume 值设为 [0,100]。

getWTNVideoPlayerVisibility

Available since v4.67.

获取指定 WTN 流视频播放器的可见性状态。

  • 类型

    (streamId: string) => PlayerVisibility | undefined
    
  • 参数

    • streamId

      类型: string

      WTN 流 ID。

  • 返回值

    类型: PlayerVisibility | undefined

    返回视频播放器的可见性状态,如果播放器不存在则返回 undefined。

RTCEngine

类型: interface

  • API
方法描述
joinRoom加入已有房间,或创建一个新房间并加入。
调用此方法时需指定 roomId。若 roomId 对应的房间已经存在,SDK 直接加入该房间;若 roomId 对应的房间不存在,SDK 会自动基于 roomId 创建一个新房间并加入。
leaveRoom离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
publishStream在当前所在房间内发布本地摄像头/麦克风采集的媒体流
unpublishStream停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中
publishScreen在当前所在房间内发布本地屏幕共享音视频流
unpublishScreen停止将本地屏幕共享音视频流发布到当前所在房间中
subscribeStream订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。
unsubscribeStream取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。
subscribeScreen订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。
unsubscribeScreen取消订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。
updateToken更新 Token。
用于加入房间的 Token 有一定的有效期。Token 过期前 30 秒将收到 onTokenWillExpire 回调,需要调用此方法更新房间的 Token 信息。
setAudioCaptureDevice设置内部采集时使用的麦克风。
setVideoCaptureDevice设置内部采集时使用的摄像头。
startVideoCapture开启内部视频采集。默认为关闭状态。
内部视频采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
可见用户进房后调用该方法,房间中的其他用户会收到 onUserStartVideoCapture 的回调。
stopVideoCapture关闭内部视频采集。
发布流后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。
startAudioCapture开启内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置采集机制进行音频采集。
可见用户进房后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。
stopAudioCapture立即关闭内部音频采集。
发布流后调用该方法,房间内的其他用户会收到 onUserStopAudioCapture 的回调。
startAudioAndVideoCapture使用内部采集模块同时开启音视频采集。调用该方法,浏览器会同时请求麦克风和摄像头授权,用户只需授权一次。
可见用户进房后调用该方法,房间中的其他用户会收到 onUserStartVideoCapture 和 onUserStartAudioCapture 的回调。
startScreenCapture使用内部采集模块,采集当前屏幕视频流,用于共享。
stopScreenCapture停止屏幕共享流内部采集。
setLocalVideoPlayer设置本地视频渲染时,使用的视图,并设置渲染模式。
调用本方法绑定视图以后,你可以通过 onPlayerEvent 来监听播放状态。
你可以通过再次调用本方法,并绑定空视图来解除绑定。如果已创建了多个播放器,且存在默认播放器,不指定 playerId,将解绑默认播放器。
setRemoteVideoPlayer设置远端视频渲染时使用的视图,并设置渲染模式。
建议在收到 onUserPublishStream/onUserPublishScreen 事件后,调用本方法对远端视频视图进行设置。
你可以通过再次调用本方法,并绑定空视图来解除绑定。如果已创建了多个播放器,且存在默认播放器,不指定 playerId,将解绑默认播放器。
setLocalVideoMirrorType是否开启本地视频流镜像模式。
setRemoteVideoMirrorType开关远端视频流镜像模式。
setAudioPlaybackDevice设置音频播放设备,例如扬声器或者耳机,默认使用扬声器。
play手动开启音视频流播放。
stop暂停音视频流播放。
getAudioVolume获取音量大小。包括内部采集、外部采集的本地流以及远端流。
setAudioFrameCallback开关音频帧 PCM 数据回调。
pauseAllSubscribedStream暂停接收来自远端的媒体流。
resumeAllSubscribedStream恢复接收来自远端的媒体流
sendUserMessage给房间内指定的用户发送点对点文本消息。
若消息发送成功,则 userId 所指定的用户会收到 onUserMessageReceived 回调。
sendUserBinaryMessage给房间内指定的用户发送点对点二进制消息。
若消息发送成功,则 userId 所指定的用户会收到 onUserBinaryMessageReceived 回调。
sendRoomMessage给房间内的所有其他用户群发文本消息。
若消息发送成功,同一房间内的其他用户会收到 onRoomMessageReceived 回调。
sendRoomBinaryMessage给房间内的所有其他用户群发二进制消息。
若消息发送成功,同一房间内的其他用户会收到通过 onRoomBinaryMessageReceived 回调发送的消息
sendSEIMessage通过视频帧发送 SEI 数据。
在视频通话场景下,SEI 数据会随视频帧发送;在语音通话场景下,SDK 会自动生成一路 16px × 16px 的黑帧视频流用来发送 SEI 数据。
setVideoEncoderConfig在视频发布端设置摄像头视频流的发布参数。
setScreenEncoderConfig设置共享屏幕的视频编码参数,同时对视频采集生效。
若设置的参数浏览器不支持,RTC SDK 按照浏览器支持的参数范围进行采集和编码,并通过回调 onLocalVideoSizeChanged 通知采集的实际参数。
setRemoteSimulcastStreamType发布端开启 Simulcast 功能时,订阅端可以使用本方法设置期望订阅的远端视频流的参数。
setLocalSimulcastMode在视频发布端开启 Simulcast 功能,设置或更新中、小流的发布参数。
enableAudioPropertiesReport启用音频信息提示。
startLiveTranscoding开启转推直播,并设置合流的视频视图布局和音频属性。
updateLiveTranscoding更新转推直播参数。
使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。
stopLiveTranscoding停止转推直播。
关于启动转推直播,参看 startLiveTranscoding。
setBusinessId设置业务标识参数
可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。
setUserVisibility设置用户可见性。未调用该接口前,本地用户默认对他人可见。
默认情况下,一个 RTC 房间最多同时容纳 50 名可见用户,最多 30 人可同时上麦。更多信息参看用户和媒体流上限。
setExternalVideoTrack使用用户自定义的 videoTrack。
调用本方法前必须先调用 setVideoSourceType 设置为自定义视频采集。
setExternalAudioTrack使用用户自定义的 audioTrack。
调用本方法前必须先调用 setAudioSourceType 设置为自定义音频采集。
setVideoSourceType设置向 SDK 输入的视频源
默认使用内部采集。内部采集指:使用 RTC SDK 内置的视频采集机制进行视频采集。
该方法进房前后均可调用。
当你已调用 startVideoCapture 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。
当你调用此方法开启自定义采集,再调用此方法切换至内部采集时,必须再调用 startVideoCapture 手动开启内部采集。
setAudioSourceType设置向 SDK 输入的音频源
默认使用内部采集。内部采集指:使用 RTC SDK 内置的音频采集机制进行音频采集。
该方法进房前后均可调用。
当你已调用 startAudioCapture 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。
当你调用此方法开启自定义采集,再调用此方法切换至内部采集时,必须再调用 startAudioCapture 手动开启内部采集。
getAudioMixingManager混音管理接口创建。
getWTNStreamManagerWTN 流接口创建。
getCallId获取通话 ID。该方法需要在加入房间后调用。
当创建一个房间开启音视频通话后,系统会为该房间生成一个对应 callId,标识此房间的通话。
setAudioCaptureConfig设置 RTC SDK 内部采集时的音频采集参数。默认参数由浏览器决定。
login登录即时消息服务器。
调用此方法登录后,可以向同 appID 下其他已登录用户发送文本或二进制消息。
logout登出 RTS 服务器。调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。
updateLoginToken更新用户用于登录的 Token。Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。
getPeerOnlineStatus查询对端用户或本端用户的登录状态。在发送房间外消息之前,用户可以通过本接口了解对端用户是否登录,从而决定是否发送消息。也可以通过本接口查询自己的登录状态。
sendUserMessageOutsideRoom给房间外指定的用户发送文本消息(P2P)
sendUserBinaryMessageOutsideRoom给房间外指定的用户发送二进制消息(P2P)
setServerParams设置业务服务器参数。调用 sendServerMessage 或 sendServerBinaryMessage 发送消息给业务服务器之前,必须设置有效签名和业务服务器地址。
sendServerMessage客户端给业务服务器发送文本消息(P2Server)
sendServerBinaryMessage客户端给业务服务器发送二进制消息(P2Server)
startCloudProxy开启云代理
stopCloudProxy关闭云代理
startPushPublicStream将房间内的单路媒体流,或多路媒体流合成后发布为一路 WTN 流。
发布后,同一 AppId 下的用户无需进房,即可通过 StreamId 订阅该流。
updatePublicStreamParam更新 WTN 流参数。由 startPushPublicStream 发布的 WTN 流。
stopPushPublicStream停止发布 WTN 流。由 startPushPublicStream 发布的 WTN 流。
startPlayPublicStream订阅指定 WTN 流。
无论用户是否在房间内,都可以调用本接口获取和播放指定的 WTN 流。
stopPlayPublicStream取消订阅指定 WTN 流。
关于订阅 WTN 流,查看 startPlayPublicStream。
setPublicStreamVideoPlayer为指定 WTN 流设置使用的视图和渲染模式。
setDummyCaptureImagePath停止内部摄像头采集时,使用静态图片填充本地推送的视频流。
defaultTranscoding获取合流转推默认参数。
setSubscribeFallbackOption设置订阅的音视频流的回退选项。
回退指在网络不佳时允许订阅流进行降级或只订阅音频流,以保证通话流畅。
setRemoteUserPriority设置用户优先级。
该方法与 setSubscribeFallbackOption 搭配使用。
开启回退后,会优先保证收到的高优先级用户的流的质量。
startAudioPlaybackDeviceTest启动音频播放设备检测。测试启动后,循环播放指定的音频文件,同时将通过 onAudioPlaybackDeviceTestVolume 回调播放时的音量信息。
stopAudioPlaybackDeviceTest停止音频播放设备测试。
startAudioDeviceRecordTest开始音频采集设备和音频播放设备测试。
建议提前调用 enableAudioPropertiesReport 注册音量提示回调,测试开始后,音频设备开始采集本地声音,可以通过 onLocalAudioPropertiesReport 获取采集音量。
stopAudioDeviceRecordAndPlayTest停止采集本地音频,并开始播放采集到的声音。录音播放完毕后,设备测试流程结束。
调用 startAudioDeviceRecordTest 30s 内调用本接口来停止采集并开始播放此前采集到的声音。
stopAudioDevicePlayTest停止由调用 startAudioDeviceRecordTest 开始的音频播放设备测试。
在音频播放设备测试自动结束前,可调用本接口停止音频采集与播放测试。
setAudioProfile设置音质档位
getLocalStreamTrack获取本地用户的音频或者视频的 MediaStreamTrack。
getRemoteStreamTrack获取已订阅的远端用户的音频或者视频的 MediaStreamTrack。
getPublicStreamTrack获取已订阅的 WTN 流的音频或者视频的 MediaStreamTrack。
takeLocalSnapshot截取本地视频画面
takeRemoteSnapshot截取远端视频画面
registerExtension注册插件。
你可以通过插件实现基础美颜功能、虚拟背景功能、AI 降噪功能、Web 端回声消除(AEC)和自动增益控制(AGC)功能。
startSubtitle识别或翻译房间内所有用户的语音,形成字幕。语音识别或翻译的结果会通过 onSubtitleMessageReceived 事件回调给你。
调用该方法后,你会收到 onSubtitleStateChanged 回调,通知字幕是否开启。
updateSubtitleConfig开启字幕翻译后切换源语种。
stopSubtitle关闭字幕。
调用该方法后,你会收到 onSubtitleStateChanged 回调,通知字幕是否关闭。
setRemoteStreamRenderSync设置远端音视频流是否同步渲染。
你可以通过关闭音视频同步,达到超低端到端延时的效果。
setCaptureVolume调节音频采集音量。
setPlaybackVolume调节本地播放的单个远端用户的音量。
setPublicStreamVolume调节本地播放的 WTN 流播放音量。
startForwardStreamToRooms开始跨房间转发媒体流,示例代码可参看跨房间转发媒体流功能文档。
在调用 joinRoom 后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。
updateForwardStreamToRooms更新跨房间媒体流转发信息。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。
stopForwardStreamToRooms停止向所有目标房间转发媒体流。
pauseForwardStreamToAllRooms暂停向所有目标房间转发媒体流。
调用本方法暂停向所有目标房间转发后,你可以调用 resumeForwardStreamToAllRooms 恢复转发。
resumeForwardStreamToAllRooms恢复向所有目标房间转发媒体流。
setAudioSelectionConfig设置本端发布流在音频选路中的优先级。
getRemoteVideoStats获取用户订阅的远端视频流统计信息以及网络状况。
getRemoteAudioStats获取用户订阅的远端音频流统计信息以及网络状况。
getLocalVideoStats获取本地视频流统计信息以及网络状况。
getLocalAudioStats本地音频流统计信息以及网络状况。
setEarMonitorMode打开/关闭耳返功能。
setEarMonitorVolume设置耳返音量。
getLocalVideoPlayerVisibility获取本地视频播放器的可见性状态和不可见原因。
getRemotePlayerVisibility获取远端视频播放器的可见性状态和不可见原因。

joinRoom

加入已有房间,或创建一个新房间并加入。
调用此方法时需指定 roomId。若 roomId 对应的房间已经存在,SDK 直接加入该房间;若 roomId 对应的房间不存在,SDK 会自动基于 roomId 创建一个新房间并加入。

用户(包括后端机器人)成功进入 RTC 房间后便开始计费。即使房间内只有 1 个用户,也会计算音频计费时长。具体计费说明,请参见音视频通话计费。

  • 类型

    (token: string | null, roomId: string, userInfo: UserInfo, roomConfig?: RoomConfig) => Promise<void>
    
  • 注意

    • 同一个 AppID 的同一个房间内,每个用户的用户 ID 必须是唯一的。如果两个用户的用户 ID 相同,则先进房的用户将自动退房并收到 DUPLICATE_LOGIN 错误。
    • 本地用户调用 setUserVisibility 将自身设为可见后加入房间,远端用户会收到 onUserJoined 回调通知。
    • 房间内不可见用户的容量远远大于可见用户,而且用户默认可见,因此对于不参与互动的用户,你需要调用 setUserVisibility,将其更改为不可见用户,从而避免因房间内用户达到数量上限所导致的进房失败。默认情况下,一个 RTC 房间最多同时容纳 50 名可见用户,最多 30 人可同时上麦。更多信息参看用户和媒体流上限。
    • 用户加入房间成功后,在本地网络状况不佳的情况下,SDK 可能会与服务器失去连接,并触发 onConnectionStateChanged 回调。此时 SDK 会自动重试,直到成功重连。重连成功后,如果加入房间的为可见用户,远端用户会收到 onUserJoined 回调通知。
  • 参数

    • token

      类型: string | null

      动态密钥,用于对进房用户进行鉴权验证。
      进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。Token 有效期及生成方式参看使用 Token 完成鉴权。
      使用不同 AppID 的 App 是不能互通的。
      请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。

    • roomId

      类型: string

      需要加入或新创建的房间 ID。该字符串需符合正则表达式:[a-zA-Z0-9_@\-\.]{1,128}。

    • userInfo

      类型: UserInfo

      用户信息。

    • roomConfig

      类型: RoomConfig | undefined

      房间参数配置,设置房间模式以及是否自动发布或订阅流。

  • 返回值

    类型: Promise<void>

    • INVALID_TOKEN: 进房时使用了已过期的 Token 或使用的 Token 无效。
    • JOIN_ROOM_FAILED: 进房失败。
    • REPEAT_JOIN: 重复进房。
    • ROOM_FORBIDDEN: 房间被封禁导致进房失败。
    • USER_FORBIDDEN: 用户被封禁导致进房失败。

leaveRoom

离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。

用户(包括后端机器人)成功进入 RTC 房间后便开始计费。即使房间内只有 1 个用户,也会计算音频计费时长。具体计费说明,请参见音视频通话计费。

  • 类型

    (waitAck?: boolean) => Promise<void>
    
  • 注意

    • 可见的用户离开房间后,房间内其他用户会收到 onUserLeave 回调通知。
    • 调用 joinRoom 方法加入房间后,必须调用此方法结束通话,否则无法开始下一次通话。重复调用此方法没有负面影响。
  • 参数

    • waitAck

      类型: boolean | undefined

      保留参数,无实际意义。

  • 返回值

    类型: Promise<void>

publishStream

在当前所在房间内发布本地摄像头/麦克风采集的媒体流

  • 类型

    (mediaType: MediaType) => Promise<void>
    
  • 注意

    • 调用 setUserVisibility 方法将自身设置为不可见后无法调用该方法,需将自身切换至可见后方可调用该方法发布摄像头音视频流。
    • 如果你需要发布屏幕共享流,调用 publishScreen。
    • 调用此方法后,房间中的所有远端用户会收到 onUserPublishStream 回调通知。
    • 调用 unpublishStream 取消发布。
  • 参数

    • mediaType

      类型: MediaType

      媒体流类型,用于指定发布音频/视频。

  • 返回值

    类型: Promise<void>

    • NO_PUBLISH_PERMISSION: 无发布权限,请先调用 setUserVisibility 将自身切换至可见后再发布流。
    • TOKEN_NO_PUBLISH_PERMISSION: Token 无发布权限或发布权限过期,调用 updateToken 更新 Token 发布权限。
    • PUBLISH_FAILED: 发布流失败,具体原因查看 message。

unpublishStream

停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中

  • 类型

    (mediaType: MediaType) => Promise<void>
    
  • 注意

    • 调用 publishStream 手动发布摄像头/麦克风采集的音视频流后,你需调用此接口停止发布。
    • 调用此方法停止发布音视频流后,房间中的其他用户将会收到 onUserUnpublishStream 回调通知。
  • 参数

    • mediaType

      类型: MediaType

      媒体流类型,用于指定停止发布音频/视频。

  • 返回值

    类型: Promise<void>

publishScreen

在当前所在房间内发布本地屏幕共享音视频流

  • 类型

    (mediaType: MediaType) => Promise<void>
    
  • 注意

    • 调用 setUserVisibility 方法将自身设置为不可见后无法调用该方法,需将自身切换至可见后方可调用该方法发布屏幕流。
    • 调用该方法后,房间中的所有远端用户会收到 onUserPublishScreen 回调。
    • 调用 unpublishScreen 取消发布。
  • 参数

    • mediaType

      类型: MediaType

      媒体流类型,用于指定发布屏幕音频/视频。

  • 返回值

    类型: Promise<void>

    • NO_PUBLISH_PERMISSION: 无发布权限,请先调用 setUserVisibility 将自身切换至可见后再发布流。
    • TOKEN_NO_PUBLISH_PERMISSION: Token 无发布权限或发布权限过期,调用 updateToken 更新 Token 发布权限。
    • PUBLISH_FAILED: 发布流失败,具体原因查看 message。

unpublishScreen

停止将本地屏幕共享音视频流发布到当前所在房间中

  • 类型

    (mediaType: MediaType) => Promise<void>
    
  • 注意

    • 调用 publishScreen 发布屏幕流后,你需调用此接口停止发布。
    • 调用此方法停止发布屏幕音视频流后,房间中的其他用户将会收到 onUserUnpublishScreen 回调。
  • 参数

    • mediaType

      类型: MediaType

      媒体流类型,用于指定停止发布屏幕音频/视频

  • 返回值

    类型: Promise<void>

subscribeStream

订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。

  • 类型

    (userId: string, mediaType: MediaType) => Promise<void>
    
  • 注意

    你必须先通过 onUserPublishStream 回调获取当前房间里的远端摄像头音视频流信息,然后调用本方法按需订阅。

  • 参数

    • userId

      类型: string

      指定订阅的远端发布音视频流的用户 ID。

    • mediaType

      类型: MediaType

      媒体流类型,用于指定订阅音频/视频。

  • 返回值

    类型: Promise<void>

    • STREAM_NOT_EXIST: 目标流不存在。请输入正确的 ID,或确认目标流在房间内。
    • TOKEN_NO_SUBSCRIBE_PERMISSION: Token 无订阅权限或订阅权限过期,调用 updateToken 更新 Token 订阅权限。

unsubscribeStream

取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。

  • 类型

    (userId: string, mediaType: MediaType) => Promise<void>
    
  • 参数

    • userId

      类型: string

      指定取消订阅的远端发布音视频流的用户 ID。

    • mediaType

      类型: MediaType

      媒体流类型,用于指定取消订阅音频/视频。

  • 返回值

    类型: Promise<void>

    STREAM_NOT_EXIST: 目标流不存在。请输入正确的 ID,或确认目标流在房间内。

subscribeScreen

订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。

  • 类型

    (userId: string, mediaType: MediaType) => Promise<void>
    
  • 注意

    你必须先通过 onUserPublishScreen 回调获取当前房间里的远端屏幕流信息,然后调用本方法按需订阅。

  • 参数

    • userId

      类型: string

      指定订阅的远端发布屏幕流的用户 ID。

    • mediaType

      类型: MediaType

      媒体流类型,用于指定订阅音频/视频。

  • 返回值

    类型: Promise<void>

    • STREAM_NOT_EXIST: 目标流不存在。请输入正确的 ID,或确认目标流在房间内。
    • TOKEN_NO_SUBSCRIBE_PERMISSION: Token 无订阅权限或订阅权限过期,调用 updateToken 更新 Token 订阅权限。

unsubscribeScreen

取消订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。

  • 类型

    (userId: string, mediaType: MediaType) => Promise<void>
    
  • 参数

    • userId

      类型: string

      指定取消订阅的远端发布屏幕流的用户 ID。

    • mediaType

      类型: MediaType

      媒体流类型,用于指定取消订阅音频/视频。

  • 返回值

    类型: Promise<void>

updateToken

更新 Token。
用于加入房间的 Token 有一定的有效期。Token 过期前 30 秒将收到 onTokenWillExpire 回调,需要调用此方法更新房间的 Token 信息。

  • 类型

    (token: string) => Promise<void>
    
  • 注意

    • 调用 joinRoom 方法加入房间或断网重连进入房间时,如果 Token 过期,将导致加入房间失败,回调错误码为 INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。
    • 如果因 Token 过期导致加入房间失败,则调用此方法更新 Token 后,SDK 会自动重新加入房间,不需要再次调用 joinRoom 方法。
    • Token 过期后,用户将被移出房间无法继续进行音视频通话。
  • 参数

    • token

      类型: string

      获取的新的有效 Token。

  • 返回值

    类型: Promise<void>

    • UPDATE_TOKEN_WITH_INVALID_TOKEN: 传入的 Token 无效。
    • UPDATE_TOKEN_BEFORE_JOIN: 不在房间内,请先调用 joinRoom 加入房间。

setAudioCaptureDevice

设置内部采集时使用的麦克风。

  • 类型

    (deviceId: string) => Promise<void>
    
  • 注意

    如果设置时正在使用麦克风进行音频采集,切换操作当即生效;如果设置时未开启采集,则会在开启内部采集时打开设置的麦克风。

  • 参数

  • 返回值

    类型: Promise<void>

setVideoCaptureDevice

设置内部采集时使用的摄像头。

  • 类型

    (deviceId: string) => Promise<void>
    
  • 注意

    • 如果设置时正在使用摄像头进行视频采集,切换操作当即生效;如果设置时未开启采集,则会在开启采集时打开设置的摄像头。
    • 在移动端场景下,可以通过设置 deviceId 为 "user" 来指定前置摄像头,可以通过设置 deviceId 为 "environment" 来指定后置摄像头。
    • 默认摄像头由浏览器指定。
  • 参数

  • 返回值

    类型: Promise<void>

startVideoCapture

开启内部视频采集。默认为关闭状态。
内部视频采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
可见用户进房后调用该方法,房间中的其他用户会收到 onUserStartVideoCapture 的回调。

  • 类型

    (deviceId?: string) => Promise<MediaTrackSettings>
    
  • 注意

    • 调用 stopVideoCapture 可以停止内部视频采集。否则,只有当销毁引擎实例时,内部视频采集才会停止。
    • 创建引擎后,无论是否发布视频数据,你都可以调用该方法开启内部视频采集。只有当(内部或外部)视频采集开始以后视频流才会发布。
    • 内部视频采集使用的摄像头由 setVideoCaptureDevice 接口指定。
  • 参数

    • deviceId

      类型: string | undefined

      设备 ID,你需在此传入采集视频的设备 ID,以免出现无画面或显示非所需画面等异常。你可以通过调用 enumerateDevices 获取设备列表。

  • 返回值

    类型: Promise<MediaTrackSettings>

    实际生效的视频采集参数。参看 MediaTrackSettings。请关注其中的 frameRate, height, width 等值。
    还可能返回如下错误码。

    • REPEAT_CAPTURE: 重复采集。
    • GET_VIDEO_TRACK_FAILED: 采集视频失败,请确认是否有可用的采集设备,或是否被其他 App 占用。
    • STREAM_TYPE_NOT_MATCH: 流类型不匹配。调用 setVideoSourceType 设置了自定义媒体源后,又调用内部采集相关的接口。

stopVideoCapture

关闭内部视频采集。
发布流后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。

  • 类型

    () => Promise<void>
    
  • 注意

    • 调用 startVideoCapture 可以开启内部视频采集。
    • 如果不调用本方法停止内部视频采集,则只有当销毁引擎实例时,内部视频采集才会停止。
  • 返回值

    类型: Promise<void>

    STREAM_TYPE_NOT_MATCH: 流类型不匹配。调用 setVideoSourceType 设置了自定义媒体源后,又调用内部采集相关的接口。

startAudioCapture

开启内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置采集机制进行音频采集。
可见用户进房后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。

  • 类型

    (deviceId?: string) => Promise<MediaTrackSettings>
    
  • 注意

    • 调用 stopAudioCapture 可以停止内部音频采集。否则,只有当销毁引擎实例时,内部音频采集才会停止。
    • 创建引擎后,无论是否发布音频数据,你都可以调用该方法开启音频采集,只有当(内部或外部)音频采集开始以后音频流才会发布。
  • 参数

    • deviceId

      类型: string | undefined

      设备 ID,你需在此传入采集音频的设备 ID,以免出现无声等异常。你可以通过调用 enumerateDevices 获取设备列表。

  • 返回值

    类型: Promise<MediaTrackSettings>

    实际生效的音频采集参数。参看 MediaTrackSettings。
    还可能返回如下错误码。

    • REPEAT_CAPTURE: 重复采集。
    • GET_AUDIO_TRACK_FAILED: 采集音频失败,请确认是否有可用的采集设备,或是否被其他 App 占用。
    • STREAM_TYPE_NOT_MATCH: 流类型不匹配。调用 setAudioSourceType 设置了自定义媒体源后,又调用内部采集相关的接口。

stopAudioCapture

立即关闭内部音频采集。
发布流后调用该方法,房间内的其他用户会收到 onUserStopAudioCapture 的回调。

  • 类型

    () => Promise<void>
    
  • 注意

    • 调用 startAudioCapture 可以开启内部音频采集。
    • 如果不调用本方法停止内部音频采集,则只有当销毁引擎实例时,内部音频采集才会停止。
  • 返回值

    类型: Promise<void>

    STREAM_TYPE_NOT_MATCH: 流类型不匹配。调用 setAudioSourceType 设置了自定义媒体源后,又调用内部采集相关的接口。

startAudioAndVideoCapture

使用内部采集模块同时开启音视频采集。调用该方法,浏览器会同时请求麦克风和摄像头授权,用户只需授权一次。
可见用户进房后调用该方法,房间中的其他用户会收到 onUserStartVideoCapture 和 onUserStartAudioCapture 的回调。

  • 类型

    (optionsOrAudioDeviceId?: { audioDeviceId?: string; videoDeviceId?: string;} | string, videoDeviceId?: string) => Promise<{ audioTrackSettings: MediaTrackSettings; videoTrackSettings: MediaTrackSettings;}>
    
  • 注意

  • 参数

    • optionsOrAudioDeviceId

      类型: string | { audioDeviceId?: string | undefined; videoDeviceId?: string | undefined; } | undefined

      单参数使用时可以同时设置音视频设备 ID;双参数使用时为音频设备 ID。

      • 成员

        名称类型描述
        audioDeviceIdstring | undefined音频设备 ID。
        videoDeviceIdstring | undefined视频设备 ID。
    • videoDeviceId

      类型: string | undefined

      视频设备 ID。

  • 返回值

    类型: Promise<{ audioTrackSettings: MediaTrackSettings; videoTrackSettings: MediaTrackSettings }>

    实际生效的音视频采集参数。参看 MediaTrackSettings。请关注其中的 deviceId, channelCount, sampleRate, frameRate, height, width 等值。
    还可能返回如下错误码。

    • REPEAT_CAPTURE: 重复采集。
    • GET_AUDIO_TRACK_FAILED: 采集音频失败,请确认是否有可用的采集设备,或是否被其他 App 占用。
    • GET_VIDEO_TRACK_FAILED: 采集视频失败,请确认是否有可用的采集设备,或是否被其他 App 占用。
    • STREAM_TYPE_NOT_MATCH: 流类型不匹配。调用 setAudioSourceType/setVideoSourceType 设置了自定义媒体源后,又调用内部采集相关的接口。

startScreenCapture

使用内部采集模块,采集当前屏幕视频流,用于共享。

  • 类型

    (screenConfig?: ScreenConfig) => Promise<void>
    
  • 注意

  • 参数

    • screenConfig

      类型: ScreenConfig | undefined

      共享屏幕属性

  • 返回值

    类型: Promise<void>

    GET_SCREEN_TRACK_FAILED: 采集屏幕共享失败。

stopScreenCapture

停止屏幕共享流内部采集。

  • 类型

    () => Promise<void>
    
  • 返回值

    类型: Promise<void>

setLocalVideoPlayer

设置本地视频渲染时,使用的视图,并设置渲染模式。
调用本方法绑定视图以后,你可以通过 onPlayerEvent 来监听播放状态。
你可以通过再次调用本方法,并绑定空视图来解除绑定。如果已创建了多个播放器,且存在默认播放器,不指定 playerId,将解绑默认播放器。

  • 类型

    (streamIndex: StreamIndex, videoPlayerOption?: Partial<Omit<VideoPlayerOption, 'rotation'>>) => HTMLVideoElement | undefined
    
  • 注意

    • 你应在加入房间后,绑定视图。退出房间后,此设置仍然有效。
    • 绑定播放器时,如果指定的 playerId 已经存在,不会重复创建播放器。
  • 参数

    • streamIndex

      类型: StreamIndex

      视频流属性

    • videoPlayerOption

      类型: Partial<Omit<VideoPlayerOption, "rotation">> | undefined

      视图信息和渲染模式。4.61 版本起,支持多次调用本接口,传入不同的 playerId,将同一条流绑定多个渲染视图。

  • 返回值

    类型: HTMLVideoElement | undefined

setRemoteVideoPlayer

设置远端视频渲染时使用的视图,并设置渲染模式。
建议在收到 onUserPublishStream/onUserPublishScreen 事件后,调用本方法对远端视频视图进行设置。
你可以通过再次调用本方法,并绑定空视图来解除绑定。如果已创建了多个播放器,且存在默认播放器,不指定 playerId,将解绑默认播放器。

  • 类型

    (streamIndex: StreamIndex, videoPlayerOption: VideoPlayerOption) => HTMLVideoElement | undefined
    
  • 注意

    你应在加入房间后,绑定视图。每次加入房间需要重新设置。

  • 参数

    • streamIndex

      类型: StreamIndex

      视频流属性。

    • videoPlayerOption

      类型: VideoPlayerOption

      视图信息和渲染模式。4.61 版本起,支持多次调用本接口,传入不同的 playerId,将同一条流绑定多个渲染视图。
      4.56 版本起支持通过 rotation 参数设置远端视频渲染的旋转角度。

  • 返回值

    类型: HTMLVideoElement | undefined

setLocalVideoMirrorType

是否开启本地视频流镜像模式。

  • 类型

    (mirrorType: MirrorType) => void
    
  • 参数

    • mirrorType

      类型: MirrorType

      是否开启镜像模式

setRemoteVideoMirrorType

开关远端视频流镜像模式。

  • 类型

    (userId: string, streamIndex: StreamIndex, mirrorType: MirrorType) => void
    
  • 注意

  • 参数

    • userId

      类型: string

      远端用户 ID。

    • streamIndex

      类型: StreamIndex

      流属性,主流或屏幕流。

    • mirrorType

      类型: MirrorType

      是否开启镜像模式。

setAudioPlaybackDevice

设置音频播放设备,例如扬声器或者耳机,默认使用扬声器。

  • 类型

    (deviceId: string) => Promise<void>
    
  • 注意

    • 该方法仅在桌面端 Chrome 浏览器可用。
    • 进房前和进房后,均可调用此方法设置音频播放设备。
  • 参数

    • deviceId

      类型: string

      音频播放设备(扬声器或者耳机)ID,你可以通过调用 enumerateDevices 获取。

  • 返回值

    类型: Promise<void>

    • INVALID_DEVICE_ID: 输入的设备 ID 无效。
    • NOT_SUPPORTED: 浏览器不支持设置音频播放设备或测试音频采集/播放设备。

play

手动开启音视频流播放。

  • 类型

    (userId?: string, mediaType?: MediaType, streamIndex?: StreamIndex, playerId?: string) => Promise<void>
    
  • 参数

    • userId

      类型: string | undefined

      指定流所属的用户 ID 或 WTN 流 ID。空值代表本地媒体流。传入 WTN 流 ID 时,mediaType 和 streamIndex 不生效。

    • mediaType

      类型: MediaType | undefined

      媒体流类型,用于指定发布音频/视频。默认值为 AUDIO_AND_VIDEO。本方法对本地音频流不生效。开启音频选路时,无法操作音频。

    • streamIndex

      类型: StreamIndex | undefined

      视频流属性。不传参数将同时控制主流和屏幕流。

    • playerId

      类型: string | undefined

      播放器 ID。不指定时视为默认播放器。

  • 返回值

    类型: Promise<void>

    当音视频正常播放时调用本接口也将返回 Promise 对象

stop

暂停音视频流播放。

  • 类型

    (userId?: string, mediaType?: MediaType, streamIndex?: StreamIndex, playerId?: string) => void
    
  • 注意

    开启音频选路时,本方法不会生效。
    成功调用本方法停止渲染音视频后:

  • 参数

    • userId

      类型: string | undefined

      指定流所属的用户 ID 或 WTN 流 ID。空值代表本地媒体流。传入 WTN 流 ID 时,mediaType 和 streamIndex 不生效。

    • mediaType

      类型: MediaType | undefined

      媒体流类型。默认值为 AUDIO_AND_VIDEO。本方法对本地音频流不生效。开启音频选路时,无法操作音频。

    • streamIndex

      类型: StreamIndex | undefined

      视频流属性,主流或屏幕流。不传参数将同时控制主流和屏幕流。

    • playerId

      类型: string | undefined

      播放器 ID。不指定时视为默认播放器。

getAudioVolume

获取音量大小。包括内部采集、外部采集的本地流以及远端流。

  • 类型

    (streamIndex: StreamIndex, userId?: string) => { linearVolume: number; nonlinearVolume: number;}
    
  • 注意

  • 参数

    • streamIndex

      类型: StreamIndex

      视频流属性,主流或屏幕流。

    • userId

      类型: string | undefined

      指定播放的流所属的用户 ID。空值代表本地媒体流。

  • 返回值

    类型: { linearVolume: number; nonlinearVolume: number; }

    当指定的流不存在时,线性和非线性音量结果均为 0。

    • 线性音量,与原始音量呈线性关系,数值越大,音量越大。取值范围是:[0,255]。
      • [0, 25]: 近似无声
      • [26, 75]: 低音量
      • [76, 204]: 中音量
      • [205, 255]: 高音量
    • 非线性音量。由原始音量的对数值转化而来,因此在中低音量时更灵敏,可以用作 Active Speaker(房间内最活跃用户)的识别。取值范围是:[-127,0],单位 dB。
      • [-127, -60]: 近似无声
      • [-59, -40]: 低音量
      • [-39, -20]: 中音量
      • [-19, 0]: 高音量

setAudioFrameCallback

开关音频帧 PCM 数据回调。

  • 类型

    (streamIndex: StreamIndex, userId?: string, callback?: ((data: AudioFrameData) => void) | undefined, frameSize?: number) => void
    
  • 参数

    • streamIndex

      类型: StreamIndex

      流属性,包括主流、屏幕流。

    • userId

      类型: string | undefined

      发布该音频的用户 ID。不传参数代表本地音频流。
      SDK 将在指定用户发布音频流后开始回调音频数据。
      音频选路下只能开启本地音频帧回调。

    • callback

      类型: ((data: AudioFrameData) => void) | undefined

      接收音频数据的回调函数,为空表示关闭数据回调。
      用户断网时,回调的音频数据为 0。

    • frameSize

      类型: number | undefined

      每个音频帧包含的采样点数。frameSize 越大,每次回调的音频数据越多,回调间隔越长。
      可设置为 256, 512, 1024, 2048, 4096, 8192, 16384。如无特殊需求,建议使用默认值 4096。

pauseAllSubscribedStream

暂停接收来自远端的媒体流。

  • 类型

    (mediaType: MediaType) => Promise<void>
    
  • 注意

    • 该方法仅暂停远端流的接收,并不影响远端流的采集和发送。
    • 该方法不改变用户的订阅状态以及订阅流的属性。
    • 若想恢复接收远端流,需调用 resumeAllSubscribedStream。
  • 参数

    • mediaType

      类型: MediaType

      媒体流类型,指定需要暂停接收音频还是视频流

  • 返回值

    类型: Promise<void>

resumeAllSubscribedStream

恢复接收来自远端的媒体流

  • 类型

    (mediaType: MediaType) => Promise<void>
    
  • 注意

    • 该方法仅恢复远端流的接收,并不影响远端流的采集和发送;
    • 该方法不改变用户的订阅状态以及订阅流的属性。
  • 参数

    • mediaType

      类型: MediaType

      媒体流类型,指定音频还是视频流

  • 返回值

    类型: Promise<void>

sendUserMessage

给房间内指定的用户发送点对点文本消息。
若消息发送成功,则 userId 所指定的用户会收到 onUserMessageReceived 回调。

  • 类型

    (userId: string, message: string) => Promise<unknown> | undefined
    
  • 注意

    在发送房间内文本消息前,必须先调用 joinRoom 加入房间。

  • 参数

    • userId

      类型: string

      消息接收用户的 ID

    • message

      类型: string

      发送的文本消息内容。默认单次发送的消息内容包大小为 1 KB,如需更大的包传递(最大不可超过 64 KB),需在控制台启用 RTS 高级功能。注意:若在 SDK 运行期间启用 RTS 高级功能,则必须重新初始化引擎,配置才能生效。

  • 返回值

    类型: Promise<unknown> | undefined

    • USER_MESSAGE_TIMEOUT: 发送消息超时。
    • USER_MESSAGE_BROKEN: 通道断开,发送失败。
    • USER_MESSAGE_NO_RECEIVER: 找不到接收者,请检查传入的 userId 是否正确。
    • USER_MESSAGE_NOT_JOIN: 消息发送方没有加入房间。
    • USER_MESSAGE_UNKNOWN: 消息未知错误。

sendUserBinaryMessage

给房间内指定的用户发送点对点二进制消息。
若消息发送成功,则 userId 所指定的用户会收到 onUserBinaryMessageReceived 回调。

  • 类型

    (userId: string, message: ArrayBuffer) => Promise<unknown>
    
  • 注意

    在发送房间内二进制消息前,必须先调用 joinRoom 加入房间。

  • 参数

    • userId

      类型: string

      消息接收用户的 ID

    • message

      类型: ArrayBuffer

      发送的二进制消息内容。默认单次发送的消息内容包大小为 1 KB,如需更大的包传递(最大不可超过 64 KB),需在控制台启用 RTS 高级功能。注意:若在 SDK 运行期间启用 RTS 高级功能,则必须重新初始化引擎,配置才能生效。

  • 返回值

    类型: Promise<unknown>

    • USER_MESSAGE_TIMEOUT: 发送消息超时。
    • USER_MESSAGE_BROKEN: 通道断开,发送失败。
    • USER_MESSAGE_NO_RECEIVER: 找不到接收者,请检查传入的 userId 是否正确。
    • USER_MESSAGE_NOT_JOIN: 消息发送方没有加入房间。
    • USER_MESSAGE_UNKNOWN: 消息未知错误。

sendRoomMessage

给房间内的所有其他用户群发文本消息。
若消息发送成功,同一房间内的其他用户会收到 onRoomMessageReceived 回调。

  • 类型

    (message: string) => Promise<any> | undefined
    
  • 参数

    • message

      类型: string

      发送的文本消息内容。默认单次发送的消息内容包大小为 1 KB,如需更大的包传递(最大不可超过 64 KB),需在控制台启用 RTS 高级功能。注意:若在 SDK 运行期间启用 RTS 高级功能,则必须重新初始化引擎,配置才能生效。

  • 返回值

    类型: Promise<any> | undefined

sendRoomBinaryMessage

给房间内的所有其他用户群发二进制消息。
若消息发送成功,同一房间内的其他用户会收到通过 onRoomBinaryMessageReceived 回调发送的消息

  • 类型

    (message: ArrayBuffer) => Promise<any> | undefined
    
  • 参数

    • message

      类型: ArrayBuffer

      发送的文本消息。默认单次发送的消息内容包大小为 1 KB,如需更大的包传递(最大不可超过 64 KB),需在控制台启用 RTS 高级功能。注意:若在 SDK 运行期间启用 RTS 高级功能,则必须重新初始化引擎,配置才能生效。

  • 返回值

    类型: Promise<any> | undefined

sendSEIMessage

通过视频帧发送 SEI 数据。
在视频通话场景下,SEI 数据会随视频帧发送;在语音通话场景下,SDK 会自动生成一路 16px × 16px 的黑帧视频流用来发送 SEI 数据。

  • 类型

    (streamIndex: StreamIndex, message: Uint8Array | string, repeatCount: number) => void
    
  • 注意

    • 功能兼容性说明:
      • SEI 消息仅支持在 H.264 编码,且内核版本为 Chromium 86 及以上、Firefox 117 及以上、Safari 15.4 及以上的浏览器上使用。
      • Android 设备无法在语音通话场景下自动生成黑帧视频流发送 SEI 数据。
    • 语音通话场景下收发 SEI 消息,仍然需要订阅视频流,而非音频流。可以在订阅端进房时设置自动订阅视频流,或调用 subscribeStream,媒体流类型选择 AUDIO_AND_VIDEO。
    • 语音通话场景下,若调用此接口后 1 分钟内未有 SEI 数据发送,则 SDK 会自动取消发布视频黑帧。
    • 消息发送成功后,远端会收到 onSEIMessageReceived 事件。
    • 语音通话场景下,黑帧视频流的发送状态会通过 onSEIStreamUpdate 事件回调远端用户。
  • 参数

    • streamIndex

      类型: StreamIndex

      指定携带 SEI 信息的媒体流类型。语音通话场景下,建议将该值设为 STREAM_INDEX_MAIN。

    • message

      类型: string | Uint8Array

      SEI 消息,不大于 4 KB。
      当消息为空或大小超限,终止发送,并收到相应的错误提示。
      SEI PayLoadType 需为 5 或 100。

    • repeatCount

      类型: number

      消息发送重复次数,SEI 数据会添加到当前视频帧开始的连续 repeatCount+1 个视频帧中。取值范围 [0, min{30, %{视频帧率}×2}],推荐范围 [2,4]。

setVideoEncoderConfig

在视频发布端设置摄像头视频流的发布参数。

  • 类型

    (descriptions: VideoEncoderConfig | VideoEncoderConfig[]) => Promise<void>
    
  • 注意

    • 若期望发布多路不同分辨率的流,你需要通过 setLocalSimulcastMode 开启并分别指定小流的发布参数。发布 Simulcast 流时,本接口设置的是大流参数。
    • 调用该方法前,SDK 默认发布一条分辨率 640 × 480 px,帧率 15 FPS,最大编码码率 600 Kbps 的流。
    • 你可以在视频流发布前后调用本方法。
    • 当使用移动端在竖屏状态下发布视频流时,设置的分辨率宽高与实际发流参数相反。例如,当设置发送分辨率为 640 × 480 px 时,实际发流参数为 480 × 640 px。
    • 若设置的参数浏览器不支持,RTC SDK 按照浏览器支持的参数范围进行采集和编码,并通过回调 onLocalVideoSizeChanged 通知采集的实际参数。
    • 该方法适用于摄像头采集的视频流,设置屏幕共享视频流参数参看 setScreenEncoderConfig。
  • 参数

  • 返回值

    类型: Promise<void>

setScreenEncoderConfig

设置共享屏幕的视频编码参数,同时对视频采集生效。
若设置的参数浏览器不支持,RTC SDK 按照浏览器支持的参数范围进行采集和编码,并通过回调 onLocalVideoSizeChanged 通知采集的实际参数。

  • 类型

    (description: ScreenEncoderConfig) => Promise<void>
    
  • 注意

    • 默认分辨率 1920 × 1080 px,帧率 15 FPS,最大编码码率 3000 Kbps。
    • 建议在采集视频前设置编码参数。若采集前未设置编码参数,则使用默认编码参数。
  • 参数

  • 返回值

    类型: Promise<void>

setRemoteSimulcastStreamType

发布端开启 Simulcast 功能时,订阅端可以使用本方法设置期望订阅的远端视频流的参数。

  • 类型

    (userId: string, streamType: SimulcastStreamType) => Promise<void>
    
  • 注意

    • 该方法仅在发布端调用 setLocalSimulcastMode 开启了发送多路视频流的情况下生效,此时订阅端将收到与设置的期望参数最相近的一路流。
    • 若发布端开启了推送多路流功能,但订阅端不对流参数进行设置,则默认接受发送端设置的分辨率最大的一路视频流。
    • 该方法可在进房后调用。
    • 更多信息详见使用 Simulcast 功能文档。
  • 参数

    • userId

      类型: string

      期望配置订阅参数的远端视频流发布用户的 ID。

    • streamType

      类型: SimulcastStreamType

      订阅大小流偏好。
      当订阅的小流未发布时,会订阅大流。当订阅的中流未发布时,但小流已发布,会订阅小流。

  • 返回值

    类型: Promise<void>

    调用失败说明参见 MIXING_OLD_AND_NEW_APIS。

setLocalSimulcastMode

在视频发布端开启 Simulcast 功能,设置或更新中、小流的发布参数。

  • 类型

    (mode: VideoSimulcastMode, streamConfig?: VideoEncoderConfig[]) => Promise<void>
    
  • 参数

    • mode

      类型: VideoSimulcastMode

      默认为只发送单流。你应在进房前调用本接口设定本参数。

    • streamConfig

      类型: VideoEncoderConfig[] | undefined

      中、小流发布编码参数。分辨率按照从小到大顺序,且每路流参数分辨率需小于通过 setVideoEncoderConfig 设置的大流参数。否则可能会设置失败。
      你可以在进房前后设置本参数。发布后,无法修改小流路数,但可以更新中、小流的编码参数。
      多流模式下,默认小流参数为 120px × 90px @10fps, 码率为 100kbps。

  • 浏览器最多支持发送 3 路不同分辨率视频流,此时大流分辨率应超过 540P。

  • 当大流分辨率 < 180P 时,仅能发 1 路流。

  • 当大流分辨率 介于 180P 和 540P 之间时,可以发送 1 路大流和 1 路小流。

  • 返回值

    类型: Promise<void>

    调用失败说明参见 SET_SIMULCAST_FAILED 和 MIXING_OLD_AND_NEW_APIS。

enableAudioPropertiesReport

启用音频信息提示。

startLiveTranscoding

开启转推直播,并设置合流的视频视图布局和音频属性。

updateLiveTranscoding

更新转推直播参数。
使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。

  • 类型

    (transcode: Partial<LiveTranscodeConfig>) => Promise<void>
    
  • 参数

    • transcode

      类型: Partial<LiveTranscodeConfig>

      转推直播配置参数。除特殊说明外,均支持过程中更新。

  • 返回值

    类型: Promise<void>

stopLiveTranscoding

停止转推直播。
关于启动转推直播,参看 startLiveTranscoding。

  • 类型

    () => Promise<void>
    
  • 返回值

    类型: Promise<void>

setBusinessId

设置业务标识参数
可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。

  • 类型

    (businessId: string) => boolean
    
  • 注意

    需要在调用 joinRoom 之前调用,joinRoom 之后调用该方法无效。

  • 参数

    • businessId

      类型: string

      businessId 只是一个标签,颗粒度需要用户自定义。

  • 返回值

    类型: boolean

    • true:设置成功。
    • false:设置失败。

setUserVisibility

设置用户可见性。未调用该接口前,本地用户默认对他人可见。
默认情况下,一个 RTC 房间最多同时容纳 50 名可见用户,最多 30 人可同时上麦。更多信息参看用户和媒体流上限。

  • 类型

    (enable: boolean) => Promise<void>
    
  • 注意

    • 该方法在加入房间前后均可调用。
    • 在房间内调用此方法,房间内其他用户会收到相应的回调通知:
      • 从 false 切换至 true 时,房间内其他用户会收到 onUserJoined 回调通知;
      • 从 true 切换至 false 时,房间内其他用户会收到 onUserLeave 回调通知。
  • 参数

    • enable

      类型: boolean

      用户是否对房间内其他用户可见。

      • true: 可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。
      • false: 不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。
  • 返回值

    类型: Promise<void>

setExternalVideoTrack

使用用户自定义的 videoTrack。
调用本方法前必须先调用 setVideoSourceType 设置为自定义视频采集。

  • 类型

    (index: StreamIndex, track: MediaStreamTrack) => Promise<void>
    
  • 参数

  • 返回值

    类型: Promise<void>

setExternalAudioTrack

使用用户自定义的 audioTrack。
调用本方法前必须先调用 setAudioSourceType 设置为自定义音频采集。

  • 类型

    (index: StreamIndex, track: MediaStreamTrack) => Promise<void>
    
  • 参数

  • 返回值

    类型: Promise<void>

setVideoSourceType

设置向 SDK 输入的视频源
默认使用内部采集。内部采集指:使用 RTC SDK 内置的视频采集机制进行视频采集。
该方法进房前后均可调用。
当你已调用 startVideoCapture 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。
当你调用此方法开启自定义采集,再调用此方法切换至内部采集时,必须再调用 startVideoCapture 手动开启内部采集。

  • 类型

    (index: StreamIndex, videoSourceType: VideoSourceType) => Promise<void>
    
  • 参数

  • 返回值

    类型: Promise<void>

setAudioSourceType

设置向 SDK 输入的音频源
默认使用内部采集。内部采集指:使用 RTC SDK 内置的音频采集机制进行音频采集。
该方法进房前后均可调用。
当你已调用 startAudioCapture 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。
当你调用此方法开启自定义采集,再调用此方法切换至内部采集时,必须再调用 startAudioCapture 手动开启内部采集。

  • 类型

    (index: StreamIndex, audioSourceType: AudioSourceType) => Promise<void>
    
  • 参数

  • 返回值

    类型: Promise<void>

getAudioMixingManager

混音管理接口创建。

getWTNStreamManager

WTN 流接口创建。

  • 类型

    () => IWTNStream
    
  • 返回值

    类型: IWTNStream

    WTN 流管理对象

getCallId

Available since v4.66.

获取通话 ID。

该方法需要在加入房间后调用。当创建一个房间开启音视频通话后,系统会为该房间生成一个对应 callId,标识此房间的通话。

  • 类型

    () => string | undefined
    
  • 返回值

    类型: string | undefined

    当前房间的通话 ID(callId)。

setAudioCaptureConfig

设置 RTC SDK 内部采集时的音频采集参数。默认参数由浏览器决定。

  • 类型

    (config: TrackCaptureConfig) => Promise<void>
    
  • 注意

    你需要在开始音频采集和首次发布之前调用本接口。

  • 参数

  • 返回值

    类型: Promise<void>

login

登录即时消息服务器。
调用此方法登录后,可以向同 appID 下其他已登录用户发送文本或二进制消息。

  • 类型

    (token: string | null, userId: string) => Promise<void>
    
  • 注意

    • 在调用本接口登录后,如果想要登出,需要调用 logout。
    • 同一个 App ID 的每个用户的用户 ID 必须是唯一的。如果两个用户的用户 ID 相同,则先登录的用户将自动登出,并收到 RTM_DUPLICATE_LOGIN 错误。
  • 参数

    • token

      类型: string | null

      用户登录必须携带的 Token,用于鉴权验证。
      测试时可使用控制台生成临时 Token,roomId 填任意值。
      正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token,roomId 置为空字符串(即 roomId:""),Token 有效期及生成方式参看使用 Token 完成鉴权。

    • userId

      类型: string

      用户 ID。

  • 返回值

    类型: Promise<void>

    • ALREADY_LOGIN: 已有相同 userId 的用户登录了实时信令服务器,请勿重复登录或使用不同的 userId 登录。
    • LOGIN_FAILED: 登录实时信令服务器失败,具体原因查看 message。

logout

登出 RTS 服务器。调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。

  • 类型

    () => Promise<void>
    
  • 返回值

    类型: Promise<void>

updateLoginToken

更新用户用于登录的 Token。Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。

  • 类型

    (token: string | null) => Promise<void>
    
  • 注意

    • 如果 Token 无效导致登录失败,则调用此方法更新 Token 后,SDK 会自动重新登录,你无需再次调用 login 方法。
    • Token 过期时,如果已经成功登录,则不会受到影响。Token 过期的错误会在下一次使用过期 Token 登录时,或因本地网络状况不佳导致断网重新登录时通知。
  • 参数

    • token

      类型: string | null

      更新的动态密钥

  • 返回值

    类型: Promise<void>

getPeerOnlineStatus

查询对端用户或本端用户的登录状态。在发送房间外消息之前,用户可以通过本接口了解对端用户是否登录,从而决定是否发送消息。也可以通过本接口查询自己的登录状态。

  • 类型

    (userId: string) => Promise<USER_ONLINE_STATUS>
    
  • 注意

    必须调用 login 登录后,才能调用本接口。

  • 参数

    • userId

      类型: string

      需要查询的用户 ID

  • 返回值

    类型: Promise<USER_ONLINE_STATUS>

sendUserMessageOutsideRoom

给房间外指定的用户发送文本消息(P2P)

  • 类型

    (userId: string, message: string) => Promise<any>
    
  • 注意

    • 调用本接口前,请确保已在 RTC 控制台启用 RTS 高级功能。

      若在 SDK 运行期间开启了该功能,则必须重新初始化引擎,配置才能生效。

    • 必须调用 login 登录后,才能调用本接口。
    • 若文本消息发送成功,指定的用户会通过 onUserMessageReceivedOutsideRoom 回调收到该消息。
  • 参数

    • userId

      类型: string

      消息接收用户的 ID

    • message

      类型: string

      发送的文本消息内容。消息不超过 64 KB。

  • 返回值

    类型: Promise<any>

    • USER_MESSAGE_TIMEOUT: 发送消息超时。
    • USER_MESSAGE_BROKEN: 通道断开,发送失败。
    • USER_MESSAGE_NO_RECEIVER: 找不到接收者,请检查传入的 userId 是否正确。
    • NOT_LOGIN: 消息发送方没有登录。
    • USER_MESSAGE_UNKNOWN: 消息未知错误。

sendUserBinaryMessageOutsideRoom

给房间外指定的用户发送二进制消息(P2P)

  • 类型

    (userId: string, message: ArrayBuffer) => Promise<any>
    
  • 注意

  • 参数

    • userId

      类型: string

      消息接收用户的 ID

    • message

      类型: ArrayBuffer

      发送的二进制消息内容。消息不超过 64 KB。

  • 返回值

    类型: Promise<any>

    • USER_MESSAGE_TIMEOUT: 发送消息超时。
    • USER_MESSAGE_BROKEN: 通道断开,发送失败。
    • USER_MESSAGE_NO_RECEIVER: 找不到接收者,请检查传入的 userId 是否正确。
    • NOT_LOGIN: 消息发送方没有登录。
    • USER_MESSAGE_UNKNOWN: 消息未知错误。

setServerParams

设置业务服务器参数。调用 sendServerMessage 或 sendServerBinaryMessage 发送消息给业务服务器之前,必须设置有效签名和业务服务器地址。

  • 类型

    (signature: string, url: string) => Promise<any>
    
  • 注意

  • 参数

    • signature

      类型: string

      动态签名,应用服务器可使用该签名对消息来源进行验证。
      签名需自行定义,可传入任意非空字符串,建议将 uid 等信息编码为签名。
      设置的签名会以 post 形式发送至通过本方法中 url 参数设置的应用服务器地址。

    • url

      类型: string

      业务服务器的地址

  • 返回值

    类型: Promise<any>

sendServerMessage

客户端给业务服务器发送文本消息(P2Server)

  • 类型

    (message: string) => Promise<any>
    
  • 注意

    • 调用本接口前,请确保已在 RTC 控制台启用 RTS 高级功能。

      若在 SDK 运行期间开启了该功能,则必须重新初始化引擎,配置才能生效。

    • 在向业务服务器发送文本消息前,必须先调用 login 完成登录,随后调用 setServerParams 设置业务服务器。
  • 参数

    • message

      类型: string

      发送的文本消息内容。消息不超过 64 KB。

  • 返回值

    类型: Promise<any>

    • USER_MESSAGE_TIMEOUT: 发送消息超时。
    • USER_MESSAGE_BROKEN: 通道断开,发送失败。
    • USER_MESSAGE_NO_RECEIVER: 找不到接收者,请检查传入的 userId 是否正确。
    • USER_MESSAGE_SEND_TO_SERVER_ERROR: 服务器无应答。
    • USER_MESSAGE_SERVER_RESPONSE_ERROR: 业务服务器 Http 响应状态码不是 200。
    • NOT_LOGIN: 消息发送方没有登录。
    • USER_MESSAGE_SERVER_PARAMS_NOTSET: 尚未设置业务服务器参数。
    • USER_MESSAGE_UNKNOWN: 消息未知错误。

sendServerBinaryMessage

客户端给业务服务器发送二进制消息(P2Server)

  • 类型

    (message: ArrayBuffer) => Promise<any>
    
  • 注意

    • 调用本接口前,请确保已在 RTC 控制台启用 RTS 高级功能。

      若在 SDK 运行期间开启了该功能,则必须重新初始化引擎,配置才能生效。

    • 在向业务服务器发送文本消息前,必须先调用 login 完成登录,随后调用 setServerParams 设置业务服务器。
  • 参数

    • message

      类型: ArrayBuffer

      发送的二进制消息内容。消息不超过 64 KB。

  • 返回值

    类型: Promise<any>

    • USER_MESSAGE_TIMEOUT: 发送消息超时。
    • USER_MESSAGE_BROKEN: 通道断开,发送失败。
    • USER_MESSAGE_NO_RECEIVER: 找不到接收者,请检查传入的 userId 是否正确。
    • USER_MESSAGE_SEND_TO_SERVER_ERROR: 服务器无应答。
    • USER_MESSAGE_SERVER_RESPONSE_ERROR: 业务服务器 Http 响应状态码不是 200。
    • NOT_LOGIN: 消息发送方没有登录。
    • USER_MESSAGE_SERVER_PARAMS_NOTSET: 尚未设置业务服务器参数。
    • USER_MESSAGE_UNKNOWN: 消息未知错误。

startCloudProxy

开启云代理

  • 类型

    (cloudProxyInfo: CloudProxyInfo) => void
    
  • 注意

    • 在加入房间前调用此接口
    • 在开启云代理后,进行通话前网络探测
    • 开启云代理后,并成功连接云代理服务器后,会收到 onCloudProxyConnected。
    • 要关闭云代理,调用 stopCloudProxy。
  • 参数

stopCloudProxy

关闭云代理

startPushPublicStream

将房间内的单路媒体流,或多路媒体流合成后发布为一路 WTN 流。
发布后,同一 AppId 下的用户无需进房,即可通过 StreamId 订阅该流。

  • 类型

    (publicStreamId: string, publicStreamParam: PublicStreamConfig) => Promise<void>
    
  • 注意

    • 使用同一 appID 的用户,无论是否进房,可以调用 startPlayWTN 获取和播放指定的 WTN 流。
    • 同一用户使用同一 WTN 流 ID 多次调用本接口无效。调用 updatePublicStreamParam 更新 WTN 流参数。
    • 不同用户使用同一 WTN 流 ID 多次调用本接口时,RTC SDK 将使用最后一次调用时传入的参数更新 WTN 流。
    • 使用不同的 WTN 流 ID 多次调用本接口可以发布多路 WTN 流。
    • 调用 stopPushPublicStream 停止推 WTN 流。
  • 参数

    • publicStreamId

      类型: string

      WTN 流 ID。该字符串需符合正则表达式:[a-zA-Z0-9_@\-\.]{1,128}。

    • publicStreamParam

      类型: PublicStreamConfig

      WTN 流参数。
      一路 WTN 流可以包含多路房间内的媒体流,按照指定的布局方式进行聚合。
      如果指定的媒体流还未发布,则 WTN 流将在指定流开始发布后实时更新。

  • 返回值

    类型: Promise<void>

    REPEAT_PUSH: 重复发布 WTN 流。

updatePublicStreamParam

更新 WTN 流参数。由 startPushPublicStream 发布的 WTN 流。

  • 类型

    (publicStreamId: string, publicStreamParam: Partial<PublicStreamConfig>) => Promise<void>
    
  • 参数

    • publicStreamId

      类型: string

      WTN 流 ID。
      指定的流必须为当前用户所发布。

    • publicStreamParam

      类型: Partial<PublicStreamConfig>

      WTN 流参数。

  • 返回值

    类型: Promise<void>

    REPEAT_PLAY: 重复订阅 WTN 流。

stopPushPublicStream

停止发布 WTN 流。由 startPushPublicStream 发布的 WTN 流。

  • 类型

    (publicStreamId: string) => Promise<void>
    
  • 注意

    通过 startPlayWTN 发布的 WTN 流需要通过 stopPlayWTN 停止发布。

  • 参数

    • publicStreamId

      类型: string

      WTN 流 ID。
      指定的流必须为当前用户所发布。

  • 返回值

    类型: Promise<void>

startPlayPublicStream

订阅指定 WTN 流。
无论用户是否在房间内,都可以调用本接口获取和播放指定的 WTN 流。

stopPlayPublicStream

取消订阅指定 WTN 流。
关于订阅 WTN 流,查看 startPlayPublicStream。

  • 已弃用

    since 4.65, use stopPlayWTN instead.

  • 类型

    (publicStreamId: string) => Promise<void>
    
  • 参数

    • publicStreamId

      类型: string

      WTN 流 ID。

  • 返回值

    类型: Promise<void>

setPublicStreamVideoPlayer

为指定 WTN 流设置使用的视图和渲染模式。

  • 已弃用

    since 4.65, use setWTNRemoteVideoPlayer instead.

  • 类型

    (publicStreamId: string, videoPlayerOption: Omit<VideoPlayerOption, 'userId' | 'playerId'>) => void
    
  • 参数

    • publicStreamId

      类型: string

      WTN 流 ID。

    • videoPlayerOption

      类型: Omit<VideoPlayerOption, "userId" | "playerId">

      视图信息和渲染模式。

setDummyCaptureImagePath

停止内部摄像头采集时,使用静态图片填充本地推送的视频流。

  • 类型

    (index: StreamIndex, filePath: string) => Promise<void>
    
  • 注意

    • Mac 端的 Chrome 浏览器上支持此功能
    • 建议你在结束采集前,就进行静态图片填充设置,避免视频录制时,出现黑帧。
    • 本地预览时,无法看到此图片。
  • 参数

    • index

      类型: StreamIndex

    • filePath

      类型: string

      以 Http 协议表示的图片地址,或 Blob 对象。
      图片类型支持:JPG、PNG、BMP。
      图片长宽比和视频编码参数不一致时,图片会被等比缩放,直至其两边长小于等于视频编码参数中的宽高。

  • 返回值

    类型: Promise<void>

defaultTranscoding

获取合流转推默认参数。

  • 类型

    () => Required<LiveTranscodeConfig>
    
  • 返回值

    类型: Required<LiveTranscodeConfig>

    转推直播默认音视频参数。

setSubscribeFallbackOption

设置订阅的音视频流的回退选项。
回退指在网络不佳时允许订阅流进行降级或只订阅音频流,以保证通话流畅。

  • 类型

    (option: SubscribeFallbackOption) => boolean
    
  • 注意

    • 使用前提:必须在进房前调用本方法,进房后设置或更改设置无效。并且已经调用 setLocalSimulcastMode 开启 Simulcast 功能。
    • 设置回退选项后,订阅的音视频流发生回退或从回退中恢复时,会收到 onSimulcastSubscribeFallback 和 onRemoteVideoSizeChanged 回调通知。
    • 可以调用 API 或者在服务端下发策略设置回退。当使用服务端下发配置实现时,下发配置优先级高于在客户端使用 API 设定的配置。
  • 参数

  • 返回值

    类型: boolean

    • true 设置成功;
    • false 设置失败。

setRemoteUserPriority

设置用户优先级。
该方法与 setSubscribeFallbackOption 搭配使用。
开启回退后,会优先保证收到的高优先级用户的流的质量。

  • 类型

    (userId: string, priority: RemoteUserPriority) => boolean
    
  • 参数

    • userId

      类型: string

      远端用户的 ID

    • priority

      类型: RemoteUserPriority

      远端用户优先级

  • 返回值

    类型: boolean

    • true 设置成功;
    • false 设置失败。

startAudioPlaybackDeviceTest

启动音频播放设备检测。测试启动后,循环播放指定的音频文件,同时将通过 onAudioPlaybackDeviceTestVolume 回调播放时的音量信息。

  • 类型

    (filePath: string, indicationInterval: number) => Promise<void>
    
  • 注意

    • 该方法在用户进房前后均可调用。但不可与其它音频设备测试功能同时应用。
    • 调用 stopAudioPlaybackDeviceTest 可以停止测试。
  • 参数

    • filePath

      类型: string

      指定播放设备检测的音频文件网络地址。包括格式 wav 和 mp3。

    • indicationInterval

      类型: number

      onAudioPlaybackDeviceTestVolume 音量回调的时间间隔,推荐设置为 200 毫秒或以上。单位为毫秒。最小值为 100 毫秒。

  • 返回值

    类型: Promise<void>

    当测试流程结束时 Resolve。
    REPEAT_DEVICE_TEST: 重复开启检测。

stopAudioPlaybackDeviceTest

停止音频播放设备测试。

startAudioDeviceRecordTest

开始音频采集设备和音频播放设备测试。
建议提前调用 enableAudioPropertiesReport 注册音量提示回调,测试开始后,音频设备开始采集本地声音,可以通过 onLocalAudioPropertiesReport 获取采集音量。

  • 类型

    (indicationInterval: number, onAutoplayFailed?: ((resume: () => Promise<any>) => any) | undefined) => Promise<void>
    
  • 注意

    • 该方法在 joinRoom 前后均可调用。但不可与其它音频设备测试功能同时应用。
    • 音频回路测试时可调用 setCaptureVolume 调节采集音量;调用 setPlaybackVolume 无效。
    • 调用本接口 30s 后,采集自动停止,并开始播放采集到的声音。录音播放完毕后,设备测试流程自动结束。你也可以在 30 s 内调用 stopAudioDeviceRecordAndPlayTest 来停止采集并开始播放此前采集到的声音。
    • 调用 stopAudioDevicePlayTest 可以停止音频设备采集和播放测试。
    • 该方法仅在本地进行音频设备测试,不涉及网络连接。
  • 参数

    • indicationInterval

      类型: number

      测试录音播放时触发 onAudioPlaybackDeviceTestVolume 播放音量回调,本参数指定了该周期回调的时间间隔。推荐设置为 200 毫秒或以上。单位为毫秒。最小值为 100 毫秒。

    • onAutoplayFailed

      类型: ((resume: () => Promise<any>) => any) | undefined

      由于浏览器自动播放策略影响,导致录制音频播放失败时回调。resume 为恢复播放方法,建议在用户点击后同步执行。

  • 返回值

    类型: Promise<void>

    当测试流程结束时 Resolve。
    还可能返回如下错误码。

    • NOT_SUPPORTED: 浏览器不支持设置音频播放设备或测试音频采集/播放设备。
    • REPEAT_DEVICE_TEST: 重复开启检测。
    • AUDIO_DEVICE_RECORD_FAILED: 开启音频设备测试失败,请重试。

stopAudioDeviceRecordAndPlayTest

停止采集本地音频,并开始播放采集到的声音。录音播放完毕后,设备测试流程结束。
调用 startAudioDeviceRecordTest 30s 内调用本接口来停止采集并开始播放此前采集到的声音。

  • 类型

    () => void
    
  • 注意

    调用本接口开始播放录音后,可以在播放过程中调用 stopAudioDevicePlayTest 停止播放。

stopAudioDevicePlayTest

停止由调用 startAudioDeviceRecordTest 开始的音频播放设备测试。
在音频播放设备测试自动结束前,可调用本接口停止音频采集与播放测试。

  • 类型

    () => void
    

setAudioProfile

设置音质档位

  • 类型

    (profile: AudioProfileType) => Promise<void>
    
  • 注意

    你需要在开始音频采集和首次发布之前调用本接口。

  • 参数

    • profile

      类型: AudioProfileType

      音质档位。不同的音质档位有着不同的音频参数,带来不同的听觉体验,你应根据业务场景选择适合的音质档位。

  • 返回值

    类型: Promise<void>

getLocalStreamTrack

获取本地用户的音频或者视频的 MediaStreamTrack。

  • 类型

    (streamIndex: StreamIndex, type: 'video' | 'audio') => MediaStreamTrack | undefined
    
  • 注意

    • 调用时机,本地采集开启后或已指定外部 MediaStreamTrack 后。
    • 当调用接口或拔出设备关闭本地采集时,将触发该 MediaStreamTrack 回调的 ended 事件,MediaStreamTrack 随即被关闭。
    • 通过 MediaStreamTrack 可以获取实际分辨率、设备 ID 参数、实时音量信息,对轨道进行 muted 和 stop 操作,调整音量等。
    • 我们推荐使用 RTC 提供的接口实现以下功能:
  • 参数

    • streamIndex

      类型: StreamIndex

      流属性,包括主流、屏幕流。

    • type

      类型: "video" | "audio"

      媒体流类型,视频或音频。
      音频:可分别获取本地麦克风、本地音频外部源、播放本地音频文件、本地屏幕流音频的音轨。
      视频:可分别获取本地摄像头、本地视频外部源、本地屏幕视频的视频轨道。

  • 返回值

    类型: MediaStreamTrack | undefined

    当 MediaStreamTrack 不存在时,比如没有开启采集,返回 undefined。

getRemoteStreamTrack

获取已订阅的远端用户的音频或者视频的 MediaStreamTrack。

  • 类型

    (userId: string, streamIndex: StreamIndex, type: 'video' | 'audio') => MediaStreamTrack | undefined
    
  • 注意

    • 调用时机,订阅该远端流之后。
    • 本地用户取消订阅该流时,将触发该 MediaStreamTrack 回调的 ended 事件, MediaStreamTrack 随即被关闭。
    • 通过 MediaStreamTrack 可以获取实际分辨率、实时音量信息,对轨道进行 muted 和 stop 操作,调整音量等。
    • 我们推荐使用 RTC 提供的接口实现以下功能。
  • 参数

    • userId

      类型: string

      远端用户 ID。

    • streamIndex

      类型: StreamIndex

      流属性,包括主流、屏幕流。

    • type

      类型: "video" | "audio"

      媒体流类型,视频或音频。
      可分别单独获取远端麦克风、远端屏幕音频的音轨。
      可分别获取远端摄像头、远端屏幕视频的视频轨道。

  • 返回值

    类型: MediaStreamTrack | undefined

    当 MediaStreamTrack 不存在时,比如没有订阅该流,返回 undefined。

getPublicStreamTrack

获取已订阅的 WTN 流的音频或者视频的 MediaStreamTrack。

  • 类型

    (id: string, type: 'video' | 'audio') => MediaStreamTrack | undefined
    
  • 注意

    • 调用时机,调用 startPlayWTN 订阅 WTN 流后。
    • 调用 stopPlayWTN 停止订阅 WTN 流时,将触发该 MediaStreamTrack 回调的 ended 事件, MediaStreamTrack 随即被关闭。
  • 参数

    • id

      类型: string

      WTN 流 ID。

    • type

      类型: "video" | "audio"

      媒体流类型,视频或音频。

  • 返回值

    类型: MediaStreamTrack | undefined

    当 MediaStreamTrack 不存在时,比如没有订阅该 WTN 流,返回 undefined。

takeLocalSnapshot

截取本地视频画面

  • 类型

    (streamIndex: StreamIndex) => Promise<ImageData>
    
  • 注意

    • 在调用此接口前,请确保已经发起采集。当 getLocalStreamTrack 不为空时,说明已经采集到视频流。
    • 本地视频处理的效果仅美颜和虚拟背景会包含在截取的画面中。
    • 不管采用 SDK 内部采集,还是自定义采集,都可以进行截图。
  • 参数

  • 返回值

    类型: Promise<ImageData>

    INVOKED_BEFORE_CAPTURE: 指定的视频流不存在,请确保指定的流已发布。

takeRemoteSnapshot

截取远端视频画面

  • 类型

    (id: string, streamIndex: StreamIndex) => Promise<ImageData>
    
  • 注意

    在调用此接口前,请确保已经订阅远端流。当 getRemoteStreamTrack 不为空时,说明已经订阅到远端流。

  • 参数

    • id

      类型: string

      用户 ID/ WTN 流 ID

    • streamIndex

      类型: StreamIndex

      截图的视频流。

  • 返回值

    类型: Promise<ImageData>

    STREAM_NOT_EXIST: 目标流不存在。请输入正确的 ID,或确认目标流在房间内。

registerExtension

注册插件。
你可以通过插件实现基础美颜功能、虚拟背景功能、AI 降噪功能、Web 端回声消除(AEC)和自动增益控制(AGC)功能。

  • 类型

    (extension: RTCExtension) => Promise<void>
    
  • 参数

    • extension

      类型: RTCExtension

      插件实例。Web SDK 4.69.1 起,除美颜、虚拟背景和 AI 降噪外,还支持注册 @byted/rtc-extension-aec 和 @byted/rtc-extension-agc 音频前处理插件。详细用法参见 Web 端音频前处理(AEC/AGC)。

  • 返回值

    类型: Promise<void>

startSubtitle

识别或翻译房间内所有用户的语音,形成字幕。语音识别或翻译的结果会通过 onSubtitleMessageReceived 事件回调给你。
调用该方法后,你会收到 onSubtitleStateChanged 回调,通知字幕是否开启。

  • 类型

    (config: RTCSubtitleConfig) => Promise<void>
    
  • 注意

    • 使用字幕功能前,你需要在 RTC 控制台 开启实时字幕功能。
      • 如果你需要使用流式语音识别模式,你应在豆包语音控制台创建流式语音识别应用。创建时,服务类型应选择 流式语音识别,而非 音视频字幕生成。创建后,在 RTC 控制台 上启动流式语音识别,并填写创建豆包语音应用时获取的相关信息,包括:APP ID,Access Token,和 Cluster ID。
      • 如果你需要使用实时语音翻译模式,你应开通机器翻译服务,参考开通服务。完成开通后,在 RTC 控制台 上启用实时语音翻译模式。
    • 此方法需要在进房后调用。
    • 如需指定源语言,你需要在调用 joinRoom 接口进房时,通过 extraInfo 参数传入格式为 "语种英文名": "语种代号" JSON 字符串,例如设置源语言为英文时,传入 "source_language": "en"。如未指定源语言,SDK 会将浏览器语种设定为源语言。如果你的浏览器语种不是中文、英文和日文,此时 SDK 会自动将中文设为源语言。
      • 识别模式下,你可以传入 RTC 控制台上预设或自定义的语种英文名和语种代号。识别模式下支持的语言参看控制台-服务详情。
      • 翻译模式下,你需要传入机器翻译规定的语种英文名和语种代号。翻译模式下支持的语言及对应的代号参看翻译模式语言支持。
  • 参数

  • 返回值

    类型: Promise<void>

    SUBTITLE_ALREADY_ON: 重复调用,字幕已开启。

updateSubtitleConfig

开启字幕翻译后切换源语种。

  • 类型

    (config: UpdateSubtitleConfig) => Promise<void>
    
  • 注意

    • 你可以在调用 startSubtitle 开启字幕翻译后,调用本接口,动态切换源语种。
    • 如需在开启字幕翻译前指定源语言,你需要在调用 joinRoom 接口进房时,通过 extraInfo 参数传入格式为 "语种英文名": "语种代号" JSON 字符串,例如设置源语言为英文时,传入 "source_language": "en"。如未指定源语言,SDK 会将浏览器语种设定为源语言。如果你的浏览器语种不是中文、英文和日文,此时 SDK 会自动将中文设为源语言。
    • 识别模式下,应确保指定的源语种已在 RTC 控制台上添加。
  • 参数

  • 返回值

    类型: Promise<void>

    切换成功后,你会收到 onSubtitleStateChanged 回调通知。

stopSubtitle

关闭字幕。
调用该方法后,你会收到 onSubtitleStateChanged 回调,通知字幕是否关闭。

  • 类型

    () => void
    

setRemoteStreamRenderSync

设置远端音视频流是否同步渲染。
你可以通过关闭音视频同步,达到超低端到端延时的效果。

  • 类型

    (sync: boolean) => boolean
    
  • 注意

    必须在进房前设置,进房后设置或更改设置无效。

  • 参数

    • sync

      类型: boolean

      true:(默认值)开启同步。
      false:关闭同步。

  • 返回值

    类型: boolean

    • true:设置成功。
    • false:设置失败。

setCaptureVolume

调节音频采集音量。

  • 类型

    (streamIndex: StreamIndex, volume: number) => void
    
  • 注意

    • 建议开启采集后设置采集音量。
    • 若调用本方法时尚未开始采集,设置将在开始采集后生效。
    • 采集音量调节仅控制混音前的音频流。
  • 参数

    • streamIndex

      类型: StreamIndex

      流属性,指定调节主流或屏幕流的采集音量。

    • volume

      类型: number

      采集的音量值和原始音量的比值,取值范围 [0, 400],单位 %。默认值为 100%。
      为保证更好的通话质量,建议将 volume 值设为 [0,100]。

setPlaybackVolume

调节本地播放的单个远端用户的音量。

  • 类型

    (userId: string, streamIndex: StreamIndex, volume: number) => void
    
  • 注意

    • 建议成功播放远端流后设置音量。
    • 若调用本方法时尚未订阅远端用户或没有播放远端用户音频,设置将在开始播放远端音频后生效。
    • 在控制台开启音频选路后不支持设置远端用户音量。
  • 参数

    • userId

      类型: string

      音频所属远端用户 ID

    • streamIndex

      类型: StreamIndex

      流属性,指定调节主流或屏幕流的播放音量。

    • volume

      类型: number

      播放的音量值和原始音量的比值,取值范围 [0, 400],单位 %。默认值为 100%。
      为保证更好的通话质量,建议将 volume 值设为 [0,100]。

setPublicStreamVolume

调节本地播放的 WTN 流播放音量。

  • 已弃用

    since 4.65, use setWTNRemoteAudioPlaybackVolume instead.

  • 类型

    (publicStreamId: string, volume: number) => void
    
  • 注意

    • 建议成功播放 WTN 流后设置音量。
    • 若调用本方法时尚未播放 WTN 流,设置将在开始播放后生效。
  • 参数

    • publicStreamId

      类型: string

      音频所属 WTN 流 ID

    • volume

      类型: number

      播放的音量值和原始音量的比值,取值范围 [0, 400],单位 %。默认值为 100%。
      为保证更好的通话质量,建议将 volume 值设为 [0,100]。

startForwardStreamToRooms

开始跨房间转发媒体流,示例代码可参看跨房间转发媒体流功能文档。
在调用 joinRoom 后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。

updateForwardStreamToRooms

更新跨房间媒体流转发信息。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。

  • 类型

    (forwardStreamInfos: ForwardStreamInfo[]) => Promise<ForwardStreamStateInfo[]>
    
  • 注意

  • 参数

    • forwardStreamInfos

      类型: ForwardStreamInfo[]

      跨房间媒体流转发目标房间信息。

  • 返回值

    类型: Promise<ForwardStreamStateInfo[]>

    跨房间转发媒体流状态信息。
    还可能返回错误码 UNEXPECTED_INVOKE_FORWARD_STREAM: 跨房间转发媒体流相关 API 的调用时机不正确,请参考各接口说明确认调用的先后顺序。

stopForwardStreamToRooms

停止向所有目标房间转发媒体流。

pauseForwardStreamToAllRooms

暂停向所有目标房间转发媒体流。
调用本方法暂停向所有目标房间转发后,你可以调用 resumeForwardStreamToAllRooms 恢复转发。

  • 类型

    () => Promise<ForwardStreamStateInfo[]>
    
  • 注意

    调用本方法后,目标房间中的用户将接收到本地用户停止发布 onUserUnpublishStream/onUserUnpublishScreen 和退房 onUserLeave 的回调。

  • 返回值

    类型: Promise<ForwardStreamStateInfo[]>

    跨房间转发媒体流状态信息。
    还可能返回错误码 UNEXPECTED_INVOKE_FORWARD_STREAM: 跨房间转发媒体流相关 API 的调用时机不正确,请参考各接口说明确认调用的先后顺序。

resumeForwardStreamToAllRooms

恢复向所有目标房间转发媒体流。

  • 类型

    () => Promise<ForwardStreamStateInfo[]>
    
  • 注意

    目标房间中的用户将接收到本地用户进房 onUserJoined 和发流 onUserPublishStream/onUserPublishScreen 的回调。

  • 返回值

    类型: Promise<ForwardStreamStateInfo[]>

    跨房间转发媒体流状态信息。
    还可能返回错误码 UNEXPECTED_INVOKE_FORWARD_STREAM: 跨房间转发媒体流相关 API 的调用时机不正确,请参考各接口说明确认调用的先后顺序。

setAudioSelectionConfig

设置本端发布流在音频选路中的优先级。

  • 类型

    (audioSelectionPriority: AudioSelectionPriority) => Promise<void>
    
  • 参数

    • audioSelectionPriority

      类型: AudioSelectionPriority

      本端发布流在音频选路中的优先级,默认正常参与音频选路。

  • 返回值

    类型: Promise<void>

getRemoteVideoStats

获取用户订阅的远端视频流统计信息以及网络状况。

  • 类型

    () => Record<string, RemoteUserVideoStats[]>
    
  • 注意

    连续 1 秒内调用本接口获取到的信息相同。

  • 返回值

    类型: Record<string, RemoteUserVideoStats[]>

    包括摄像头采集和屏幕共享视频。

getRemoteAudioStats

获取用户订阅的远端音频流统计信息以及网络状况。

  • 类型

    () => Record<string, RemoteUserAudioStats[]>
    
  • 注意

    连续 1 秒内调用本接口获取到的信息相同。

  • 返回值

    类型: Record<string, RemoteUserAudioStats[]>

    包括麦克风采集和屏幕共享音频。

getLocalVideoStats

获取本地视频流统计信息以及网络状况。

  • 类型

    () => LocalUserVideoStats
    
  • 注意

    连续 1 秒内调用本接口获取到的信息相同。

  • 返回值

    类型: LocalUserVideoStats

    包括摄像头采集和屏幕共享视频。

getLocalAudioStats

本地音频流统计信息以及网络状况。

  • 类型

    () => LocalUserAudioStats
    
  • 注意

    连续 1 秒内调用本接口获取到的信息相同。

  • 返回值

    类型: LocalUserAudioStats

    包括麦克风采集和屏幕共享音频。

setEarMonitorMode

打开/关闭耳返功能。

  • 类型

    (streamIndex: StreamIndex, position: EarMonitorPosition) => Promise<void>
    
  • 参数

    • streamIndex

      类型: StreamIndex

      流属性,包括主流、屏幕流。

    • position

      类型: EarMonitorPosition

      是否开启耳返音频。指定耳返的音频是否经过前处理。

  • 返回值

    类型: Promise<void>

    开启功能后,如果耳返自动播放失败,建议在收到 onAutoplayFailed 通知时再次调用本接口开启。

setEarMonitorVolume

设置耳返音量。

  • 类型

    (streamIndex: StreamIndex, volume: number) => void
    
  • 参数

    • streamIndex

      类型: StreamIndex

      流属性,包括主流、屏幕流。

    • volume

      类型: number

      耳返音量,调节范围:[0,400]。初始值为 100。

getLocalVideoPlayerVisibility

Available since V4.67

获取本地视频播放器的可见性状态和不可见原因。

  • 类型

    (streamIndex: StreamIndex, playerId?: string) => PlayerVisibility | undefined
    
  • 参数

    • streamIndex

      类型: StreamIndex

      流索引

    • playerId

      类型: string | undefined

      可选参数,播放器 ID。不指定时视为默认播放器。

  • 返回值

    类型: PlayerVisibility | undefined

    播放器可见性状态。
    若对应播放器不存在,返回 undefined。

getRemotePlayerVisibility

Available since V4.67.

获取远端视频播放器的可见性状态和不可见原因。

  • 类型

    (userId: string, streamIndex: StreamIndex, playerId?: string) => PlayerVisibility | undefined
    
  • 参数

    • userId

      类型: string

      用户 ID。

    • streamIndex

      类型: StreamIndex

      流索引,区分主流和屏幕流。

    • playerId

      类型: string | undefined

      可选参数,播放器 ID,不指定时视为默认播放器。

  • 返回值

    类型: PlayerVisibility | undefined

    播放器可见性状态。
    若对应播放器不存在,返回 undefined。

VERTC

类型: interface

  • API
方法描述
createEngine创建引擎对象。你必须先使用此方法,以使用 RTC 提供的各种音视频能力。
再次调用此方法时,会创建另一个独立的引擎实例。
destroyEngine手动销毁通过 createEngine 所创建的引擎对象。
getSdkVersion获取 SDK 当前的版本号。
enumerateDevices枚举可用的媒体输入和输出设备,比如麦克风、摄像头、耳机等。
可以通过该方法获取设备的 deviceId, 用于在 setAudioPlaybackDevice、startVideoCapture、startAudioCapture 方法中指定采集/播放设备。
enableDevices向用户获取设备权限
enumerateAudioCaptureDevices该方法枚举可用的麦克风。
可以通过该方法获取设备的 deviceId, 用于在 startAudioCapture、setAudioCaptureDevice 方法中指定使用的麦克风设备。
enumerateVideoCaptureDevices该方法枚举可用的摄像头等。
可以通过该方法获取设备的 deviceId, 用于在 startVideoCapture、setVideoCaptureDevice 方法中指定使用的摄像头设备。
enumerateAudioPlaybackDevices该方法枚举可用的音频播放设备,例如耳机、音箱等。
可以通过该方法获取设备的 deviceId, 可用于 setAudioPlaybackDevice 方法中指定音频播放设备。
isSupported浏览器是否支持
getSupportedCodecs获取当前浏览器支持的编解码类型。
若你已开通 vp8 业务,可以在进房前调用该接口查看当前浏览器是否支持 vp8 编码类型
setLogConfig配置本地缓存的日志输出等级, 以及可使用的最大缓存空间。
downloadLog下载本地缓存生成文件。
getElectronScreenSources在 Electron 框架下使用屏幕共享功能时,返回屏幕共享源列表。

createEngine

创建引擎对象。你必须先使用此方法,以使用 RTC 提供的各种音视频能力。
再次调用此方法时,会创建另一个独立的引擎实例。

  • 类型

    (appId: string, config?: EngineConfig) => IRTCEngine
    
  • 注意

    • 通过分别调用 destroyEngine 销毁已经创建的多个引擎实例。
    • 每个引擎都将消耗一定系统资源,通常不建议同时创建多于 2 个引擎实例。
  • 参数

    • appId

      类型: string

      每个应用的唯一标识符,由 RTC 控制台随机生成的。不同的 AppId 生成的实例在 RTC 中进行音视频通话完全独立,无法互通。

    • config

      类型: EngineConfig | undefined

      引擎级的设置项。例如,是否开启自动播放。

  • 返回值

    类型: IRTCEngine

    创建成功后返回一个可用的 IRTCEngine 实例

destroyEngine

手动销毁通过 createEngine 所创建的引擎对象。

  • 类型

    (engine: IRTCEngine) => void
    
  • 注意

    • 请确保与需要销毁的相关的业务场景全部结束后,才调用此方法。
    • 本方法为阻塞调用,会阻塞当前线程直到 SDK 彻底完成退出逻辑,因而需要注意不要在回调线程中直接调用本方法,也需要注意不要在回调方法中等待主线程的执行,而同时在主线程调用本方法,从而造成死锁
  • 参数

    • engine

      类型: IRTCEngine

      销毁所有和此 IRTCEngine 实例相关的内存,并且停止与媒体服务器的任何交互。

getSdkVersion

获取 SDK 当前的版本号。

  • 类型

    () => string
    
  • 返回值

    类型: string

    SDK 当前的版本号

enumerateDevices

枚举可用的媒体输入和输出设备,比如麦克风、摄像头、耳机等。
可以通过该方法获取设备的 deviceId, 用于在 setAudioPlaybackDevice、startVideoCapture、startAudioCapture 方法中指定采集/播放设备。

  • 类型

    () => Promise<MediaDeviceInfo[]>
    
  • 注意

    浏览器只有在已经获得设备权限时,才能准确获取设备信息。建议通过 enableDevices 访问授权后调用本接口。

  • 返回值

    类型: Promise<MediaDeviceInfo[]>

    媒体设备列表。参看 MediaDeviceInfo。

enableDevices

向用户获取设备权限

  • 类型

    (options?: { video: boolean; audio: boolean;}) => Promise<{ video: boolean; audio: boolean; videoExceptionError?: DOMException; audioExceptionError?: DOMException;}>
    
  • 参数

    • options

      类型: { video: boolean; audio: boolean; } | undefined

      需要获取权限的设备类型

      • 成员

        名称类型描述
        videoboolean视频设备
        audioboolean音频设备
  • 返回值

    类型: Promise<{ video: boolean; audio: boolean; videoExceptionError?: DOMException; audioExceptionError?: DOMException; }>

    • video: boolean 是否获得视频设备权限
    • audio: boolean 是否获得音频设备权限
    • videoExceptionError?: DOMException 获取视频设备权限报错信息
    • audioExceptionError?: DOMException 获取音频设备权限报错信息

enumerateAudioCaptureDevices

该方法枚举可用的麦克风。
可以通过该方法获取设备的 deviceId, 用于在 startAudioCapture、setAudioCaptureDevice 方法中指定使用的麦克风设备。

  • 类型

    () => Promise<MediaDeviceInfo[]>
    
  • 注意

    浏览器只有在已经获得设备权限时,才能准确获取设备信息。建议通过 enableDevices 访问授权后调用本接口。

  • 返回值

    类型: Promise<MediaDeviceInfo[]>

    所有的麦克风设备列表。参看 MediaDeviceInfo。

enumerateVideoCaptureDevices

该方法枚举可用的摄像头等。
可以通过该方法获取设备的 deviceId, 用于在 startVideoCapture、setVideoCaptureDevice 方法中指定使用的摄像头设备。

  • 类型

    () => Promise<MediaDeviceInfo[]>
    
  • 注意

    浏览器只有在已经获得设备权限时,才能准确获取设备信息。建议通过 enableDevices 访问授权后调用本接口。

  • 返回值

    类型: Promise<MediaDeviceInfo[]>

    所有的摄像头设备列表。参看 MediaDeviceInfo。

enumerateAudioPlaybackDevices

该方法枚举可用的音频播放设备,例如耳机、音箱等。
可以通过该方法获取设备的 deviceId, 可用于 setAudioPlaybackDevice 方法中指定音频播放设备。

  • 类型

    () => Promise<MediaDeviceInfo[]>
    
  • 注意

    浏览器只有在已经获得设备权限时,才能准确获取设备信息。建议通过 enableDevices 访问授权后调用本接口。

  • 返回值

    类型: Promise<MediaDeviceInfo[]>

    所有的音频播放设备列表。参看 MediaDeviceInfo。

isSupported

浏览器是否支持

  • 类型

    () => Promise<boolean>
    
  • 返回值

    类型: Promise<boolean>

    • True: 支持
    • False:不支持

getSupportedCodecs

获取当前浏览器支持的编解码类型。
若你已开通 vp8 业务,可以在进房前调用该接口查看当前浏览器是否支持 vp8 编码类型

  • 类型

    () => Promise<string[]>
    
  • 返回值

    类型: Promise<string[]>

    当前浏览器支持的编解码类型

setLogConfig

配置本地缓存的日志输出级别, 以及可使用的最大缓存空间。

  • 类型

    ({ logLevel, LogfileSize, }: { logLevel?: 'none' | 'error' | 'warning' | 'info' | 'trace'; LogfileSize?: number;}) => void
    
  • 注意

    本方法必须在调用 createEngine 之前调用。若在 createEngine 之后调用,则在 destroyEngine 后的下一次 createEngine 后生效。

  • 参数

    • {
      logLevel,
      LogfileSize,
      }

      类型: { logLevel?: "none" | "error" | "warning" | "info" | "trace" | undefined; LogfileSize?: number | undefined; }

      • 成员

        名称类型描述
        logLevel"none" | "error" | "warning" | "info" | "trace" | undefined本地缓存的日志输出等级。
        • none: 不输出日志。(默认值)
        • error: 错误。
        • warning: 警告。
        • info: 信息。
        • trace: 跟踪。
        LogfileSizenumber | undefined日志可使用的最大缓存空间,单位为 MB。取值范围为 1~100 MB,默认值为 10 MB。

downloadLog

下载本地缓存生成文件。

  • 类型

    (key?: string) => void
    
  • 参数

    • key

      类型: string | undefined

      本地缓存的 key。若为空则下载当前缓存中的日志。

getElectronScreenSources

在 Electron 框架下使用屏幕共享功能时,返回屏幕共享源列表。

AudioMixingManager

类型: interface

  • API
方法描述
startAudioMixing开启混音
stopAudioMixing停止播放音频文件
pauseAudioMixing暂停播放音频文件
resumeAudioMixing恢复播放音频文件
preloadAudioMixing预加载指定音频文件到内存中
unloadAudioMixing卸载指定音频文件
setAudioMixingVolume调节音频文件混音的音量大小。
getAudioMixingVolume获取音频文件的音量
getAudioMixingDuration获取音频文件时长
getAudioMixingCurrentPosition获取音频文件播放进度
setAudioMixingPosition设置音频文件的起始播放位置
setAudioFrameCallback开关混音音频帧 PCM 数据回调。
enableAudioMixingBuffer启动 PCM 音频数据混音
disableAudioMixingBuffer关闭 PCM 混音
pushAudioMixingBuffer推送 PCM 音频数据用于混音

startAudioMixing

开启混音

  • 类型

    (id: number, filePath: string, options: MixOption) => Promise<void>
    
  • 注意

    • 如果已经通过 preloadAudioMixing 加载音效,确保此处的 ID 与上次调用 preloadAudioMixing 设置的 ID 相同。
    • 如果使用相同的 ID 重复调用本方法,前一次混音会停止,后一次混音开始
    • 开始播放音频文件后,可以调用 stopAudioMixing 方法停止播放音频文件。
    • 本方法的混音数据来源于外部文件,而 enableAudioMixingBuffer 的混音数据来源于外部缓存且音频格式为 PCM,这两种混音方式可以共存。
  • 参数

    • id

      类型: number

      混音 ID。
      混音 ID 用于标识混音,请保证混音 ID 唯一性。

    • filePath

      类型: string

      指定需要混音的音频文件的绝对路径,支持音频文件格式有: mp3,aac等

    • options

      类型: MixOption

      混音配置
      可以设置混音的播放次数、是否本地播放混音、以及是否将混音发送至远端

  • 返回值

    类型: Promise<void>

    LOAD_RESOURCES_FAILED: 资源加载失败。请传入正确的资源路径。

stopAudioMixing

停止播放音频文件

  • 类型

    (id: number) => void
    
  • 注意

    • 调用 startAudioMixing 方法开始播放音频文件后,可以调用本方法停止播放音频文件。
    • 调用本方法停止播放音频文件后,该音频文件会被自动卸载。
  • 参数

    • id

      类型: number

      混音 ID

pauseAudioMixing

暂停播放音频文件

  • 类型

    (id: number) => void
    
  • 注意

    • 调用 startAudioMixing 方法开始播放音频文件后,可以通过调用本方法暂停播放音频文件。
    • 调用本方法暂停播放音频文件后,可调用 resumeAudioMixing 方法恢复播放及混音。
  • 参数

    • id

      类型: number

      混音 ID

resumeAudioMixing

恢复播放音频文件

  • 类型

    (id: number) => void
    
  • 注意

    调用 pauseAudioMixing 方法暂停播放音频文件后,可以通过调用本方法恢复播放及混音。

  • 参数

    • id

      类型: number

      混音 ID

preloadAudioMixing

预加载指定音频文件到内存中

  • 类型

    (id: number, filePath: string) => Promise<void>
    
  • 注意

    • 需要频繁播放某个音频文件的时候,调用本方法预加载该文件,在播放的时候可以只加载一次该文件,减少 CPU 占用。
    • 本方法只是预加载指定音频文件,只有调用 startAudioMixing 方法才开始播放指定音频文件。
    • 调用本方法预加载的指定音频文件可以通过 unloadAudioMixing 卸载。
  • 参数

    • id

      类型: number

      混音 ID。用于标识混音,请保证混音 ID 唯一性。
      如果使用相同的 ID 重复调用本方法,后一次会覆盖前一次。
      如果先调用 startAudioMixing,再使用相同的 ID 调用本方法 ,会上一个混音停止,然后加载后一个混音。
      使用一个 ID 调用本方法预加载 A.mp3 后,如果需要使用相同的 ID 调用 startAudioMixing 播放 B.mp3,请先调用 unloadAudioMixing 卸载 A.mp3 ,否则会报错 AUDIO_MIXING_ERROR_LOAD_CONFLICT。

    • filePath

      类型: string

      用于混音文件路径。可以是本地文件的绝对路径,支持音频文件格式有: mp3,aac等

  • 返回值

    类型: Promise<void>

    LOAD_RESOURCES_FAILED: 资源加载失败。请传入正确的资源路径。

unloadAudioMixing

卸载指定音频文件

  • 类型

    (id: number) => void
    
  • 参数

    • id

      类型: number

      混音 ID

setAudioMixingVolume

调节音频文件混音的音量大小。

  • 类型

    (id: number, volume: number) => void
    
  • 参数

    • id

      类型: number

      混音 ID

    • volume

      类型: number

      混音音量相对原音量的比值。范围为 [0, 400],建议范围是 [0, 100]。

  • 0:静音
  • 100:原始音量(默认值)
  • 400: 最大可调音量 (自带溢出保护)

getAudioMixingVolume

获取音频文件的音量

  • 类型

    (id: number) => number
    
  • 参数

    • id

      类型: number

      混音 ID

  • 返回值

    类型: number

    • 0: 获取失败
    • >0: 成功,音量值

getAudioMixingDuration

获取音频文件时长

  • 类型

    (id: number) => number
    
  • 注意

    调用本方法获取音频文件时长前,需要先调用 preloadAudioMixing 或 startAudioMixing。

  • 参数

    • id

      类型: number

      混音 ID

  • 返回值

    类型: number

    • > 0: 成功, 音频文件时长,单位为毫秒。
    • < 0: 失败

getAudioMixingCurrentPosition

获取音频文件播放进度

  • 类型

    (id: number) => number
    
  • 注意

    调用本方法获取音频文件播放进度前,需要先调用 startAudioMixing 开始播放音频文件。

  • 参数

    • id

      类型: number

      混音 ID

  • 返回值

    类型: number

    • > 0: 成功, 音频文件播放进度,单位为毫秒。
    • < 0: 失败

setAudioMixingPosition

设置音频文件的起始播放位置

  • 类型

    (id: number, position: number) => void
    
  • 注意

    • 调用本方法你可以根据实际情况从指定的位置播放音频文件,无需从头到尾完整播放一个音频文件。
    • 调用本方法设置音频文件起始播放位置前,需要先调用 startAudioMixing 开始播放音频文件。
  • 参数

    • id

      类型: number

      混音 ID

    • position

      类型: number

      音频文件起始播放位置,单位为毫秒。
      你可以通过 getAudioMixingDuration 获取音频文件总时长,position 的值不得大于音频文件总时长。

setAudioFrameCallback

开关混音音频帧 PCM 数据回调。

  • 类型

    (id: number, callback?: ((data: AudioFrameData) => void) | undefined, frameSize?: number) => void
    
  • 参数

    • id

      类型: number

      混音 ID
      SDK 将在该混音开启后开始回调音频数据。

    • callback

      类型: ((data: AudioFrameData) => void) | undefined

      接收音频数据的回调函数,为空表示关闭数据回调。
      用户断网时,音频数据为 0。

    • frameSize

      类型: number | undefined

      每个音频帧包含的采样点数。frameSize 越大,每次回调的音频数据越多,回调间隔越长。
      可设置为 256, 512, 1024, 2048, 4096, 8192, 16384。如无特殊需求,建议使用默认值 4096。

enableAudioMixingBuffer

启动 PCM 音频数据混音

  • 类型

    (type: AudioMixingType) => void
    
  • 注意

  • 参数

    • type

      类型: AudioMixingType

      混音类型。是否本地播放、以及是否发送到远端

disableAudioMixingBuffer

关闭 PCM 混音

  • 类型

    () => void
    

pushAudioMixingBuffer

推送 PCM 音频数据用于混音

  • 类型

    (buffer: AudioBuffer) => void
    
  • 注意

    调用该方法前,须通过 enableAudioMixingBuffer 启动外部音频流混音。

  • 参数

最近更新时间:2026.09.04 10:34:56
这个页面对您有帮助吗?
有用
有用
无用
无用