类型: interface
| 方法 | 描述 |
|---|---|
| joinRoom | 加入房间。 调用此方法加入房间,同房间内其他用户进行音视频通话。 |
| 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 来监听播放状态。你可以通过再次调用本方法,并绑定空视图来解除绑定。 |
| setRemoteVideoPlayer | 设置远端视频渲染时使用的视图,并设置渲染模式。 建议在收到 onUserPublishStream/onUserPublishScreen 事件后,调用本方法对远端视频视图进行设置。 你可以通过再次调用本方法,并绑定空视图来解除绑定。 |
| setLocalVideoMirrorType | 是否开启本地视频流镜像模式。 |
| setAudioPlaybackDevice | 设置音频播放设备,例如扬声器或者耳机,默认使用扬声器。 |
| play | 手动开启音视频流播放 |
| pauseAllSubscribedStream | 暂停接收来自远端的媒体流。 |
| resumeAllSubscribedStream | 恢复接收来自远端的媒体流 |
| sendUserMessage | 给房间内指定的用户发送点对点文本消息。 若消息发送成功,则 userId 所指定的用户会收到 onUserMessageReceived 回调。 |
| sendUserBinaryMessage | 给房间内指定的用户发送点对点二进制消息。 若消息发送成功,则 userId 所指定的用户会收到 onUserBinaryMessageReceived 回调。 |
| sendRoomMessage | 给房间内的所有其他用户群发文本消息。 若消息发送成功,同一房间内的其他用户会收到 onRoomMessageReceived 回调。 |
| sendRoomBinaryMessage | 给房间内的所有其他用户群发二进制消息。 若消息发送成功,同一房间内的其他用户会收到通过 onRoomBinaryMessageReceived 回调发送的消息 |
| sendSEIMessage | 通过视频帧发送 SEI 数据。 在视频通话场景下,SEI 数据会随视频帧发送;在语音通话场景下,SDK 会自动生成一路 16px × 16px 的黑帧视频流用来发送 SEI 数据。 |
| setVideoEncoderConfig | 在视频发布端设置发布的视频流参数。 |
| setScreenEncoderConfig | 设置共享屏幕的视频编码参数,同时对视频采集生效。 若设置的参数浏览器不支持,RTC SDK 按照浏览器支持的参数范围进行采集和编码,并通过回调 onLocalVideoSizeChanged 通知采集的实际参数。 |
| setRemoteVideoConfig | 设置期望订阅的远端视频流的参数。 |
| enableSimulcastMode | 在视频发布端设置摄像头视频流的大小流模式。 |
| 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 | 混音管理接口创建 |
| setAudioCaptureConfig | 设置 RTC SDK 内部采集时的音频采集参数。默认参数由浏览器决定。 |
| login | 登录即时消息服务器。 调用此方法登录后,可以向同 appID 下其他已登录用户发送文本或二进制消息。 |
| logout | 调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。 |
| updateLoginToken | 更新用户用于登录的 Token。Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。 |
| getPeerOnlineStatus | 查询对端用户或本端用户的登录状态。在发送房间外消息之前,用户可以通过本接口了解对端用户是否登录,从而决定是否发送消息。也可以通过本接口查询自己查看自己的登录状态。 |
| sendUserMessageOutsideRoom | 给房间外指定的用户发送文本消息(P2P) |
| sendUserBinaryMessageOutsideRoom | 给房间外指定的用户发送二进制消息(P2P) |
| setServerParams | 设置业务服务器参数。调用 sendServerMessage 或 sendServerBinaryMessage 发送消息给业务服务器之前,必须需要设置有效签名和业务服务器地址。 |
| sendServerMessage | 客户端给业务服务器发送文本消息(P2Server) |
| sendServerBinaryMessage | 客户端给业务服务器发送二进制消息(P2Server) |
| startCloudProxy | 开启云代理 |
| stopCloudProxy | 关闭云代理 |
| startPushPublicStream | 发布一路公共流。 |
| updatePublicStreamParam | 更新公共流参数。 调用 startPushPublicStream 发布一路公共流。 |
| stopPushPublicStream | 停止发布公共流。 调用 startPushPublicStream 发布一路公共流。 |
| startPlayPublicStream | 订阅指定公共流。 无论用户是否在房间内,都可以调用本接口获取和播放指定的公共流。 |
| stopPlayPublicStream | 取消订阅指定公共流。 关于订阅公共流,查看 startPlayPublicStream。 |
| setPublicStreamVideoPlayer | 为指定公共流设置使用的视图和渲染模式。 |
| setDummyCaptureImagePath | 停止内部摄像头采集时,使用静态图片填充本地推送的视频流。 |
| defaultTranscoding | 获取合流转推默认参数。 |
| setSubscribeFallbackOption | 设置订阅的音视频流的回退选项。 回退指在网络不佳时允许订阅流进行降级或只订阅音频流,以保证通话流畅。 |
| setRemoteUserPriority | 设置用户优先级。 该方法与 setSubscribeFallbackOption 搭配使用。 开启回退后,会优先保证收到的高优先级用户的流的质量。 |
| startAudioPlaybackDeviceTest | 启动音频播放设备检测。测试启动后,循环播放指定的音频文件,同时将通过 onAudioPlaybackDeviceTestVolume 回调播放时的音量信息。 |
| stopAudioPlaybackDeviceTest | 停止音频播放设备测试。 |
| startAudioDeviceRecordTest | 开始音频采集设备和音频播放设备测试。 建议提前调用 enableAudioPropertiesReport 注册音量提示回调,测试开始后,音频设备开始采集本地声音,可以通过 onLocalAudioPropertiesReport 获取采集音量。 |
| stopAudioDeviceRecordAndPlayTest | 停止采集本地音频,并开始播放采集到的声音。录音播放完毕后,设备测试流程结束。 调用 startAudioDeviceRecordTest 30s 内调用本接口来停止采集并开始播放此前采集到的声音。 |
| stopAudioDevicePlayTest | 停止由调用 startAudioDeviceRecordTest 开始的音频播放设备测试。 在音频播放设备测试自动结束前,可调用本接口停止音频采集与播放测试。 |
| setAudioProfile | 设置音质档位 |
| getLocalStreamTrack | 获取本地用户的音频或者视频的 MediaStreamTrack。 |
| getRemoteStreamTrack | 获取已订阅的远端用户的音频或者视频的 MediaStreamTrack。 |
| getPublicStreamTrack | 获取已订阅的公共流的音频或者视频的 MediaStreamTrack。 |
| takeLocalSnapshot | 截取本地视频画面 |
| takeRemoteSnapshot | 截取远端视频画面 |
| registerExtension | 注册插件。 你可以通过插件实现基础美颜功能、虚拟背景功能、AI 降噪功能。 |
| startSubtitle | 识别或翻译房间内所有用户的语音,形成字幕。语音识别或翻译的结果会通过 onSubtitleMessageReceived 事件回调给你。 调用该方法后,你会收到 onSubtitleStateChanged 回调,通知字幕是否开启。 |
| stopSubtitle | 关闭字幕。 调用该方法后,你会收到 onSubtitleStateChanged 回调,通知字幕是否关闭。 |
| setRemoteStreamRenderSync | 设置远端音视频流是否同步渲染。 你可以通过关闭音视频同步,达到超低端到端延时的效果。 |
| setCaptureVolume | 调节音频采集音量。 |
| setPlaybackVolume | 调节本地播放的单个远端用户的音量。 |
| setPublicStreamVolume | 调节本地播放的公共流播放音量。 |
| startForwardStreamToRooms | 开始跨房间转发媒体流,示例代码可参看跨房间转发媒体流功能文档。 在调用 joinRoom 后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。 |
| updateForwardStreamToRooms | 更新跨房间媒体流转发信息。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。 |
| stopForwardStreamToRooms | 停止向所有目标房间转发媒体流。 |
| pauseForwardStreamToAllRooms | 暂停向所有目标房间转发媒体流。 调用本方法暂停向所有目标房间转发后,你可以调用 resumeForwardStreamToAllRooms 恢复转发。 |
| resumeForwardStreamToAllRooms | 恢复向所有目标房间转发媒体流。 |
| setAudioSelectionConfig | 设置本端发布流在音频选路中的优先级。 |
加入房间。
调用此方法加入房间,同房间内其他用户进行音视频通话。
类型
(token: string | null, roomId: string, userInfo: UserInfo, roomConfig?: RoomConfig) => Promise<void>
ts注意
DUPLICATE_LOGIN 错误。参数
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: 进房失败,具体错误原因请参看对应的 message。REPEAT_JOIN: 重复进房。ROOM_FORBIDDEN: 房间被封禁导致进房失败。USER_FORBIDDEN: 用户被封禁导致进房失败。离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
类型
(waitAck?: boolean) => Promise<void>
ts注意
参数
waitAck
类型: boolean | undefined
返回值
类型: Promise<void>
在当前所在房间内发布本地摄像头/麦克风采集的媒体流
类型
(mediaType: MediaType) => Promise<void>
ts注意
参数
mediaType
类型: MediaType
媒体流类型,用于指定发布音频/视频。
返回值
类型: Promise<void>
NO_PUBLISH_PERMISSION: 无发布权限,请先调用 setUserVisibility 将自身切换至可见后再发布流。TOKEN_NO_PUBLISH_PERMISSION: Token 无发布权限或发布权限过期,调用 updateToke 更新 Token 发布权限。PUBLISH_FAILED: 发布流失败,具体原因查看 message。停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中
类型
(mediaType: MediaType) => Promise<void>
ts注意
参数
mediaType
类型: MediaType
媒体流类型,用于指定停止发布音频/视频。
返回值
类型: Promise<void>
在当前所在房间内发布本地屏幕共享音视频流
类型
(mediaType: MediaType) => Promise<void>
ts注意
参数
mediaType
类型: MediaType
媒体流类型,用于指定发布屏幕音频/视频。
返回值
类型: Promise<void>
NO_PUBLISH_PERMISSION: 无发布权限,请先调用 setUserVisibility 将自身切换至可见后再发布流。TOKEN_NO_PUBLISH_PERMISSION: Token 无发布权限或发布权限过期,调用 updateToke 更新 Token 发布权限。PUBLISH_FAILED: 发布流失败,具体原因查看 message。停止将本地屏幕共享音视频流发布到当前所在房间中
类型
(mediaType: MediaType) => Promise<void>
ts注意
参数
mediaType
类型: MediaType
媒体流类型,用于指定停止发布屏幕音频/视频
返回值
类型: Promise<void>
订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。
类型
(userId: string, mediaType: MediaType) => Promise<void>
ts注意
你必须先通过 onUserPublishStream 回调获取当前房间里的远端摄像头音视频流信息,然后调用本方法按需订阅。
参数
userId
类型: string
指定订阅的远端发布音视频流的用户 ID。
mediaType
类型: MediaType
媒体流类型,用于指定订阅音频/视频。
返回值
类型: Promise<void>
STREAM_NOT_EXIST: 目标流不存在。请输入正确的 ID,或确认目标流在房间内。TOKEN_NO_SUBSCRIBE_PERMISSION: Token 无订阅权限或订阅权限过期,调用 updateToke 更新 Token 订阅权限。取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。
类型
(userId: string, mediaType: MediaType) => Promise<void>
ts参数
userId
类型: string
指定取消订阅的远端发布音视频流的用户 ID。
mediaType
类型: MediaType
媒体流类型,用于指定取消订阅音频/视频。
返回值
类型: Promise<void>
STREAM_NOT_EXIST: 目标流不存在。请输入正确的 ID,或确认目标流在房间内。
订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。
类型
(userId: string, mediaType: MediaType) => Promise<void>
ts注意
你必须先通过 onUserPublishScreen 回调获取当前房间里的远端屏幕流信息,然后调用本方法按需订阅。
参数
userId
类型: string
指定订阅的远端发布屏幕流的用户 ID。
mediaType
类型: MediaType
媒体流类型,用于指定订阅音频/视频。
返回值
类型: Promise<void>
STREAM_NOT_EXIST: 目标流不存在。请输入正确的 ID,或确认目标流在房间内。TOKEN_NO_SUBSCRIBE_PERMISSION: Token 无订阅权限或订阅权限过期,调用 updateToke 更新 Token 订阅权限。取消订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。
类型
(userId: string, mediaType: MediaType) => Promise<void>
ts参数
uid
类型: string
指定取消订阅的远端发布屏幕流的用户 ID。
type
类型: MediaType
媒体流类型,用于指定取消订阅音频/视频。
返回值
类型: Promise<void>
更新 Token。
用于加入房间的 Token 有一定的有效期。Token 过期前 30 秒将收到 onTokenWillExpire 回调,需要调用此方法更新房间的 Token 信息。
类型
(token: string) => Promise<void>
ts注意
参数
token
类型: string
获取的新的有效 Token。
返回值
类型: Promise<void>
UPDATE_TOKEN_WITH_INVALID_TOKEN: 传入的 Token 无效。UPDATE_TOKEN_BEFORE_JOIN: 不在房间内,请先调用 joinRoom 加入房间。设置内部采集时使用的麦克风。
类型
(deviceId: string) => Promise<void>
ts注意
如果设置时正在使用麦克风进行音频采集,切换操作当即生效;如果设置时未开启采集,则会在开启内部采集时打开设置的麦克风。
参数
deviceId
类型: string
设备 ID,可以通过调用 enumerateAudioCaptureDevices 获取设备列表。
返回值
类型: Promise<void>
设置内部采集时使用的摄像头。
类型
(deviceId: string) => Promise<void>
ts注意
"user" 来指定前置摄像头,可以通过设置 deviceId 为 "environment" 来指定后置摄像头。参数
deviceId
类型: string
设备 ID,可以通过调用 enumerateVideoCaptureDevices 获取设备列表。
返回值
类型: Promise<void>
开启内部视频采集。默认为关闭状态。
内部视频采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
可见用户进房后调用该方法,房间中的其他用户会收到 onUserStartVideoCapture 的回调。
类型
(deviceId?: string) => Promise<MediaTrackSettings>
ts注意
参数
deviceId
类型: string | undefined
设备 ID,你需在此传入采集视频的设备 ID,以免出现无画面或显示非所需画面等异常。你可以通过调用 enumerateDevices 获取设备列表。
返回值
类型: Promise<MediaTrackSettings>
实际生效的视频采集参数。参看 MediaTrackSettings。请关注其中的 frameRate, height, width 等值。
还可能返回如下错误码。
REPEAT_CAPTURE: 重复采集。GET_VIDEO_TRACK_FAILED: 采集视频失败,请确认是否有可用的采集设备,或是否被其他 App 占用。STREAM_TYPE_NOT_MATCH: 流类型不匹配。调用 setVideoSourceType 设置了自定义媒体源后,又调用内部采集相关的接口。关闭内部视频采集。
发布流后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。
类型
() => Promise<void>
ts注意
返回值
类型: Promise<void>
STREAM_TYPE_NOT_MATCH: 流类型不匹配。调用 setVideoSourceType 设置了自定义媒体源后,又调用内部采集相关的接口。
开启内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置采集机制进行音频采集。
可见用户进房后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。
类型
(deviceId?: string) => Promise<MediaTrackSettings>
ts注意
参数
deviceId
类型: string | undefined
设备 ID,你需在此传入采集音频的设备 ID,以免出现无声等异常。你可以通过调用 enumerateDevices 获取设备列表。
返回值
类型: Promise<MediaTrackSettings>
实际生效的音频采集参数。参看 MediaTrackSettings。
还可能返回如下错误码。
REPEAT_CAPTURE: 重复采集。GET_AUDIO_TRACK_FAILED: 采集音频失败,请确认是否有可用的采集设备,或是否被其他 App 占用。STREAM_TYPE_NOT_MATCH: 流类型不匹配。调用 setAudioSourceType 设置了自定义媒体源后,又调用内部采集相关的接口。立即关闭内部音频采集。
发布流后调用该方法,房间内的其他用户会收到 onUserStopAudioCapture 的回调。
类型
() => Promise<void>
ts注意
返回值
类型: Promise<void>
STREAM_TYPE_NOT_MATCH: 流类型不匹配。调用 setAudioSourceType 设置了自定义媒体源后,又调用内部采集相关的接口。
使用内部采集模块同时开启音视频采集。调用该方法,浏览器会同时请求麦克风和摄像头授权,用户只需授权一次。
可见用户进房后调用该方法,房间中的其他用户会收到 onUserStartVideoCapture 和 onUserStartAudioCapture 的回调。
类型
(optionsOrAudioDeviceId?: { audioDeviceId?: string; videoDeviceId?: string;} | string, videoDeviceId?: string) => Promise<{ audioTrackSettings: MediaTrackSettings; videoTrackSettings: MediaTrackSettings;}>
ts注意
参数
optionsOrAudioDeviceId
类型: string | { audioDeviceId?: string | undefined; videoDeviceId?: string | undefined; } | undefined
单参数使用时可以同时设置音视频设备 ID;双参数使用时为音频设备 ID。
成员
| 名称 | 类型 | 描述 |
|---|---|---|
| audioDeviceId | string | undefined | 音频设备 ID。 |
| videoDeviceId | string | 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 设置了自定义媒体源后,又调用内部采集相关的接口。使用内部采集模块,采集当前屏幕视频流,用于共享。
类型
(screenConfig?: ScreenConfig) => Promise<void>
ts注意
参数
screenConfig
类型: ScreenConfig | undefined
共享屏幕属性
返回值
类型: Promise<void>
GET_SCREEN_TRACK_FAILED: 采集屏幕共享失败。
停止屏幕共享流内部采集。
类型
() => Promise<void>
ts返回值
类型: Promise<void>
设置本地视频渲染时,使用的视图,并设置渲染模式。
调用本方法绑定视图以后,你可以通过 onPlayerEvent 来监听播放状态。
你可以通过再次调用本方法,并绑定空视图来解除绑定。
类型
(streamIndex: StreamIndex, videoPlayerOption?: Partial<Omit<VideoPlayerOption, 'rotation'>>) => HTMLVideoElement | undefined
ts注意
你应在加入房间后,绑定视图。退出房间后,此设置仍然有效。
参数
streamIndex
类型: StreamIndex
视频流属性
videoPlayerOption
类型: Partial<Omit<VideoPlayerOption, "rotation">> | undefined
视图信息和渲染模式
返回值
类型: HTMLVideoElement | undefined
设置远端视频渲染时使用的视图,并设置渲染模式。
建议在收到 onUserPublishStream/onUserPublishScreen 事件后,调用本方法对远端视频视图进行设置。
你可以通过再次调用本方法,并绑定空视图来解除绑定。
类型
(streamIndex: StreamIndex, videoPlayerOption: VideoPlayerOption) => HTMLVideoElement | undefined
ts注意
你应在加入房间后,绑定视图。退出房间后,此设置仍然有效。
参数
streamIndex
类型: StreamIndex
视频流属性。
videoPlayerOption
视图信息和渲染模式。4.56 版本起支持通过 rotation 参数设置远端视频渲染的旋转角度。
返回值
类型: HTMLVideoElement | undefined
是否开启本地视频流镜像模式。
类型
(mirrorType: MirrorType) => void
ts参数
mirrorType
类型: MirrorType
是否开启镜像模式
设置音频播放设备,例如扬声器或者耳机,默认使用扬声器。
类型
(deviceId: string) => Promise<void>
ts注意
进房前和进房后,均可调用此方法设置音频播放设备。
参数
deviceId
类型: string
音频播放设备(扬声器或者耳机)ID,你可以通过调用 enumerateDevices 获取。
返回值
类型: Promise<void>
INVALID_DEVICE_ID: 输入的设备 ID 无效。NOT_SUPPORTED: 浏览器不支持设置音频播放设备或测试音频采集/播放设备。手动开启音视频流播放
类型
(userId?: string, mediaType?: MediaType, streamIndex?: StreamIndex) => Promise<void>
ts参数
userId
类型: string | undefined
指定播放的流所属的用户 ID
不传参数代表指定为本地媒体流
mediaType
类型: MediaType | undefined
媒体流类型,用于指定发布音频/视频。
streamIndex
类型: StreamIndex | undefined
视频流属性
返回值
类型: Promise<void>
当音视频正常播放时调用本接口也将返回 Promise 对象
暂停接收来自远端的媒体流。
类型
(mediaType: MediaType) => Promise<void>
ts注意
参数
mediaType
类型: MediaType
媒体流类型,指定需要暂停接收音频还是视频流
返回值
类型: Promise<void>
恢复接收来自远端的媒体流
类型
(mediaType: MediaType) => Promise<void>
ts注意
参数
mediaType
类型: MediaType
媒体流类型,指定需要暂停接收音频还是视频流
返回值
类型: Promise<void>
给房间内指定的用户发送点对点文本消息。
若消息发送成功,则 userId 所指定的用户会收到 onUserMessageReceived 回调。
类型
(userId: string, message: string) => Promise<unknown> | undefined
ts注意
在发送房间内文本消息前,必须先调用 joinRoom 加入房间。
参数
userId
类型: string
消息接收用户的 ID
message
类型: string
发送的文本消息内容,消息不超过 64 KB。
返回值
类型: Promise<unknown> | undefined
USER_MESSAGE_TIMEOUT: 发送消息超时。USER_MESSAGE_BROKEN: 通道断开,发送失败。USER_MESSAGE_NO_RECEIVER: 找不到接收者,请检查传入的 userId 是否正确。USER_MESSAGE_NOT_JOIN: 消息发送方没有加入房间。USER_MESSAGE_UNKNOWN: 消息未知错误。给房间内指定的用户发送点对点二进制消息。
若消息发送成功,则 userId 所指定的用户会收到 onUserBinaryMessageReceived 回调。
类型
(userId: string, message: ArrayBuffer) => Promise<unknown>
ts注意
在发送房间内二进制消息前,必须先调用 joinRoom 加入房间。
参数
userId
类型: string
消息接收用户的 ID
message
类型: ArrayBuffer
发送的二进制消息内容,消息不超过 64 KB。
返回值
类型: Promise<unknown>
USER_MESSAGE_TIMEOUT: 发送消息超时。USER_MESSAGE_BROKEN: 通道断开,发送失败。USER_MESSAGE_NO_RECEIVER: 找不到接收者,请检查传入的 userId 是否正确。USER_MESSAGE_NOT_JOIN: 消息发送方没有加入房间。USER_MESSAGE_UNKNOWN: 消息未知错误。给房间内的所有其他用户群发文本消息。
若消息发送成功,同一房间内的其他用户会收到 onRoomMessageReceived 回调。
类型
(message: string) => Promise<any> | undefined
ts参数
message
类型: string
发送的文本消息内容,消息不超过 64 KB。
返回值
类型: Promise<any> | undefined
给房间内的所有其他用户群发二进制消息。
若消息发送成功,同一房间内的其他用户会收到通过 onRoomBinaryMessageReceived 回调发送的消息
类型
(message: ArrayBuffer) => Promise<any> | undefined
ts参数
message
类型: ArrayBuffer
发送的文本消息,不超过 64 KB。
返回值
类型: Promise<any> | undefined
通过视频帧发送 SEI 数据。
在视频通话场景下,SEI 数据会随视频帧发送;在语音通话场景下,SDK 会自动生成一路 16px × 16px 的黑帧视频流用来发送 SEI 数据。
类型
(streamIndex: StreamIndex, message: Uint8Array | string, repeatCount: number) => void
ts注意
AUDIO_AND_VIDEO。AUDIO_AND_VIDEO。参数
streamIndex
类型: StreamIndex
指定携带 SEI 信息的媒体流类型。语音通话场景下,建议将该值设为 STREAM_INDEX_MAIN。
message
类型: string | Uint8Array
SEI 消息,不大于 4 KB。当消息为空或大小超限,终止发送,并收到相应的错误提示。
repeatCount
类型: number
消息发送重复次数,SEI 数据会添加到当前视频帧开始的连续 repeatCount+1 个视频帧中。取值范围 [0, min{30, %{视频帧率}×2}],推荐范围 [2,4]。
在视频发布端设置发布的视频流参数。
类型
(descriptions: VideoEncoderConfig | VideoEncoderConfig[]) => Promise<void>
ts注意
参数
descriptions
类型: VideoEncoderConfig | VideoEncoderConfig[]
要推送的多路视频流的参数,所设置的分辨率是各路流的最大分辨率。
最多支持设置 3 路参数,超过 3 路时默认取前 3 路的值。
当设置了多路参数时,分辨率和帧率必须是从大到小排列。为了更好的兼容性,推荐设置的最大层级分辨率与其他层级分辨率比值为整数倍。
参数最大的一路流的分辨率大于等于 540P 时,支持发布 3 路流;在 270P(含)和 450P(含)之间时,支持发布 2 路流;在 180P 及以下时,开启发布多路流不生效。
返回值
类型: Promise<void>
设置共享屏幕的视频编码参数,同时对视频采集生效。
若设置的参数浏览器不支持,RTC SDK 按照浏览器支持的参数范围进行采集和编码,并通过回调 onLocalVideoSizeChanged 通知采集的实际参数。
类型
(description: ScreenEncoderConfig) => Promise<void>
ts注意
参数
description
共享屏幕的视频编码参数。
返回值
类型: Promise<void>
设置期望订阅的远端视频流的参数。
类型
(userId: string, remoteVideoConfig: RemoteVideoConfig) => Promise<void>
ts注意
roomConfig 中的 remoteVideoConfig 进行设置。参数
userId
类型: string
期望配置订阅参数的远端视频流发布用户的 ID。
remoteVideoConfig
期望配置的远端视频流参数。
返回值
类型: Promise<void>
在视频发布端设置摄像头视频流的大小流模式。
类型
(enabled: boolean) => boolean
ts注意
参数
enabled
类型: boolean
是否开启大小流。
返回值
类型: boolean
true:设置成功。false:设置失败。启用音频信息提示。
类型
(config?: AudioPropertiesConfig) => void
ts注意
开启提示后,你可以:
参数
config
类型: AudioPropertiesConfig | undefined
音频信息提示相关设置
开启转推直播,并设置合流的视频视图布局和音频属性。
类型
(transcode: LiveTranscodeConfig) => Promise<void>
ts注意
参数
transcode
转推直播配置参数。
返回值
类型: Promise<void>
更新转推直播参数。
使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。
类型
(transcode: Partial<LiveTranscodeConfig>) => Promise<void>
ts参数
transcode
类型: Partial<LiveTranscodeConfig>
转推直播配置参数。除特殊说明外,均支持过程中更新。
返回值
类型: Promise<void>
停止转推直播。
关于启动转推直播,参看 startLiveTranscoding。
类型
() => Promise<void>
ts返回值
类型: Promise<void>
设置业务标识参数
可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。
类型
(businessId: string) => boolean
ts注意
参数
businessId
类型: string
businessId 只是一个标签,颗粒度需要用户自定义。
返回值
类型: boolean
true:设置成功。false:设置失败。设置用户可见性。未调用该接口前,本地用户默认对他人可见。
默认情况下,一个 RTC 房间最多同时容纳 50 名可见用户,最多 30 人可同时上麦。更多信息参看用户和媒体流上限。
类型
(enable: boolean) => Promise<void>
ts注意
false 切换至 true 时,房间内其他用户会收到 onUserJoined 回调通知;true 切换至 false 时,房间内其他用户会收到 onUserLeave 回调通知。参数
enable
类型: boolean
用户是否对房间内其他用户可见。
true: 可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。false: 不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。返回值
类型: Promise<void>
使用用户自定义的 videoTrack。
调用本方法前必须先调用 setVideoSourceType 设置为自定义视频采集。
类型
(index: StreamIndex, track: MediaStreamTrack) => Promise<void>
ts参数
index
类型: StreamIndex
视频指针。
track
类型: MediaStreamTrack
自定义的 videoTrack,参看 MediaStreamTrack。
返回值
类型: Promise<void>
使用用户自定义的 audioTrack。
调用本方法前必须先调用 setAudioSourceType 设置为自定义音频采集。
类型
(index: StreamIndex, track: MediaStreamTrack) => Promise<void>
ts参数
index
类型: StreamIndex
音频流指针
track
类型: MediaStreamTrack
自定义的 audioTrack,参看 MediaStreamTrack。
返回值
类型: Promise<void>
设置向 SDK 输入的视频源
默认使用内部采集。内部采集指:使用 RTC SDK 内置的视频采集机制进行视频采集。
该方法进房前后均可调用。
当你已调用 startVideoCapture 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。
当你调用此方法开启自定义采集,再调用此方法切换至内部采集时,必须再调用 startVideoCapture 手动开启内部采集。
类型
(index: StreamIndex, videoSourceType: VideoSourceType) => Promise<void>
ts参数
index
类型: StreamIndex
视频流指针
videoSourceType
类型: VideoSourceType
视频采集模块
返回值
类型: Promise<void>
设置向 SDK 输入的音频源
默认使用内部采集。内部采集指:使用 RTC SDK 内置的音频采集机制进行音频采集。
该方法进房前后均可调用。
当你已调用 startAudioCapture 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。
当你调用此方法开启自定义采集,再调用此方法切换至内部采集时,必须再调用 startAudioCapture 手动开启内部采集。
类型
(index: StreamIndex, audioSourceType: AudioSourceType) => Promise<void>
ts参数
index
类型: StreamIndex
音频流指针
audioSourceType
类型: AudioSourceType
音频采集模块
返回值
类型: Promise<void>
混音管理接口创建
类型
() => IAudioMixingManager
ts返回值
混音管理对象
设置 RTC SDK 内部采集时的音频采集参数。默认参数由浏览器决定。
类型
(config: TrackCaptureConfig) => Promise<void>
ts注意
你需要在开始音频采集和首次发布之前调用本接口。
参数
config
音频采集参数。例如,关闭浏览器音频 3A。支持传入设置的参数见 MediaTrackConstraints
返回值
类型: Promise<void>
登录即时消息服务器。
调用此方法登录后,可以向同 appID 下其他已登录用户发送文本或二进制消息。
类型
(token: string | null, userId: string) => Promise<void>
ts注意
RTM_DUPLICATE_LOGIN 错误。参数
token
类型: string | null
用户登录必须携带的 Token,用于鉴权验证。
测试时可使用控制台生成临时 Token,roomId 填任意值。
正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token,roomId 置空,Token 有效期及生成方式参看使用 Token 完成鉴权。
userId
类型: string
用户 ID。
返回值
类型: Promise<void>
ALREADY_LOGIN: 已有相同 userId 的用户登录了实时信令服务器,请勿重复登录或使用不同的 userId 登录。LOGIN_FAILED: 登录实时信令服务器失败,具体原因查看 message。调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。
类型
() => Promise<void>
ts返回值
类型: Promise<void>
更新用户用于登录的 Token。Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。
类型
(token: string | null) => Promise<void>
ts注意
参数
token
类型: string | null
更新的动态密钥
返回值
类型: Promise<void>
查询对端用户或本端用户的登录状态。在发送房间外消息之前,用户可以通过本接口了解对端用户是否登录,从而决定是否发送消息。也可以通过本接口查询自己查看自己的登录状态。
类型
(userId: string) => Promise<USER_ONLINE_STATUS>
ts注意
必须调用 login 登录后,才能调用本接口。
参数
userId
类型: string
需要查询的用户 ID
返回值
类型: Promise<USER_ONLINE_STATUS>
给房间外指定的用户发送文本消息(P2P)
类型
(userId: string, message: string) => Promise<any>
ts注意
参数
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: 消息未知错误。给房间外指定的用户发送二进制消息(P2P)
类型
(userId: string, message: ArrayBuffer) => Promise<any>
ts注意
参数
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: 消息未知错误。设置业务服务器参数。调用 sendServerMessage 或 sendServerBinaryMessage 发送消息给业务服务器之前,必须需要设置有效签名和业务服务器地址。
类型
(signature: string, url: string) => Promise<any>
ts注意
参数
signature
类型: string
动态签名,应用服务器可使用该签名对消息来源进行验证。
签名需自行定义,可传入任意非空字符串,建议将 uid 等信息编码为签名。
设置的签名会以 post 形式发送至通过本方法中 url 参数设置的应用服务器地址。
url
类型: string
业务服务器的地址
返回值
类型: Promise<any>
客户端给业务服务器发送文本消息(P2Server)
类型
(message: string) => Promise<any>
ts注意
在向业务服务器发送文本消息前,必须先调用 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: 消息未知错误。客户端给业务服务器发送二进制消息(P2Server)
类型
(message: ArrayBuffer) => Promise<any>
ts注意
在向业务服务器发送文本消息前,必须先调用 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: 消息未知错误。开启云代理
类型
(cloudProxyInfo: CloudProxyInfo) => void
ts注意
参数
cloudProxyInfo
类型: CloudProxyInfo
云代理服务器信息列表。
关闭云代理
类型
() => void
ts注意
要开启云代理,调用 startCloudProxy。
发布一路公共流。
类型
(publicStreamId: string, publicStreamParam: PublicStreamConfig) => Promise<void>
ts注意
appID 的用户,无论是否进房,可以调用 startPlayPublicStream 获取和播放指定的公共流。参数
publicStreamId
类型: string
公共流 ID。该字符串需符合正则表达式:[a-zA-Z0-9_@\-\.]{1,128}。
publicStreamParam
公共流参数。
一路公共流可以包含多路房间内的媒体流,按照指定的布局方式进行聚合。
如果指定的媒体流还未发布,则公共流将在指定流开始发布后实时更新。
返回值
类型: Promise<void>
REPEAT_PUSH: 重复发布公共流。
更新公共流参数。
调用 startPushPublicStream 发布一路公共流。
类型
(publicStreamId: string, publicStreamParam: Partial<PublicStreamConfig>) => Promise<void>
ts参数
publicStreamId
类型: string
公共流 ID。
指定的流必须为当前用户所发布。
publicStreamParam
类型: Partial<PublicStreamConfig>
公共流参数。
返回值
类型: Promise<void>
REPEAT_PLAY: 重复订阅公共流。
停止发布公共流。
调用 startPushPublicStream 发布一路公共流。
类型
(publicStreamId: string) => Promise<void>
ts参数
publicStreamId
类型: string
公共流 ID。
指定的流必须为当前用户所发布。
返回值
类型: Promise<void>
订阅指定公共流。
无论用户是否在房间内,都可以调用本接口获取和播放指定的公共流。
类型
(publicStreamId: string) => Promise<void>
ts注意
参数
publicStreamId
类型: string
公共流 ID。
如果指定流暂未发布,则本地客户端将在其开始发布后接收到流数据。
返回值
类型: Promise<void>
取消订阅指定公共流。
关于订阅公共流,查看 startPlayPublicStream。
类型
(publicStreamId: string) => Promise<void>
ts参数
publicStreamId
类型: string
公共流 ID。
返回值
类型: Promise<void>
为指定公共流设置使用的视图和渲染模式。
类型
(publicStreamId: string, videoPlayerOption: Omit<VideoPlayerOption, 'userId'>) => void
ts参数
publicStreamId
类型: string
公共流 ID。
videoPlayerOption
类型: Omit<VideoPlayerOption, "userId">
视图信息和渲染模式。
停止内部摄像头采集时,使用静态图片填充本地推送的视频流。
类型
(index: StreamIndex, filePath: string) => Promise<void>
ts注意
参数
index
类型: StreamIndex
filePath
类型: string
以 Http 协议表示的图片地址,或 Blob 对象。
图片类型支持:JPG、PNG、BMP。
图片长宽比和视频编码参数不一致时,图片会被等比缩放,直至其两边长小于等于视频编码参数中的宽高。
返回值
类型: Promise<void>
获取合流转推默认参数。
类型
() => Required<LiveTranscodeConfig>
ts返回值
类型: Required<LiveTranscodeConfig>
转推直播默认音视频参数。
设置订阅的音视频流的回退选项。
回退指在网络不佳时允许订阅流进行降级或只订阅音频流,以保证通话流畅。
类型
(option: SubscribeFallbackOption) => boolean
ts注意
参数
option
订阅的音视频流回退选项
返回值
类型: boolean
true 设置成功;false 设置失败。设置用户优先级。
该方法与 setSubscribeFallbackOption 搭配使用。
开启回退后,会优先保证收到的高优先级用户的流的质量。
类型
(userId: string, priority: RemoteUserPriority) => boolean
ts参数
userId
类型: string
远端用户的 ID
priority
远端用户优先级
返回值
类型: boolean
true 设置成功;false 设置失败。启动音频播放设备检测。测试启动后,循环播放指定的音频文件,同时将通过 onAudioPlaybackDeviceTestVolume 回调播放时的音量信息。
类型
(filePath: string, indicationInterval: number) => Promise<void>
ts注意
参数
filePath
类型: string
指定播放设备检测的音频文件网络地址。包括格式 wav 和 mp3。
indicationInterval
类型: number
onAudioPlaybackDeviceTestVolume 音量回调的时间间隔,推荐设置为 200 毫秒或以上。单位为毫秒。最小值为 100 毫秒。
返回值
类型: Promise<void>
当测试流程结束时 Resolve。REPEAT_DEVICE_TEST: 重复开启检测。
停止音频播放设备测试。
类型
() => void
ts注意
调用 startAudioPlaybackDeviceTest 后,调用本方法停止测试。
开始音频采集设备和音频播放设备测试。
建议提前调用 enableAudioPropertiesReport 注册音量提示回调,测试开始后,音频设备开始采集本地声音,可以通过 onLocalAudioPropertiesReport 获取采集音量。
类型
(indicationInterval: number, onAutoplayFailed?: ((resume: () => Promise<any>) => any) | undefined) => Promise<void>
ts注意
参数
indicationInterval
类型: number
测试录音播放时触发 onAudioPlaybackDeviceTestVolume 播放音量回调,本参数指定了该周期回调的时间间隔。推荐设置为 200 毫秒或以上。单位为毫秒。最小值为 100 毫秒。
onAutoplayFailed
类型: ((resume: () => Promise<any>) => any) | undefined
由于浏览器自动播放策略影响,导致录制音频播放失败时回调。resume 为恢复播放方法,建议在用户点击后同步执行。
返回值
类型: Promise<void>
当测试流程结束时 Resolve。
还可能返回如下错误码。
NOT_SUPPORTED: 浏览器不支持设置音频播放设备或测试音频采集/播放设备。REPEAT_DEVICE_TEST: 重复开启检测。AUDIO_DEVICE_RECORD_FAILED: 开启音频设备测试失败,请重试。停止采集本地音频,并开始播放采集到的声音。录音播放完毕后,设备测试流程结束。
调用 startAudioDeviceRecordTest 30s 内调用本接口来停止采集并开始播放此前采集到的声音。
类型
() => void
ts注意
调用本接口开始播放录音后,可以在播放过程中调用 stopAudioDevicePlayTest 停止播放。
停止由调用 startAudioDeviceRecordTest 开始的音频播放设备测试。
在音频播放设备测试自动结束前,可调用本接口停止音频采集与播放测试。
类型
() => void
ts设置音质档位
类型
(profile: AudioProfileType) => Promise<void>
ts注意
你需要在开始音频采集和首次发布之前调用本接口。
参数
profile
类型: AudioProfileType
音质档位。不同的音质档位有着不同的音频参数,带来不同的听觉体验,你应根据业务场景选择适合的音质档位。
返回值
类型: Promise<void>
获取本地用户的音频或者视频的 MediaStreamTrack。
类型
(streamIndex: StreamIndex, type: 'video' | 'audio') => MediaStreamTrack | undefined
ts注意
ended 事件,MediaStreamTrack 随即被关闭。参数
streamIndex
类型: StreamIndex
流属性,包括主流、屏幕流。
type
类型: "video" | "audio"
媒体流类型,视频或音频。
音频:可分别获取本地麦克风、本地音频外部源、播放本地音频文件、本地屏幕流音频的音轨。
视频:可分别获取本地摄像头、本地视频外部源、本地屏幕视频的视频轨道。
返回值
类型: MediaStreamTrack | undefined
当 MediaStreamTrack 不存在时,比如没有开启采集,返回 undefined。
获取已订阅的远端用户的音频或者视频的 MediaStreamTrack。
类型
(userId: string, streamIndex: StreamIndex, type: 'video' | 'audio') => MediaStreamTrack | undefined
ts注意
ended 事件, MediaStreamTrack 随即被关闭。参数
userId
类型: string
远端用户 ID。
streamIndex
类型: StreamIndex
流属性,包括主流、屏幕流。
type
类型: "video" | "audio"
媒体流类型,视频或音频。
可分别单独获取远端麦克风、远端屏幕音频的音轨。
可分别获取远端摄像头、远端屏幕视频的视频轨道。
返回值
类型: MediaStreamTrack | undefined
当 MediaStreamTrack 不存在时,比如没有订阅该流,返回 undefined。
获取已订阅的公共流的音频或者视频的 MediaStreamTrack。
类型
(id: string, type: 'video' | 'audio') => MediaStreamTrack | undefined
ts注意
stopPlayPublicStream 订阅公共流后。stopPlayPublicStream 停止订阅公共流时,将触发该 MediaStreamTrack 回调的 ended 事件, MediaStreamTrack 随即被关闭。参数
id
类型: string
公共流 ID。
type
类型: "video" | "audio"
媒体流类型,视频或音频。
返回值
类型: MediaStreamTrack | undefined
当 MediaStreamTrack 不存在时,比如没有订阅该公共流,返回 undefined。
截取本地视频画面
类型
(streamIndex: StreamIndex) => Promise<ImageData>
ts注意
参数
streamIndex
类型: StreamIndex
截图的视频流。
返回值
类型: Promise<ImageData>
INVOKED_BEFORE_CAPTURE: 指定的视频流不存在,请确保指定的流已发布。
截取远端视频画面
类型
(id: string, streamIndex: StreamIndex) => Promise<ImageData>
ts参数
id
类型: string
用户 ID/公共流 ID
streamIndex
类型: StreamIndex
截图的视频流。
返回值
类型: Promise<ImageData>
STREAM_NOT_EXIST: 目标流不存在。请输入正确的 ID,或确认目标流在房间内。
注册插件。
你可以通过插件实现基础美颜功能、虚拟背景功能、AI 降噪功能。
类型
(extension: RTCExtension) => Promise<void>
ts参数
extension
类型: RTCExtension
插件实例。
返回值
类型: Promise<void>
识别或翻译房间内所有用户的语音,形成字幕。语音识别或翻译的结果会通过 onSubtitleMessageReceived 事件回调给你。
调用该方法后,你会收到 onSubtitleStateChanged 回调,通知字幕是否开启。
类型
(config: RTCSubtitleConfig) => Promise<void>
ts注意
参数
config
字幕配置信息。
返回值
类型: Promise<void>
SUBTITLE_ALREADY_ON: 重复调用,字幕已开启。
关闭字幕。
调用该方法后,你会收到 onSubtitleStateChanged 回调,通知字幕是否关闭。
类型
() => void
ts设置远端音视频流是否同步渲染。
你可以通过关闭音视频同步,达到超低端到端延时的效果。
类型
(sync: boolean) => boolean
ts注意
必须在进房前设置,进房后设置或更改设置无效。
参数
sync
类型: boolean
true:(默认值)开启同步。false:关闭同步。
返回值
类型: boolean
true:设置成功。false:设置失败。调节音频采集音量。
类型
(streamIndex: StreamIndex, volume: number) => void
ts注意
参数
streamIndex
类型: StreamIndex
流属性,指定调节主流或屏幕流的采集音量。
volume
类型: number
采集的音量值和原始音量的比值,取值范围 [0, 400],单位 %。默认值为 100%。
为保证更好的通话质量,建议将 volume 值设为 [0,100]。
调节本地播放的单个远端用户的音量。
类型
(userId: string, streamIndex: StreamIndex, volume: number) => void
ts注意
参数
userId
类型: string
音频所属远端用户 ID
streamIndex
类型: StreamIndex
流属性,指定调节主流或屏幕流的播放音量。
volume
类型: number
播放的音量值和原始音量的比值,取值范围 [0, 400],单位 %。默认值为 100%。
为保证更好的通话质量,建议将 volume 值设为 [0,100]。
调节本地播放的公共流播放音量。
类型
(publicStreamId: string, volume: number) => void
ts注意
参数
publicStreamId
类型: string
音频所属公共流 ID
volume
类型: number
播放的音量值和原始音量的比值,取值范围 [0, 400],单位 %。默认值为 100%。
为保证更好的通话质量,建议将 volume 值设为 [0,100]。
开始跨房间转发媒体流,示例代码可参看跨房间转发媒体流功能文档。
在调用 joinRoom 后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。
类型
(forwardStreamInfos: ForwardStreamInfo[]) => Promise<ForwardStreamStateInfo[]>
ts注意
参数
forwardStreamInfos
类型: ForwardStreamInfo[]
跨房间转发媒体流信息。
返回值
类型: Promise<ForwardStreamStateInfo[]>
跨房间转发媒体流状态信息。
还可能返回错误码 UNEXPECTED_INVOKE_FORWARD_STREAM: 跨房间转发媒体流相关 API 的调用时机不正确,请参考各接口说明确认调用的先后顺序。
更新跨房间媒体流转发信息。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。
类型
(forwardStreamInfos: ForwardStreamInfo[]) => Promise<ForwardStreamStateInfo[]>
ts注意
参数
forwardStreamInfos
类型: ForwardStreamInfo[]
跨房间媒体流转发目标房间信息。
返回值
类型: Promise<ForwardStreamStateInfo[]>
跨房间转发媒体流状态信息。
还可能返回错误码 UNEXPECTED_INVOKE_FORWARD_STREAM: 跨房间转发媒体流相关 API 的调用时机不正确,请参考各接口说明确认调用的先后顺序。
停止向所有目标房间转发媒体流。
类型
() => Promise<ForwardStreamStateInfo[]>
ts注意
返回值
类型: Promise<ForwardStreamStateInfo[]>
跨房间转发媒体流状态信息。
还可能返回错误码 UNEXPECTED_INVOKE_FORWARD_STREAM: 跨房间转发媒体流相关 API 的调用时机不正确,请参考各接口说明确认调用的先后顺序。
暂停向所有目标房间转发媒体流。
调用本方法暂停向所有目标房间转发后,你可以调用 resumeForwardStreamToAllRooms 恢复转发。
类型
() => Promise<ForwardStreamStateInfo[]>
ts注意
调用本方法后,目标房间中的用户将接收到本地用户停止发布 onUserUnpublishStream/onUserUnpublishScreen 和退房 onUserLeave 的回调。
返回值
类型: Promise<ForwardStreamStateInfo[]>
跨房间转发媒体流状态信息。
还可能返回错误码 UNEXPECTED_INVOKE_FORWARD_STREAM: 跨房间转发媒体流相关 API 的调用时机不正确,请参考各接口说明确认调用的先后顺序。
恢复向所有目标房间转发媒体流。
类型
() => Promise<ForwardStreamStateInfo[]>
ts注意
目标房间中的用户将接收到本地用户进房 onUserJoined 和发流 onUserPublishStream/onUserPublishScreen 的回调。
返回值
类型: Promise<ForwardStreamStateInfo[]>
跨房间转发媒体流状态信息。
还可能返回错误码 UNEXPECTED_INVOKE_FORWARD_STREAM: 跨房间转发媒体流相关 API 的调用时机不正确,请参考各接口说明确认调用的先后顺序。
设置本端发布流在音频选路中的优先级。
类型
(audioSelectionPriority: AudioSelectionPriority) => Promise<void>
ts参数
audio_selection_priority
本端发布流在音频选路中的优先级,默认正常参与音频选路。
返回值
类型: Promise<void>
类型: interface
| 方法 | 描述 |
|---|---|
| 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 | 下载本地缓存生成文件。 |
创建引擎对象。
你必须先使用此方法,以使用 RTC 提供的各种音视频能力。
再次调用此方法时,会创建另一个独立的引擎实例。
类型
(appId: string, config?: EngineConfig) => IRTCEngine
ts注意
参数
appId
类型: string
每个应用的唯一标识符,由 RTC 控制台随机生成的。不同的 AppId 生成的实例在 RTC 中进行音视频通话完全独立,无法互通。
config
类型: EngineConfig | undefined
引擎级的设置项。例如,是否开启自动播放。
返回值
类型: IRTCEngine
创建成功后返回一个可用的 IRTCEngine 实例
手动销毁通过 createEngine 所创建的引擎对象。
类型
(engine: IRTCEngine) => void
ts注意
参数
engine
类型: IRTCEngine
销毁所有和此 IRTCEngine 实例相关的内存,并且停止与媒体服务器的任何交互。
获取 SDK 当前的版本号。
类型
() => string
ts返回值
类型: string
SDK 当前的版本号
枚举可用的媒体输入和输出设备,比如麦克风、摄像头、耳机等。
可以通过该方法获取设备的 deviceId, 用于在 setAudioPlaybackDevice、startVideoCapture、startAudioCapture 方法中指定采集/播放设备。
类型
() => Promise<MediaDeviceInfo[]>
ts注意
浏览器只有在已经获得设备权限时,才能准确获取设备信息。建议授权访问后调用本接口。
返回值
类型: Promise<MediaDeviceInfo[]>
媒体设备列表。
向用户获取设备权限
类型
(options?: { video: boolean; audio: boolean;}) => Promise<{ video: boolean; audio: boolean; videoExceptionError?: DOMException; audioExceptionError?: DOMException;}>
ts参数
options
类型: { video: boolean; audio: boolean; } | undefined
需要获取权限的设备类型
成员
| 名称 | 类型 | 描述 |
|---|---|---|
| video | boolean | 视频设备 |
| audio | boolean | 音频设备 |
返回值
类型: Promise<{ video: boolean; audio: boolean; videoExceptionError?: DOMException; audioExceptionError?: DOMException; }>
video: boolean 是否获得视频设备权限audio: boolean 是否获得音频设备权限videoExceptionError?: DOMException 获取视频设备权限报错信息audioExceptionError?: DOMException 获取音频设备权限报错信息该方法枚举可用的麦克风。
可以通过该方法获取设备的 deviceId, 用于在 startAudioCapture、setAudioCaptureDevice 方法中指定使用的麦克风设备。
类型
() => Promise<MediaDeviceInfo[]>
ts注意
浏览器只有在已经获得设备权限时,才能准确获取设备信息。建议授权访问后调用本接口。
返回值
类型: Promise<MediaDeviceInfo[]>
所有的麦克风设备列表。
该方法枚举可用的摄像头等。
可以通过该方法获取设备的 deviceId, 用于在 startVideoCapture、setVideoCaptureDevice 方法中指定使用的摄像头设备。
类型
() => Promise<MediaDeviceInfo[]>
ts注意
浏览器只有在已经获得设备权限时,才能准确获取设备信息。建议授权访问后调用本接口。
返回值
类型: Promise<MediaDeviceInfo[]>
所有的摄像头设备列表。
该方法枚举可用的音频播放设备,例如耳机、音箱等。
可以通过该方法获取设备的 deviceId, 可用于 setAudioPlaybackDevice 方法中指定音频播放设备。
类型
() => Promise<MediaDeviceInfo[]>
ts注意
浏览器只有在已经获得设备权限时,才能准确获取设备信息。建议授权访问后调用本接口。
返回值
类型: Promise<MediaDeviceInfo[]>
所有的音频播放设备列表。
浏览器是否支持
类型
() => Promise<boolean>
ts返回值
类型: Promise<boolean>
True: 支持False:不支持获取当前浏览器支持的编解码类型。
若你已开通 vp8 业务,可以在进房前调用该接口查看当前浏览器是否支持 vp8 编码类型
类型
() => Promise<string[]>
ts返回值
类型: Promise<string[]>
当前浏览器支持的编解码类型
配置本地缓存的日志级别, 以及可使用的最大缓存空间。
类型
({ logLevel, LogfileSize, }: { logLevel?: 'none' | 'error' | 'warning' | 'info' | 'trace'; LogfileSize?: number;}) => void
ts注意
本方法必须在调用 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: 跟踪。 |
| LogfileSize | number | undefined | 日志可使用的最大缓存空间,单位为 MB。取值范围为 1~100 MB,默认值为 10 MB。 |
下载本地缓存生成文件。
类型
(key?: string) => void
ts参数
key
类型: string | undefined
本地缓存的 key。若为空则下载当前缓存中的日志。
类型: interface
| 方法 | 描述 |
|---|---|
| startAudioMixing | 开启混音 |
| stopAudioMixing | 停止播放音频文件 |
| pauseAudioMixing | 暂停播放音频文件 |
| resumeAudioMixing | 恢复播放音频文件 |
| preloadAudioMixing | 预加载指定音频文件到内存中 |
| unloadAudioMixing | 卸载指定音频文件 |
| setAudioMixingVolume | 调节混音的音量大小,包括音频文件混音和 PCM 混音。 |
| getAudioMixingVolume | 获取音频文件的音量 |
| getAudioMixingDuration | 获取音频文件时长 |
| getAudioMixingCurrentPosition | 获取音频文件播放进度 |
| setAudioMixingPosition | 设置音频文件的起始播放位置 |
| enableAudioMixingBuffer | 启动 PCM 音频数据混音 |
| disableAudioMixingBuffer | 关闭 PCM 混音 |
| pushAudioMixingBuffer | 推送 PCM 音频数据用于混音 |
开启混音
类型
(id: number, filePath: string, options: MixOption) => Promise<void>
ts注意
ID 与上次调用 preloadAudioMixing 设置的 ID 相同。ID 重复调用本方法,前一次混音会停止,后一次混音开始参数
id
类型: number
混音 ID。
混音 ID 用于标识混音,请保证混音 ID 唯一性。
filePath
类型: string
指定需要混音的音频文件的绝对路径,支持音频文件格式有: mp3,aac等
options
类型: MixOption
混音配置
可以设置混音的播放次数、是否本地播放混音、以及是否将混音发送至远端
返回值
类型: Promise<void>
LOAD_RESOURCES_FAILED: 资源加载失败。请传入正确的资源路径。
停止播放音频文件
类型
(id: number) => void
ts注意
参数
id
类型: number
混音 ID
暂停播放音频文件
类型
(id: number) => void
ts注意
参数
id
类型: number
混音 ID
恢复播放音频文件
类型
(id: number) => void
ts注意
调用 pauseAudioMixing 方法暂停播放音频文件后,可以通过调用本方法恢复播放及混音。
参数
id
类型: number
混音 ID
预加载指定音频文件到内存中
类型
(id: number, filePath: string) => Promise<void>
ts注意
参数
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: 资源加载失败。请传入正确的资源路径。
卸载指定音频文件
类型
(id: number) => void
ts参数
id
类型: number
混音 ID
调节混音的音量大小,包括音频文件混音和 PCM 混音。
类型
(id: number, volume: number) => void
ts参数
id
类型: number
混音 ID
volume
类型: number
混音音量相对原音量的比值。范围为 [0, 400],建议范围是 [0, 100]。
获取音频文件的音量
类型
(id: number) => number
ts参数
id
类型: number
混音 ID
返回值
类型: number
0: 获取失败>0: 成功,音量值获取音频文件时长
类型
(id: number) => number
ts注意
调用本方法获取音频文件时长前,需要先调用 preloadAudioMixing 或 startAudioMixing。
参数
id
类型: number
混音 ID
返回值
类型: number
> 0: 成功, 音频文件时长,单位为毫秒。< 0: 失败获取音频文件播放进度
类型
(id: number) => number
ts注意
调用本方法获取音频文件播放进度前,需要先调用 startAudioMixing 开始播放音频文件。
参数
id
类型: number
混音 ID
返回值
类型: number
> 0: 成功, 音频文件播放进度,单位为毫秒。< 0: 失败设置音频文件的起始播放位置
类型
(id: number, position: number) => void
ts注意
参数
id
类型: number
混音 ID
position
类型: number
音频文件起始播放位置,单位为毫秒。
你可以通过 getAudioMixingDuration 获取音频文件总时长,position 的值不得大于音频文件总时长。
启动 PCM 音频数据混音
类型
(type: AudioMixingType) => void
ts注意
参数
type
类型: AudioMixingType
混音类型。是否本地播放、以及是否发送到远端
关闭 PCM 混音
类型
() => void
ts推送 PCM 音频数据用于混音
类型
(buffer: AudioBuffer) => void
ts注意
调用该方法前,须通过 enableAudioMixingBuffer 启动外部音频流混音。
参数
buffer
类型: AudioBuffer
音频缓冲池,详见浏览器文档