IAudioMixingManager

成员方法

名称 类型 描述
startAudioMixing (id: number, filePath: string, options: MixOption) => Promise<void> 开启混音
stopAudioMixing (id: number) => void 停止播放音频文件
pauseAudioMixing (id: number) => void 暂停播放音频文件
resumeAudioMixing (id: number) => void 恢复播放音频文件
preloadAudioMixing (id: number, filePath: string) => Promise<void> 预加载指定音频文件到内存中
unloadAudioMixing (id: number) => void 卸载指定音频文件
setAudioMixingVolume (id: number, volume: number) => void 调节混音的音量大小,包括音频文件混音和 PCM 混音。
getAudioMixingVolume (id: number) => number 获取音频文件的音量
getAudioMixingDuration (id: number) => number 获取音频文件时长
getAudioMixingCurrentPosition (id: number) => number 获取音频文件播放进度
setAudioMixingPosition (id: number, position: number) => void 设置音频文件的起始播放位置
enableAudioMixingBuffer (type: AudioMixingType) => void 启动 PCM 音频数据混音
disableAudioMixingBuffer () => void 关闭 PCM 混音
pushAudioMixingBuffer (buffer: AudioBuffer) => void 推送 PCM 音频数据用于混音

方法详情

startAudioMixing

开启混音

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

参数

名称 类型 必选 默认值 描述
id number 是 混音 ID

混音 ID 用于标识混音,请保证混音 ID 唯一性。
filePath string 是 指定需要混音的音频文件的绝对路径,支持音频文件格式有: mp3,aac等
options MixOption 是 混音配置

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

返回值

类型: Promise<void>

注意

stopAudioMixing

停止播放音频文件

(id: number) => void

参数

名称 类型 必选 默认值 描述
id number 是 混音 ID

注意

pauseAudioMixing

暂停播放音频文件

(id: number) => void

参数

名称 类型 必选 默认值 描述
id number 是 混音 ID

注意

resumeAudioMixing

恢复播放音频文件

(id: number) => void

参数

名称 类型 必选 默认值 描述
id number 是 混音 ID

注意

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

preloadAudioMixing

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

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

参数

名称 类型 必选 默认值 描述
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>

注意

unloadAudioMixing

卸载指定音频文件

(id: number) => void

参数

名称 类型 必选 默认值 描述
id number 是 混音 ID

setAudioMixingVolume

调节混音的音量大小,包括音频文件混音和 PCM 混音。

(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


getAudioMixingDuration

获取音频文件时长

(id: number) => number

参数

名称 类型 必选 默认值 描述
id number 是 混音 ID

返回值

类型: number


注意

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

getAudioMixingCurrentPosition

获取音频文件播放进度

(id: number) => number

参数

名称 类型 必选 默认值 描述
id number 是 混音 ID

返回值

类型: number


注意

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

setAudioMixingPosition

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

(id: number, position: number) => void

参数

名称 类型 必选 默认值 描述
id number 是 混音 ID
position number 是 音频文件起始播放位置,单位为毫秒。

你可以通过 getAudioMixingDuration 获取音频文件总时长,position 的值不得大于音频文件总时长。

注意

enableAudioMixingBuffer

启动 PCM 音频数据混音

(type: AudioMixingType) => void

参数

名称 类型 必选 默认值 描述
type AudioMixingType 是 混音类型。是否本地播放、以及是否发送到远端

注意

disableAudioMixingBuffer

关闭 PCM 混音

() => void

pushAudioMixingBuffer

推送 PCM 音频数据用于混音

(buffer: AudioBuffer) => void

参数

名称 类型 必选 默认值 描述
buffer AudioBuffer 是 音频缓冲池,详见浏览器文档

注意

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

IRTCEngine

成员方法

名称 类型 描述
joinRoom (token: string \| null, roomId: string, userInfo: UserInfo, roomConfig: RoomConfig) => Promise<void> 加入房间。

调用此方法加入房间,同房间内其他用户进行音视频通话。
leaveRoom () => void 离开房间。

用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
destroy () => void 销毁 createEngine 所创建引擎实例,并释放所有相关资源。
publish () => Promise<void> 在当前所在房间内手动开始发布本地音视频流
unpublish () => Promise<void> 在当前所在房间内停止发布本地音视频流。
subscribeUserStream (userId: string, mediaType: SubscribeMediaType, streamType?: StreamIndex, configure?: SubscribeVideoConfig) => Promise<void> 订阅房间内指定的远端音视频流。

无论自动订阅还是手动订阅模式,你都可以调用此方法按需订阅房间中的音视频流。

该方法也可用于更新已经订阅的流的属性、媒体类型等配置。
unSubscribe (userId: string, isScreen: boolean) => Promise<void> 停止订阅指定的房间内远端音视频流。
无论自动订阅还是手动订阅模式,你都可以调用此方法取消已订阅的音视频流。
updateToken (token: string) => void 更新 Token。

用于加入房间的 Token 有一定的有效期。当 Token 过期时,需要调用此方法更新房间的 Token 信息。
switchMicrophone (deviceId: string) => Promise<void> 切换内部采集时使用的麦克风
switchCamera (deviceId: string) => Promise<void> 切换内部采集时使用的摄像头

默认摄像头由浏览器指定。
startVideoCapture (deviceId?: string) => Promise<void> 立即开启内部视频采集。默认为关闭状态。

内部视频采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
发布流后调用该方法,房间中的其他用户会收到 onUserStartVideoCapture 的回调。
stopVideoCapture () => Promise<void> 关闭内部视频采集。默认为关闭状态。

内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。

发布流后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。
startAudioCapture (deviceId?: string) => Promise<void> 立即开启内部音频采集。默认为关闭状态。

内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
发布流后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。
stopAudioCapture () => Promise<void> 立即关闭内部音频采集。默认为关闭状态。

内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
调用该方法,本地用户会收到 onUserStopAudioCapture 的回调。
startScreenCapture (screenConfig?: ScreenConfig) => Promise<void> 使用内部采集模块,采集当前屏幕视频流,用于共享。
stopScreenCapture () => Promise<void> 停止屏幕共享流内部采集。
publishScreen () => Promise<void> 发布本地屏幕共享流。
unpublishScreen () => Promise<void> 停止发布本地屏幕共享流。
setLocalVideoPlayer (streamIndex: StreamIndex, videoPlayerOption?: VideoPlayerOption) => HTMLVideoElement \| undefined 设置本地视频渲染时,使用的视图,并设置渲染模式。
调用本方法绑定视图以后,你可以通过 onPlayerEvent 来监听播放状态。
你可以通过再次调用本方法,并绑定空视图来解除绑定。
setRemoteVideoPlayer (streamIndex: StreamIndex, videoPlayerOption: VideoPlayerOption) => HTMLVideoElement \| undefined 设置远端视频渲染时,使用的视图,并设置渲染模式。
建议在收到 onVideoFirstFrameRendered 事件后,调用本方法对远端视频视图进行设置。
你可以通过再次调用本方法,并绑定空视图来解除绑定。
setLocalVideoMirrorType (mirrorType: MirrorType) => void 是否开启本地视频流镜像模式。
setAudioPlaybackDevice (deviceId: string) => Promise<void> 设置音频播放设备,例如扬声器或者耳机,默认使用扬声器。
play (userId: string) => Promise<void> 手动开启音视频流播放
进房时未开启自动播放或自动播放失败时,可以调用本方法手动开启音视频流播放。
muteLocalAudio (muteState: MuteState) => Promise<boolean> 控制本地音频流的发送状态:发送/不发送。

非隐身用户使用此方法后,房间中的其他用户会收到回调 onUserMuteAudio。
muteLocalVideo (muteState: MuteState) => Promise<boolean> 控制本地视频流的发送状态:发送/不发送。

无论你使用内部视频采集,还是自定义视频采集,你都应使用此接口启动发送本地视频流。

非隐身用户使用此方法后,房间中的其他用户会收到回调 onUserMuteAudio。
pauseAllSubscribedStream (mediaType: PauseResumeControlMediaType) => Promise<void> 暂停接收来自远端的媒体流。
resumeAllSubscribedStream (mediaType: PauseResumeControlMediaType) => Promise<void> 恢复接收来自远端的媒体流
sendUserMessage (userId: string, message: string) => Promise<unknown> \| undefined 给房间内指定的用户发送点对点文本消息。

若消息发送成功,则 userId 所指定的用户会收到 onUserMessageReceived 回调。
sendUserBinaryMessage (userId: string, message: ArrayBuffer) => Promise<unknown> 给房间内指定的用户发送点对点二进制消息。

若消息发送成功,则 userId 所指定的用户会收到 onUserBinaryMessageReceived 回调。
sendRoomMessage (message: string) => Promise<any> \| undefined 给房间内的所有其他用户群发文本消息。

若消息发送成功,同一房间内的其他用户会收到 onRoomMessageReceived 回调。
sendRoomBinaryMessage (message: ArrayBuffer) => Promise<any> \| undefined 给房间内的所有其他用户群发二进制消息。

若消息发送成功,同一房间内的其他用户会收到通过 onRoomBinaryMessageReceived 回调发送的消息
sendSEIMessage (streamIndex: StreamIndex, message: Uint8Array \| string, repeatCount: number) => void 在视频通信时,通过视频帧发送 SEI 数据。
setVideoEncoderConfig (streamIndex: StreamIndex, descriptions: VideoEncoderConfig[]) => Promise<void> 启动推送多路视频流,设置推送多路流时的各路视频参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
setAudioVolumeIndicationInterval (interval?: number) => void 开启/关闭音量提示。默认关闭。

开启音量提示后,将按设置的时间间隔,收到本地采集音量或订阅的远端用户的音量信息回调。
关于回调的具体信息,参看 onAudioVolumeIndication。
startLiveTranscoding (transcode: LiveTranscodeConfig) => Promise<void> 开启转推直播,并设置合流的视频视图布局和音频属性。
updateLiveTranscoding (transcode: Partial<LiveTranscodeConfig>) => Promise<void> 更新转推直播参数。
使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。
stopLiveTranscoding () => Promise<void> 停止转推直播。
关于启动转推直播,参看 startLiveTranscoding。
setBusinessId (businessId: string) => boolean 设置业务标识参数
可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。
setUserVisibility (enable: boolean) => Promise<void> 设置用户可见性。默认可见。
setExternalVideoTrack (index: StreamIndex, track: MediaStreamTrack) => Promise<void> 使用用户自定义的 videoTrack
请确保在你调用本方法前已调用 setVideoSourceType 设置为自定义视频采集。
setExternalAudioTrack (index: StreamIndex, track: MediaStreamTrack) => Promise<void> 使用用户自定义的 audioTrack
使用自定义的 audioTrack 之后, 再开启摄像头,或者切换摄像头时。SDK 会采集新的视频流替换自定义的 audioTrack
setVideoSourceType (index: StreamIndex, videoSourceType: VideoSourceType) => Promise<void> 设置向 SDK 输入的视频源
默认使用内部采集。内部采集指:使用 RTC SDK 内置的视频采集机制进行视频采集。
该方法进房前后均可调用。
当你已调用 startVideoCapture 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。
当你调用此方法开启自定义采集后,想要切换至内部采集,你必须先调用此方法关闭自定义采集,然后调用 startVideoCapture 手动开启内部采集
setAudioSourceType (index: StreamIndex, audioSourceType: AudioSourceType) => Promise<void> 设置向 SDK 输入的音频源
默认使用内部采集。内部采集指:使用 RTC SDK 内置的音频采集机制进行音频采集。
该方法进房前后均可调用。
当你已调用 startAudioCapture 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。
当你调用此方法开启自定义采集后,想要切换至内部采集,你必须先调用此方法关闭自定义采集,然后调用 startAudioCapture 手动开启内部采集
getAudioMixingManager () => IAudioMixingManager 混音管理接口创建
setAudioCaptureConfig (config: TrackCaptureConfig) => Promise<void> 设置 RTC SDK 内部采集时的音频采集参数。默认参数由浏览器决定。
setVideoCaptureConfig (config: TrackCaptureConfig) => Promise<void> 设置 RTC SDK 内部采集时的视频采集参数。默认参数由浏览器决定。
login (token: string \| null, userId: string) => Promise<void> 登录即时消息服务器
调用此方法登录后,可以向同 appID 下其他已登陆用户发送文本或二进制消息。
logout () => Promise<void> 调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。
updateLoginToken (token: string \| null) => Promise<void> 更新用户用于登录的 Token。Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。
getPeerOnlineStatus (userId: string) => Promise<USER_ONLINE_STATUS> 查询对端用户或本端用户的登录状态。在发送房间外消息之前,用户可以通过本接口了解对端用户是否登录,从而决定是否发送消息。也可以通过本接口查询自己查看自己的登录状态。
sendUserMessageOutsideRoom (userId: string, message: string) => Promise<any> 给房间外指定的用户发送文本消息(P2P)
sendUserBinaryMessageOutsideRoom (userId: string, message: ArrayBuffer) => Promise<any> 给房间外指定的用户发送二进制消息(P2P)
setServerParams (signature: string, url: string) => Promise<any> 设置业务服务器参数。调用 sendServerMessage 或 sendServerBinaryMessage 发送消息给业务服务器之前,必须需要设置有效签名和业务服务器地址。
sendServerMessage (message: string) => Promise<any> 客户端给业务服务器发送文本消息(P2Server)
sendServerBinaryMessage (message: ArrayBuffer) => Promise<any> 客户端给业务服务器发送二进制消息(P2Server)
defaultTranscoding () => Required<LiveTranscodeConfig> 获取合流转推默认参数。

方法详情

joinRoom

加入房间。

调用此方法加入房间,同房间内其他用户进行音视频通话。

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

参数

名称 类型 必选 默认值 描述
token string 是 动态密钥,用于对进房用户进行鉴权验证。

进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。

使用不同 AppID 的 App 是不能互通的。

请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。
roomId string 是 加入的房间 ID。

房间 ID 为长度在 128 字节以内的非空字符串,支持以下字符集范围:

1. 26 个大写字母 A ~ Z 。

2. 26 个小写字母 a ~ z 。

3. 10 个数字 0 ~ 9 。

4. 下划线 "_",at 符 "@",减号 "-"。
userInfo UserInfo 是 用户信息。
roomConfig RoomConfig 是 房间参数配置,设置房间模式以及是否自动发布或订阅流。

返回值

类型: Promise<void>

注意

leaveRoom

离开房间。

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

() => void

注意

destroy

销毁 createEngine 所创建引擎实例,并释放所有相关资源。

() => void

注意

publish

在当前所在房间内手动开始发布本地音视频流

() => Promise<void>

返回值

类型: Promise<void>

注意

unpublish

在当前所在房间内停止发布本地音视频流。

() => Promise<void>

返回值

类型: Promise<void>

注意

subscribeUserStream

订阅房间内指定的远端音视频流。

无论自动订阅还是手动订阅模式,你都可以调用此方法按需订阅房间中的音视频流。

该方法也可用于更新已经订阅的流的属性、媒体类型等配置。

(userId: string, mediaType: SubscribeMediaType, streamType?: StreamIndex, configure?: SubscribeVideoConfig) => Promise<void>

参数

名称 类型 必选 默认值 描述
userId string 是 指定订阅的远端发布音视频流的用户 ID。
mediaType SubscribeMediaType 是 媒体类型,用于指定订阅音/视频
streamType StreamIndex 否 流属性,用于指定订阅主流/屏幕流
configure SubscribeVideoConfig 否 视频订阅配置

返回值

类型: Promise<void>

注意

unSubscribe

停止订阅指定的房间内远端音视频流。
无论自动订阅还是手动订阅模式,你都可以调用此方法取消已订阅的音视频流。

(userId: string, isScreen: boolean) => Promise<void>

参数

名称 类型 必选 默认值 描述
userId string 是 指定需要取消订阅的远端音视频流的所属的用户的 ID 。
isScreen boolean 是 是否为屏幕共享流。

返回值

类型: Promise<void>

注意

无论是否订阅了指定的远端音视频流,都可以调用此方法。userId 无效或未订阅时,SDK 不会做任何处理,没有负面影响。

updateToken

更新 Token。

用于加入房间的 Token 有一定的有效期。当 Token 过期时,需要调用此方法更新房间的 Token 信息。

(token: string) => void

参数

名称 类型 必选 默认值 描述
token string 是 获取的新的有效 Token。

注意

switchMicrophone

切换内部采集时使用的麦克风

(deviceId: string) => Promise<void>

参数

名称 类型 必选 默认值 描述
deviceId string 是 设备 ID,你可以通过调用 getDevices 获取。

返回值

类型: Promise<void>

注意

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

switchCamera

切换内部采集时使用的摄像头

默认摄像头由浏览器指定。

(deviceId: string) => Promise<void>

参数

名称 类型 必选 默认值 描述
deviceId string 是 设备 ID,你可以通过调用 getDevices 获取。

返回值

类型: Promise<void>

注意

如果你正在使用相机进行视频采集,切换操作当即生效;如果相机未启动,后续开启内部采集时,会打开设定的摄像头。

startVideoCapture

立即开启内部视频采集。默认为关闭状态。

内部视频采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
发布流后调用该方法,房间中的其他用户会收到 onUserStartVideoCapture 的回调。

(deviceId?: string) => Promise<void>

参数

名称 类型 必选 默认值 描述
deviceId string 否 设备 ID,你可以通过调用 getDevices 获取。

返回值

类型: Promise<void>

注意

stopVideoCapture

关闭内部视频采集。默认为关闭状态。

内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。

发布流后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。

() => Promise<void>

返回值

类型: Promise<void>

注意

startAudioCapture

立即开启内部音频采集。默认为关闭状态。

内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
发布流后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。

(deviceId?: string) => Promise<void>

参数

名称 类型 必选 默认值 描述
deviceId string 否 设备 ID,你可以通过调用 getDevices 获取。

返回值

类型: Promise<void>

注意

stopAudioCapture

立即关闭内部音频采集。默认为关闭状态。

内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
调用该方法,本地用户会收到 onUserStopAudioCapture 的回调。

() => Promise<void>

返回值

类型: Promise<void>

注意

startScreenCapture

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

(screenConfig?: ScreenConfig) => Promise<void>

参数

名称 类型 必选 默认值 描述
screenConfig ScreenConfig 否 共享屏幕属性

返回值

类型: Promise<void>

注意

stopScreenCapture

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

() => Promise<void>

返回值

类型: Promise<void>

注意

调用该接口后远端会收到 onStreamRemove 事件

publishScreen

发布本地屏幕共享流。

() => Promise<void>

返回值

类型: Promise<void>

注意

unpublishScreen

停止发布本地屏幕共享流。

() => Promise<void>

返回值

类型: Promise<void>

注意

setLocalVideoPlayer

设置本地视频渲染时,使用的视图,并设置渲染模式。
调用本方法绑定视图以后,你可以通过 onPlayerEvent 来监听播放状态。
你可以通过再次调用本方法,并绑定空视图来解除绑定。

(streamIndex: StreamIndex, videoPlayerOption?: VideoPlayerOption) => HTMLVideoElement | undefined

参数

名称 类型 必选 默认值 描述
streamIndex StreamIndex 是 视频流属性
videoPlayerOption VideoPlayerOption 否 视图信息和渲染模式

返回值

类型: HTMLVideoElement | undefined

注意

你应在加入房间后,绑定视图。退出房间后,此设置仍然有效。

setRemoteVideoPlayer

设置远端视频渲染时,使用的视图,并设置渲染模式。
建议在收到 onVideoFirstFrameRendered 事件后,调用本方法对远端视频视图进行设置。
你可以通过再次调用本方法,并绑定空视图来解除绑定。

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

参数

名称 类型 必选 默认值 描述
streamIndex StreamIndex 是 视频流属性
videoPlayer VideoPlayerOption 是 视图信息和渲染模式

返回值

类型: HTMLVideoElement | undefined

注意

你应在加入房间后,绑定视图。退出房间后,此设置仍然有效。

setLocalVideoMirrorType

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

(mirrorType: MirrorType) => void

参数

名称 类型 必选 默认值 描述
mirrorType MirrorType 是 是否开启镜像模式

setAudioPlaybackDevice

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

(deviceId: string) => Promise<void>

参数

名称 类型 必选 默认值 描述
deviceId string 是 音频播放设备(扬声器或者耳机),你可以通过调用 getDevices

返回值

类型: Promise<void>

注意

进房前和进房后,均可调用此方法设置音频播放设备。

play

手动开启音视频流播放
进房时未开启自动播放或自动播放失败时,可以调用本方法手动开启音视频流播放。

(userId: string) => Promise<void>

参数

名称 类型 必选 默认值 描述
userId string 是

返回值

类型: Promise<void>

muteLocalAudio

控制本地音频流的发送状态:发送/不发送。

非隐身用户使用此方法后,房间中的其他用户会收到回调 onUserMuteAudio。

(muteState: MuteState) => Promise<boolean>

参数

名称 类型 必选 默认值 描述
muteState MuteState 是 发送状态,标识是否发送本地音频流

返回值

类型: Promise<boolean>

注意

muteLocalVideo

控制本地视频流的发送状态:发送/不发送。

无论你使用内部视频采集,还是自定义视频采集,你都应使用此接口启动发送本地视频流。

非隐身用户使用此方法后,房间中的其他用户会收到回调 onUserMuteAudio。

(muteState: MuteState) => Promise<boolean>

参数

名称 类型 必选 默认值 描述
muteState MuteState 是 发送状态,标识是否发送本地视频流

返回值

类型: Promise<boolean>

本地视频发送状态

注意

pauseAllSubscribedStream

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

(mediaType: PauseResumeControlMediaType) => Promise<void>

参数

名称 类型 必选 默认值 描述
mediaType PauseResumeControlMediaType 是 媒体流类型,指定需要暂停接收音频还是视频流

返回值

类型: Promise<void>

注意

resumeAllSubscribedStream

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

(mediaType: PauseResumeControlMediaType) => Promise<void>

参数

名称 类型 必选 默认值 描述
mediaType PauseResumeControlMediaType 是 媒体流类型,指定需要暂停接收音频还是视频流

返回值

类型: Promise<void>

注意

sendUserMessage

给房间内指定的用户发送点对点文本消息。

若消息发送成功,则 userId 所指定的用户会收到 onUserMessageReceived 回调。

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

参数

名称 类型 必选 默认值 描述
userId string 是 消息接收用户的 ID
message string 是 发送的文本消息内容

消息不超过 62KB。

返回值

类型: Promise<unknown> | undefined

注意

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

sendUserBinaryMessage

给房间内指定的用户发送点对点二进制消息。

若消息发送成功,则 userId 所指定的用户会收到 onUserBinaryMessageReceived 回调。

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

参数

名称 类型 必选 默认值 描述
userId string 是 消息接收用户的 ID
message ArrayBuffer 是 发送的二进制消息内容

消息不超过 62KB。

返回值

类型: Promise<unknown>

注意

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

sendRoomMessage

给房间内的所有其他用户群发文本消息。

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

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

参数

名称 类型 必选 默认值 描述
message string 是 发送的文本消息内容

消息不超过 62KB。

返回值

类型: Promise<any> | undefined

sendRoomBinaryMessage

给房间内的所有其他用户群发二进制消息。

若消息发送成功,同一房间内的其他用户会收到通过 onRoomBinaryMessageReceived 回调发送的消息

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

参数

名称 类型 必选 默认值 描述
message ArrayBuffer 是 发送的文本消息,不超过 62KB。

返回值

类型: Promise<any> | undefined

sendSEIMessage

在视频通信时,通过视频帧发送 SEI 数据。

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

参数

名称 类型 必选 默认值 描述
streamIndex StreamIndex 是 指定携带 SEI 信息的媒体流类型
message string \| Uint8Array 是 SEI 消息,不大于 4 kb。当消息为空或大小超限,终止发送,并收到相应的错误提示。
repeatCount number 是 消息发送重复次数。取值范围是 [0, 30]。调用此接口后,SEI 数据会添加到当前视频帧开始的连续 repeatCount 个视频帧中。

注意

setVideoEncoderConfig

启动推送多路视频流,设置推送多路流时的各路视频参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。

(streamIndex: StreamIndex, descriptions: VideoEncoderConfig[]) => Promise<void>

参数

名称 类型 必选 默认值 描述
streamIndex StreamIndex 是
descriptions VideoEncoderConfig[] 是 要推送的多路视频流参数

最多支持 3 路参数。当设置了多路参数时,码率必须是从大到小排列。

返回值

类型: Promise<void>

注意

setAudioVolumeIndicationInterval

开启/关闭音量提示。默认关闭。

开启音量提示后,将按设置的时间间隔,收到本地采集音量或订阅的远端用户的音量信息回调。
关于回调的具体信息,参看 onAudioVolumeIndication。

(interval?: number) => void

参数

名称 类型 必选 默认值 描述
interval number 否 收到音量提示回调的时间间隔

建议设置为大于等于 200 毫秒;小于 10 毫秒时,行为未定义。

+ ≤ 0:禁用音量提示功能。

+ > 0:启用音量提示功能,并设置收到音量提示回调的时间间隔。单位为毫秒。

startLiveTranscoding

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

(transcode: LiveTranscodeConfig) => Promise<void>

参数

名称 类型 必选 默认值 描述
transcode LiveTranscodeConfig 是 转推直播配置参数

返回值

类型: Promise<void>

注意

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

参数

名称 类型 必选 默认值 描述
businessId string 是 businessId 只是一个标签,颗粒度需要用户自定义。

返回值

类型: boolean

注意

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

setUserVisibility

设置用户可见性。默认可见。

(enable: boolean) => Promise<void>

参数

名称 类型 必选 默认值 描述
enable boolean 是 用户是否对房间内其他用户可见:

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

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

返回值

类型: Promise<void>

注意

setExternalVideoTrack

使用用户自定义的 videoTrack
请确保在你调用本方法前已调用 setVideoSourceType 设置为自定义视频采集。

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

参数

名称 类型 必选 默认值 描述
index StreamIndex 是 视频指针
track MediaStreamTrack 是 自定义的 videoTrack。详见 MediaStreamTrack。

返回值

类型: Promise<void>

setExternalAudioTrack

使用用户自定义的 audioTrack
使用自定义的 audioTrack 之后, 再开启摄像头,或者切换摄像头时。SDK 会采集新的视频流替换自定义的 audioTrack

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

参数

名称 类型 必选 默认值 描述
index StreamIndex 是 音频流指针
track MediaStreamTrack 是 自定义的 audioTrack

返回值

类型: Promise<void>

setVideoSourceType

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

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

参数

名称 类型 必选 默认值 描述
index StreamIndex 是 视频流指针
videoSourceType VideoSourceType 是 视频采集模块

返回值

类型: Promise<void>

setAudioSourceType

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

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

参数

名称 类型 必选 默认值 描述
index StreamIndex 是 音频流指针
audioSourceType AudioSourceType 是 音频采集模块

返回值

类型: Promise<void>

getAudioMixingManager

混音管理接口创建

() => IAudioMixingManager

返回值

类型: IAudioMixingManager

混音管理对象

setAudioCaptureConfig

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

(config: TrackCaptureConfig) => Promise<void>

参数

名称 类型 必选 默认值 描述
config TrackCaptureConfig 是 音频采集参数。例如,关闭浏览器音频 3A。支持传入设置的参数见 MediaTrackConstraints

返回值

类型: Promise<void>

setVideoCaptureConfig

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

(config: TrackCaptureConfig) => Promise<void>

参数

名称 类型 必选 默认值 描述
config TrackCaptureConfig 是 视频采集参数 支持传入设置的参数见 MediaTrackConstraints

返回值

类型: Promise<void>

login

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

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

参数

名称 类型 必选 默认值 描述
token string 是 动态密钥,用于对登录用户进行鉴权验证。

同进房相同,登录需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
userInfo string 是 用户信息。

返回值

类型: Promise<void>

注意

logout

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

() => Promise<void>

返回值

类型: Promise<void>

updateLoginToken

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

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

参数

名称 类型 必选 默认值 描述
token string 是 更新的动态密钥

返回值

类型: Promise<void>

注意

getPeerOnlineStatus

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

(userId: string) => Promise<USER_ONLINE_STATUS>

参数

名称 类型 必选 默认值 描述
userId string 是 需要查询的用户 ID

返回值

类型: Promise<USER_ONLINE_STATUS>

注意

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

sendUserMessageOutsideRoom

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

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

参数

名称 类型 必选 默认值 描述
userId string 是 消息接收用户的 ID
message string 是 发送的文本消息内容。消息不超过 62 KB。

返回值

类型: Promise<any>

注意

sendUserBinaryMessageOutsideRoom

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

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

参数

名称 类型 必选 默认值 描述
userId string 是 消息接收用户的 ID
message ArrayBuffer 是 发送的二进制消息内容。消息不超过 46 KB。

返回值

类型: Promise<any>

注意

setServerParams

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

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

参数

名称 类型 必选 默认值 描述
signature string 是 动态签名。业务服务器会使用该签名对请求进行鉴权验证。
url string 是 业务服务器的地址

返回值

类型: Promise<any>

注意

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

sendServerMessage

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

(message: string) => Promise<any>

参数

名称 类型 必选 默认值 描述
message string 是 发送的文本消息内容。消息不超过 62KB。

返回值

类型: Promise<any>

注意

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

sendServerBinaryMessage

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

(message: ArrayBuffer) => Promise<any>

参数

名称 类型 必选 默认值 描述
message ArrayBuffer 是 发送的二进制消息内容。消息不超过 46KB。

返回值

类型: Promise<any>

注意

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

defaultTranscoding

获取合流转推默认参数。

() => Required<LiveTranscodeConfig>

返回值

类型: Required<LiveTranscodeConfig>

转推直播默认音视频参数

IVERTC

成员方法

名称 类型 描述
enableDevices (options?: { video: boolean; audio: boolean;}) => Promise<{ video: boolean; audio: boolean;}> 向用户获取设备权限
getMicrophones () => Promise<RTCDevice[]> 该方法枚举可用的麦克风。
可以通过该方法获取设备的 deviceId, 可用于 startAudioCapture 方法中指定采集/播放设备。
getCameras () => Promise<RTCDevice[]> 该方法枚举可用的摄像头等。
可以通过该方法获取设备的 deviceId, 可用于 startVideoCapture 方法中指定采集/播放设备。
getAudioPlayback () => Promise<RTCDevice[]> 该方法枚举可用的音频输出设备,例如耳机、音箱等。
可以通过该方法获取设备的 deviceId, 可用于 setAudioPlaybackDevice 方法中指定采集/播放设备。
isSupported () => Promise<boolean> 浏览器是否支持
createEngine (appId: string) => IRTCEngine 创建引擎对象

你必须先使用此方法,以使用 RTC 提供的各种音视频能力。

再次调用此方法时,会创建另一个独立的引擎实例。
destroyEngine (engine: IRTCEngine) => void 手动销毁通过 createEngine 所创建的引擎对象。
getSdkVersion () => string 获取 SDK 当前的版本号。
getDevices () => Promise<RTCDevice[]> 该方法枚举可用的媒体输入和输出设备,比如麦克风、摄像头、耳机等。
可以通过该方法获取设备的 deviceId, 可用于 setAudioPlaybackDevice, startVideoCapture, startAudioCapture 方法中指定采集/播放设备。

方法详情

enableDevices

向用户获取设备权限

(options?: { video: boolean; audio: boolean;}) => Promise<{ video: boolean; audio: boolean;}>

参数

名称 类型 必选 默认值 描述
options { video: boolean; audio: boolean; } 否 需要获取权限的设备类型
  • video: boolean 视频设备
  • audio:boolean 音频设备
  • 返回值

    类型: Promise<{ video: boolean; audio: boolean; }>

  • `video: boolean` 视频设备
  • `audio:boolean` 音频设备
  • ### getMicrophones 该方法枚举可用的麦克风。
    可以通过该方法获取设备的 `deviceId`, 可用于 [startAudioCapture](#startaudiocapture) 方法中指定采集/播放设备。
    () => Promise<RTCDevice[]>
    
    **返回值** 类型: `Promise` 所有的麦克风设备列表。 ### getCameras 该方法枚举可用的摄像头等。
    可以通过该方法获取设备的 deviceId, 可用于 [startVideoCapture](#startvideocapture) 方法中指定采集/播放设备。
    () => Promise<RTCDevice[]>
    
    **返回值** 类型: `Promise` 所有的摄像头设备列表。 ### getAudioPlayback 该方法枚举可用的音频输出设备,例如耳机、音箱等。
    可以通过该方法获取设备的 deviceId, 可用于 [setAudioPlaybackDevice](#setaudioplaybackdevice) 方法中指定采集/播放设备。
    () => Promise<RTCDevice[]>
    
    **返回值** 类型: `Promise` 所有的设备列表。 ### isSupported 浏览器是否支持
    () => Promise<boolean>
    
    **返回值** 类型: `Promise` + `True`: 支持 + `False`:不支持 ### createEngine 创建引擎对象

    你必须先使用此方法,以使用 RTC 提供的各种音视频能力。

    再次调用此方法时,会创建另一个独立的引擎实例。
    (appId: string) => IRTCEngine
    
    **参数** | 名称 | 类型 | 必选 | 默认值 | 描述 | | -- | -- | -- | -- | -- | | appId | `string` | 是 | |

    每个应用的唯一标识符,由 RTC 控制台随机生成的。不同的 AppId 生成的实例在 RTC 中进行音视频通话完全独立,无法互通。
    | **返回值** 类型: `IRTCEngine` 创建成功后返回一个可用的 `IRTCEngine` 实例 **注意** + 通过分别调用 [destroyEngine](#destroyengine) 销毁已经创建的多个引擎实例。 + 每个引擎都将消耗一定系统资源,通常不建议同时创建多于 2 个引擎实例。 ### destroyEngine 手动销毁通过 [createEngine](#createengine) 所创建的引擎对象。
    (engine: IRTCEngine) => void
    
    **参数** | 名称 | 类型 | 必选 | 默认值 | 描述 | | -- | -- | -- | -- | -- | | engine | [`IRTCEngine`](#irtcengine) | 是 | | 销毁所有和此 `IRTCEngine` 实例相关的内存,并且停止与媒体服务器的任何交互。 | **注意** + 请确保与需要销毁的相关的业务场景全部结束后,才调用此方法
    + 本方法为阻塞调用,会阻塞当前线程直到 SDK 彻底完成退出逻辑,因而需要注意不要在回调线程中直接调用本方法,也需要注意不要在回调方法中等待主线程的执行,而同时在主线程调用本方法,从而造成死锁 ### getSdkVersion 获取 SDK 当前的版本号。
    () => string
    
    **返回值** 类型: `string` SDK 当前的版本号 ### getDevices 该方法枚举可用的媒体输入和输出设备,比如麦克风、摄像头、耳机等。
    可以通过该方法获取设备的 deviceId, 可用于 [setAudioPlaybackDevice](#setaudioplaybackdevice), [startVideoCapture](#startvideocapture), [startAudioCapture](#startaudiocapture) 方法中指定采集/播放设备。
    () => Promise<RTCDevice[]>
    
    **返回值** 类型: `Promise` 媒体设备列表。