类型: 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() | 关闭内部视频采集。默认为关闭状态。 内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。 发布流后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。 |
| startAudioCapture() | 立即开启内部音频采集。默认为关闭状态。 内部采集是指:使用 RTC SDK 内置采集机制进行音频采集。 发布流后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。 |
| stopAudioCapture() | 立即关闭内部音频采集。默认为关闭状态。 内部采集是指:使用 RTC SDK 内置采集机制进行音频采集。 调用该方法,房间内的其他用户会收到 onUserStopAudioCapture 的回调。 |
| startScreenCapture() | 使用内部采集模块,采集当前屏幕视频流,用于共享。 |
| stopScreenCapture() | 停止屏幕共享流内部采集。 |
| setLocalVideoPlayer() | 设置本地视频渲染时,使用的视图,并设置渲染模式。 调用本方法绑定视图以后,你可以通过 onPlayerEvent 来监听播放状态。你可以通过再次调用本方法,并绑定空视图来解除绑定。 |
| setRemoteVideoPlayer() | 设置远端视频渲染时,使用的视图,并设置渲染模式。 建议在收到 onUserPublishStream 事件后,调用本方法对远端视频视图进行设置。 你可以通过再次调用本方法,并绑定空视图来解除绑定。 |
| setLocalVideoMirrorType() | 是否开启本地视频流镜像模式。 |
| setAudioPlaybackDevice() | 设置音频播放设备,例如扬声器或者耳机,默认使用扬声器。 |
| play() | 手动开启音视频流播放 |
| pauseAllSubscribedStream() | 暂停接收来自远端的媒体流。 |
| resumeAllSubscribedStream() | 恢复接收来自远端的媒体流 |
| sendUserMessage() | 给房间内指定的用户发送点对点文本消息。 若消息发送成功,则 userId 所指定的用户会收到 onUserMessageReceived 回调。 |
| sendUserBinaryMessage() | 给房间内指定的用户发送点对点二进制消息。 若消息发送成功,则 userId 所指定的用户会收到 onUserBinaryMessageReceived 回调。 |
| sendRoomMessage() | 给房间内的所有其他用户群发文本消息。 若消息发送成功,同一房间内的其他用户会收到 onRoomMessageReceived 回调。 |
| sendRoomBinaryMessage() | 给房间内的所有其他用户群发二进制消息。 若消息发送成功,同一房间内的其他用户会收到通过 onRoomBinaryMessageReceived 回调发送的消息 |
| sendSEIMessage() | 在视频通信时,通过视频帧发送 SEI 数据。 |
| setVideoEncoderConfig() | 在视频发布端设置发布的视频流参数 |
| setScreenEncoderConfig() | 设置共享屏幕的视频编码参数,同时对视频采集生效。 若设置的参数浏览器不支持,RTC SDK 按照浏览器支持的参数范围进行采集和编码,并通过回调 onLocalVideoSizeChanged 通知采集的实际参数。 |
| setRemoteVideoConfig() | 设置期望订阅的远端视频流的参数。 |
| enableSimulcastMode() | 在视频发布端设置摄像头视频流的大小流模式 |
| enableAudioPropertiesReport() | 启用音频信息提示。 |
| startLiveTranscoding() | 开启转推直播,并设置合流的视频视图布局和音频属性。 |
| updateLiveTranscoding() | 更新转推直播参数。 使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。 |
| stopLiveTranscoding() | 停止转推直播。 关于启动转推直播,参看 startLiveTranscoding。 |
| setBusinessId() | 设置业务标识参数 可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。 |
| setUserVisibility() | 设置用户可见性。默认可见。 |
| setExternalVideoTrack() | 使用用户自定义的 videoTrack。 调用本方法前必须先调用 setVideoSourceType 设置为自定义视频采集。 |
| setExternalAudioTrack() | 使用用户自定义的 audioTrack。 调用本方法前必须先调用 setAudioSourceType 设置为自定义音频采集。 |
| setVideoSourceType() | 设置向 SDK 输入的视频源 默认使用内部采集。内部采集指:使用 RTC SDK 内置的视频采集机制进行视频采集。 该方法进房前后均可调用。 当你已调用 startVideoCapture 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。 当你调用此方法开启自定义采集,再调用此方法切换至内部采集时,必须再调用 startVideoCapture 手动开启内部采集。 |
| setAudioSourceType() | 设置向 SDK 输入的音频源 默认使用内部采集。内部采集指:使用 RTC SDK 内置的音频采集机制进行音频采集。 该方法进房前后均可调用。 当你已调用 startAudioCapture 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。 当你调用此方法开启自定义采集,再调用此方法切换至内部采集时,必须再调用 startAudioCapture 手动开启内部采集。 |
| getAudioMixingManager() | 混音管理接口创建 |
| setAudioCaptureConfig() | 设置 RTC SDK 内部采集时的音频采集参数。默认参数由浏览器决定。 |
| setVideoCaptureConfig() | 设置 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 30 s 内调用本接口来停止采集并开始播放此前采集到的声音。 |
| stopAudioDevicePlayTest() | 停止由调用 startAudioDeviceRecordTest 开始的音频播放设备测试。 在音频播放设备测试自动结束前,可调用本接口停止音频采集与播放测试。 |
| setAudioProfile() | 设置音质档位 |
| getLocalStreamTrack() | 获取本地用户的音频或者视频的 MediaStreamTrack。 |
| getRemoteStreamTrack() | 获取已订阅的远端用户的音频或者视频的 MediaStreamTrack。 |
| getPublicStreamTrack() | 获取已订阅的公共流的音频或者视频的 MediaStreamTrack。 |
| takeLocalSnapshot() | 截取本地视频画面 |
| takeRemoteSnapshot() | 截取远端视频画面 |
| registerExtension() | 注册插件。 |
加入房间。 调用此方法加入房间,同房间内其他用户进行音视频通话。
(token: string | null, roomId: string, userInfo: UserInfo, roomConfig?: RoomConfig | undefined) => Promise<void>
注意
同一个 App ID 的同一个房间内,每个用户的用户 ID 必须是唯一的。如果两个用户的用户 ID 相同,则先进房的用户将自动退房并收到 DUPLICATE_LOGIN 错误。
用户加入房间成功后,在本地网络状况不佳的情况下,SDK 可能会与服务器失去连接,此时 SDK 将会自动重连。重连成功后,如果加入房间的为可见用户,远端用户会收到 onUserJoined 回调通知。
参数
token
类型: string | null
动态密钥,用于对进房用户进行鉴权验证。 进入房间需要携带 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 | undefined
房间参数配置,设置房间模式以及是否自动发布或订阅流。
返回值
类型: Promise<void>
离开房间。 用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
(waitAck?: boolean | undefined) => Promise<void>
注意
可见的用户离开房间后,房间内其他用户会收到 onUserLeave 回调通知。
调用 joinRoom 方法加入房间后,必须调用此方法结束通话,否则无法开始下一次通话。重复调用此方法没有负面影响。
参数
waitAck
类型: boolean | undefined
返回值
类型: Promise<void>
在当前所在房间内发布本地摄像头/麦克风采集的媒体流
(mediaType: MediaType) => Promise<void>
注意
多房间模式下默认不自动发布流,你需调用该方法手动发布流。
调用 unpublishStream 取消发布。
参数
mediaType
类型: MediaType
媒体流类型,用于指定发布音频/视频。
返回值
类型: Promise<void>
停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中
(mediaType: MediaType) => Promise<void>
注意
调用 publishStream 手动发布摄像头/麦克风采集的音视频流后,你需调用此接口停止发布。
调用此方法停止发布音视频流后,房间中的其他用户将会收到 onUserUnpublishStream 回调通知。
参数
mediaType
类型: MediaType
媒体流类型,用于指定停止发布音频/视频。
返回值
类型: Promise<void>
在当前所在房间内发布本地屏幕共享音视频流
(mediaType: MediaType) => Promise<void>
注意
调用 setUserVisibility 方法将自身设置为不可见后无法调用该方法,需将自身切换至可见后方可调用该方法发布屏幕流。
调用 unpublishScreen 取消发布。
参数
mediaType
类型: MediaType
媒体流类型,用于指定发布屏幕音频/视频。
返回值
类型: Promise<void>
停止将本地屏幕共享音视频流发布到当前所在房间中
(mediaType: MediaType) => Promise<void>
注意
调用 publishScreen 发布屏幕流后,你需调用此接口停止发布。
调用此方法停止发布屏幕音视频流后,房间中的其他用户将会收到 onUserUnpublishScreen 回调。
参数
mediaType
类型: MediaType
媒体流类型,用于指定停止发布屏幕音频/视频
返回值
类型: Promise<void>
订阅房间内指定的通过摄像头/麦克风采集的媒体流。 该方法对自动订阅和手动订阅模式均适用。
(userId: string, mediaType: MediaType) => Promise<void>
你必须先通过 onUserPublishStream 回调获取当前房间里的远端摄像头音视频流信息,然后调用本方法按需订阅。
参数
userId
类型: string
指定订阅的远端发布音视频流的用户 ID。
mediaType
类型: MediaType
媒体流类型,用于指定订阅音频/视频。
返回值
类型: Promise<void>
取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。 该方法对自动订阅和手动订阅模式均适用。
(userId: string, mediaType: MediaType) => Promise<void>
参数
userId
类型: string
指定取消订阅的远端发布音视频流的用户 ID。
mediaType
类型: MediaType
媒体流类型,用于指定取消订阅音频/视频。
返回值
类型: Promise<void>
订阅房间内指定的远端屏幕共享音视频流。 该方法对自动订阅和手动订阅模式均适用。
(userId: string, mediaType: MediaType) => Promise<void>
你必须先通过 onUserPublishScreen 回调获取当前房间里的远端屏幕流信息,然后调用本方法按需订阅。
参数
userId
类型: string
指定订阅的远端发布屏幕流的用户 ID。
mediaType
类型: MediaType
媒体流类型,用于指定订阅音频/视频。
返回值
类型: Promise<void>
取消订阅房间内指定的远端屏幕共享音视频流。 该方法对自动订阅和手动订阅模式均适用。
(userId: string, mediaType: MediaType) => Promise<void>
参数
uid
类型: string
指定取消订阅的远端发布屏幕流的用户 ID。
type
类型: MediaType
媒体流类型,用于指定取消订阅音频/视频。
返回值
类型: Promise<void>
更新 Token。 用于加入房间的 Token 有一定的有效期。Token 过期前 30 秒将收到 onTokenWillExpire 回调,需要调用此方法更新房间的 Token 信息。
(token: string) => void
注意
调用 joinRoom 方法加入房间或断网重连进入房间时,如果 Token 过期,将导致加入房间失败,回调错误码为 INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。
Token 过期后,用户将被移出房间无法继续进行音视频通话。
参数
token
类型: string
获取的新的有效 Token。
设置内部采集时使用的麦克风。
(deviceId: string) => Promise<void>
如果设置时正在使用麦克风进行音频采集,切换操作当即生效;如果设置时未开启采集,则会在开启内部采集时打开设置的麦克风。
参数
deviceId
类型: string
设备 ID,可以通过调用 enumerateAudioCaptureDevices 获取设备列表。
返回值
类型: Promise<void>
设置内部采集时使用的摄像头。
(deviceId: string) => Promise<void>
注意
如果设置时正在使用摄像头进行视频采集,切换操作当即生效;如果设置时未开启采集,则会在开启采集时打开设置的摄像头。
"user" 来指定前置摄像头,可以通过设置 deviceId 为 "environment" 来指定后置摄像头。默认摄像头由浏览器指定。
参数
deviceId
类型: string
设备 ID,可以通过调用 enumerateVideoCaptureDevices 获取设备列表。
返回值
类型: Promise<void>
开启内部视频采集。默认为关闭状态。 内部视频采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。 发布流后调用该方法,房间中的其他用户会收到 onUserStartVideoCapture 的回调。
(deviceId?: string | undefined) => Promise<MediaTrackSettings>
注意
调用 stopVideoCapture 可以停止内部视频采集。否则,只有当销毁引擎实例时,内部视频采集才会停止。
内部视频采集使用的摄像头由 setVideoCaptureDevice 接口指定。
参数
deviceId
类型: string | undefined
设备 ID,你需在此传入采集视频的设备 ID,以免出现无画面或显示非所需画面等异常。你可以通过调用 enumerateDevices 获取设备列表。
返回值
类型: Promise<MediaTrackSettings>
实际生效的视频采集参数。参看MediaTrackSettings。请关注其中的 frameRate, height, width 等值。
setVideoEncoderConfig 中最大一路流所设置的 frameRate, height, width 必须与此返回值一致。
关闭内部视频采集。默认为关闭状态。 内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。 发布流后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。
() => Promise<void>
注意
调用 startVideoCapture 可以开启内部视频采集。
如果不调用本方法停止内部视频采集,则只有当销毁引擎实例时,内部视频采集才会停止。
返回值
类型: Promise<void>
立即开启内部音频采集。默认为关闭状态。 内部采集是指:使用 RTC SDK 内置采集机制进行音频采集。 发布流后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。
(deviceId?: string | undefined) => Promise<void>
注意
调用 stopAudioCapture 可以停止内部音频采集。否则,只有当销毁引擎实例时,内部音频采集才会停止。
创建引擎后,无论是否发布音频数据,你都可以调用该方法开启音频采集,只有当(内部或外部)音频采集开始以后音频流才会发布。
参数
deviceId
类型: string | undefined
设备 ID,你需在此传入采集音频的设备 ID,以免出现无声等异常。你可以通过调用 enumerateDevices 获取设备列表。
返回值
类型: Promise<void>
立即关闭内部音频采集。默认为关闭状态。 内部采集是指:使用 RTC SDK 内置采集机制进行音频采集。 调用该方法,房间内的其他用户会收到 onUserStopAudioCapture 的回调。
() => Promise<void>
注意
调用 startAudioCapture 可以开启内部音频采集。
如果不调用本方法停止内部音频采集,则只有当销毁引擎实例时,内部音频采集才会停止。
返回值
类型: Promise<void>
使用内部采集模块,采集当前屏幕视频流,用于共享。
(screenConfig?: ScreenConfig | undefined) => Promise<void>
注意
调用此方法仅开启屏幕流视频采集,不会发布采集到的视频。发布屏幕流视频需要调用 publishScreen。
调用此接口前,你可以调用 setVideoEncoderConfig 设置屏幕视频流的采集帧率和编码分辨率。
参数
screenConfig
类型: ScreenConfig | undefined
共享屏幕属性
返回值
类型: Promise<void>
停止屏幕共享流内部采集。
() => Promise<void>
调用该接口后远端会收到 onStreamRemove 事件
类型: Promise<void>
设置本地视频渲染时,使用的视图,并设置渲染模式。
调用本方法绑定视图以后,你可以通过 onPlayerEvent 来监听播放状态。
你可以通过再次调用本方法,并绑定空视图来解除绑定。
(streamIndex: StreamIndex, videoPlayerOption?: Partial<VideoPlayerOption> | undefined) => HTMLVideoElement | undefined
你应在加入房间后,绑定视图。退出房间后,此设置仍然有效。
参数
streamIndex
类型: StreamIndex
视频流属性
videoPlayerOption
类型: Partial<VideoPlayerOption> | undefined
视图信息和渲染模式
返回值
类型: HTMLVideoElement | undefined
设置远端视频渲染时,使用的视图,并设置渲染模式。 建议在收到 onUserPublishStream 事件后,调用本方法对远端视频视图进行设置。 你可以通过再次调用本方法,并绑定空视图来解除绑定。
(streamIndex: StreamIndex, videoPlayerOption: VideoPlayerOption) => HTMLVideoElement | undefined
你应在加入房间后,绑定视图。退出房间后,此设置仍然有效。
参数
streamIndex
类型: StreamIndex
视频流属性
videoPlayer
视图信息和渲染模式
返回值
类型: HTMLVideoElement | undefined
是否开启本地视频流镜像模式。
(mirrorType: MirrorType) => void
参数
mirrorType
类型: MirrorType
是否开启镜像模式
设置音频播放设备,例如扬声器或者耳机,默认使用扬声器。
(deviceId: string) => Promise<void>
进房前和进房后,均可调用此方法设置音频播放设备。
参数
deviceId
类型: string
音频播放设备(扬声器或者耳机),你可以通过调用 enumerateDevices
返回值
类型: Promise<void>
手动开启音视频流播放
(userId?: string | undefined) => Promise<void>
参数
userId
类型: string | undefined
指定播放的流所属的用户 ID 不传参数代表指定为本地媒体流
返回值
类型: Promise<void>
当音视频正常播放时调用本接口也将返回 Promise 对象
暂停接收来自远端的媒体流。
(mediaType: MediaType) => Promise<void>
注意
该方法仅暂停远端流的接收,并不影响远端流的采集和发送。
若想恢复接收远端流,需调用 resumeAllSubscribedStream。
参数
mediaType
类型: MediaType
媒体流类型,指定需要暂停接收音频还是视频流
返回值
类型: Promise<void>
恢复接收来自远端的媒体流
(mediaType: MediaType) => Promise<void>
注意
该方法仅恢复远端流的接收,并不影响远端流的采集和发送;
该方法不改变用户的订阅状态以及订阅流的属性。
参数
mediaType
类型: MediaType
媒体流类型,指定需要暂停接收音频还是视频流
返回值
类型: Promise<void>
给房间内指定的用户发送点对点文本消息。 若消息发送成功,则 userId 所指定的用户会收到 onUserMessageReceived 回调。
(userId: string, message: string) => Promise<unknown> | undefined
在发送房间内文本消息前,必须先调用 joinRoom 加入房间。
参数
userId
类型: string
消息接收用户的 ID
message
类型: string
发送的文本消息内容 消息不超过 64 KB。
返回值
类型: Promise<unknown> | undefined
给房间内指定的用户发送点对点二进制消息。 若消息发送成功,则 userId 所指定的用户会收到 onUserBinaryMessageReceived 回调。
(userId: string, message: ArrayBuffer) => Promise<unknown>
在发送房间内二进制消息前,必须先调用 joinRoom 加入房间。
参数
userId
类型: string
消息接收用户的 ID
message
类型: ArrayBuffer
发送的二进制消息内容 消息不超过 64 KB。
返回值
类型: Promise<unknown>
给房间内的所有其他用户群发文本消息。 若消息发送成功,同一房间内的其他用户会收到 onRoomMessageReceived 回调。
(message: string) => Promise<any> | undefined
参数
message
类型: string
发送的文本消息内容 消息不超过 64 KB。
返回值
类型: Promise<any> | undefined
给房间内的所有其他用户群发二进制消息。 若消息发送成功,同一房间内的其他用户会收到通过 onRoomBinaryMessageReceived 回调发送的消息
(message: ArrayBuffer) => Promise<any> | undefined
参数
message
类型: ArrayBuffer
发送的文本消息,不超过 64 KB。
返回值
类型: Promise<any> | undefined
在视频通信时,通过视频帧发送 SEI 数据。
(streamIndex: StreamIndex, message: Uint8Array | string, repeatCount: number) => void
注意
你可以通过此接口对 RTC SDK 内部采集的视频帧添加 SEI。
消息发送成功后,远端会收到 onSEIMessageReceived 事件。
参数
streamIndex
类型: StreamIndex
指定携带 SEI 信息的媒体流类型
message
类型: string | Uint8Array
SEI 消息,不大于 4 kb。当消息为空或大小超限,终止发送,并收到相应的错误提示。
repeatCount
类型: number
消息发送重复次数。取值范围是 [0, 30]。调用此接口后,SEI 数据会添加到当前视频帧开始的连续 repeatCount 个视频帧中。
在视频发布端设置发布的视频流参数
(descriptions: VideoEncoderConfig | VideoEncoderConfig[]) => Promise<void>
注意
参数最大的一路流所设置的 frameRate, height, width 必须与 startVideoCapture 的返回值一致。
该方法适用于摄像头采集的视频流,设置屏幕共享视频流参数参看 setScreenEncoderConfig
参数
descriptions
类型: VideoEncoderConfig | VideoEncoderConfig[]
要推送的多路视频流的参数,需注意,所设置的分辨率是各路流的最大分辨率。 最多支持设置 3 路参数,超过 3 路时默认取前 3 路的值。 当设置了多路参数时,分辨率和帧率必须是从大到小排列。 参数最大的一路流的分辨率大于等于 540P 时,支持发布 3 路流;在 270P(含)和 450P(含)之间时,支持发布 2 路流;在 180P 及以下时,开启发布多路流不生效。
返回值
类型: Promise<void>
设置共享屏幕的视频编码参数,同时对视频采集生效。 若设置的参数浏览器不支持,RTC SDK 按照浏览器支持的参数范围进行采集和编码,并通过回调 onLocalVideoSizeChanged 通知采集的实际参数。
(description: ScreenEncoderConfig) => Promise<void>
注意
建议在采集视频前设置编码参数。若采集前未设置编码参数,则使用默认编码参数: 分辨率 1080P;帧率 15fps。
参数
VideoEncoderConfig
共享屏幕的视频编码参数。
返回值
类型: Promise<void>
设置期望订阅的远端视频流的参数。
(userId: string, remoteVideoConfig: RemoteVideoConfig) => Promise<void>
注意
该方法仅在发布端调用 enableSimulcastMode 开启了发送多路视频流的情况下生效,此时订阅端将收到与设置的期望参数最相近的一路流。
该方法需在进房后调用,若想进房前设置,你需调用 joinRoom,并对 roomConfig 中的 remoteVideoConfig 进行设置。
参数
userId
类型: string
期望订阅的远端视频流发布用户的 ID。
remoteVideoConfig
期望订阅的远端视频流参数。
返回值
类型: Promise<void>
在视频发布端设置摄像头视频流的大小流模式
(enabled: boolean) => boolean
注意
仅可以在发布之前进行大小流模式的设置。
开启大小流模式后,SDK 会自动设置各路视频的编码参数。如果你需要手动设置,可以调用 setVideoEncoderConfig。
参数
enabled
类型: boolean
返回值
类型: boolean
启用音频信息提示。
(config?: AudioPropertiesConfig | undefined) => void
开启提示后,你可以:
通过 onRemoteAudioPropertiesReport 回调获取订阅的远端用户的音频信息。
参数
config
类型: AudioPropertiesConfig | undefined
音频信息提示相关设置
开启转推直播,并设置合流的视频视图布局和音频属性。
(transcode: LiveTranscodeConfig) => Promise<void>
注意
调用该方法后,关于启动结果和推流过程中的错误,会收到 onStreamMixingEvent 回调。
调用 stopLiveTranscoding 停止转推直播。
参数
transcode
转推直播配置参数
返回值
类型: Promise<void>
更新转推直播参数。 使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。
(transcode: Partial<LiveTranscodeConfig>) => Promise<void>
参数
transcode
类型: Partial<LiveTranscodeConfig>
返回值
类型: Promise<void>
停止转推直播。 关于启动转推直播,参看 startLiveTranscoding。
() => Promise<void>
类型: Promise<void>
设置业务标识参数 可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。
(businessId: string) => boolean
需要在调用 joinRoom 之前调用,joinRoom 之后调用该方法无效。
参数
businessId
类型: string
businessId 只是一个标签,颗粒度需要用户自定义。
返回值
类型: boolean
设置用户可见性。默认可见。
(enable: boolean) => Promise<void>
注意
该方法在加入房间前后均可调用。
在房间内调用此方法,房间内其他用户会收到相应的回调通知:
false 切换至 true 时,房间内其他用户会收到 onUserJoined 回调通知;true 切换至 false 时,房间内其他用户会收到 onUserLeave 回调通知。参数
enable
类型: boolean
用户是否对房间内其他用户可见:
true: 可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。
false: 不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。
返回值
类型: Promise<void>
使用用户自定义的 videoTrack。 调用本方法前必须先调用 setVideoSourceType 设置为自定义视频采集。
(index: StreamIndex, track: MediaStreamTrack) => Promise<void>
参数
index
类型: StreamIndex
视频指针。
track
类型: MediaStreamTrack
自定义的 videoTrack,参看 MediaStreamTrack。
返回值
类型: Promise<void>
使用用户自定义的 audioTrack。 调用本方法前必须先调用 setAudioSourceType 设置为自定义音频采集。
(index: StreamIndex, track: MediaStreamTrack) => Promise<void>
参数
index
类型: StreamIndex
音频流指针
track
类型: MediaStreamTrack
自定义的 audioTrack,参看 MediaStreamTrack。
返回值
类型: Promise<void>
设置向 SDK 输入的视频源 默认使用内部采集。内部采集指:使用 RTC SDK 内置的视频采集机制进行视频采集。 该方法进房前后均可调用。 当你已调用 startVideoCapture 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。 当你调用此方法开启自定义采集,再调用此方法切换至内部采集时,必须再调用 startVideoCapture 手动开启内部采集。
(index: StreamIndex, videoSourceType: VideoSourceType) => Promise<void>
参数
index
类型: StreamIndex
视频流指针
videoSourceType
类型: VideoSourceType
视频采集模块
返回值
类型: Promise<void>
设置向 SDK 输入的音频源 默认使用内部采集。内部采集指:使用 RTC SDK 内置的音频采集机制进行音频采集。 该方法进房前后均可调用。 当你已调用 startAudioCapture 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。 当你调用此方法开启自定义采集,再调用此方法切换至内部采集时,必须再调用 startAudioCapture 手动开启内部采集。
(index: StreamIndex, audioSourceType: AudioSourceType) => Promise<void>
参数
index
类型: StreamIndex
音频流指针
audioSourceType
类型: AudioSourceType
音频采集模块
返回值
类型: Promise<void>
混音管理接口创建
() => IAudioMixingManager
类型: IAudioMixingManager
混音管理对象
设置 RTC SDK 内部采集时的音频采集参数。默认参数由浏览器决定。
(config: TrackCaptureConfig) => Promise<void>
参数
config
类型: TrackCaptureConfig
音频采集参数。例如,关闭浏览器音频 3A。支持传入设置的参数见 MediaTrackConstraints
返回值
类型: Promise<void>
设置 RTC SDK 内部采集时的视频采集参数。默认参数由浏览器决定。
(config: TrackCaptureConfig) => Promise<void>
参数
config
类型: TrackCaptureConfig
视频采集参数。支持传入设置的参数见 MediaTrackConstraints。
传入的 frameRate, height, width 仅为期望分辨率和帧率,内部采集实际生效的分辨率和帧率需要参看 startVideoCapture 的返回值。
返回值
类型: Promise<void>
登录即时消息服务器
调用此方法登录后,可以向同 appID 下其他已登陆用户发送文本或二进制消息。
(token: string | null, userId: string) => Promise<void>
注意
在调用本接口登录后,如果想要登出,需要调用 logout。
RTM_DUPLICATE_LOGIN 错误。参数
token
类型: string | null
动态密钥,用于对登录用户进行鉴权验证。 同进房相同,登录需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
userInfo
类型: string
用户信息。
返回值
类型: Promise<void>
调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。
() => Promise<void>
类型: Promise<void>
更新用户用于登录的 Token。Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。
(token: string | null) => Promise<void>
注意
如果 Token 无效导致登录失败,则调用此方法更新 Token 后,SDK 会自动重新登录,你无需再次调用 login 方法。
Token 过期时,如果已经成功登录,则不会受到影响。Token 过期的错误会在下一次使用过期 Token 登录时,或因本地网络状况不佳导致断网重新登录时通知。
参数
token
类型: string | null
更新的动态密钥
返回值
类型: Promise<void>
查询对端用户或本端用户的登录状态。在发送房间外消息之前,用户可以通过本接口了解对端用户是否登录,从而决定是否发送消息。也可以通过本接口查询自己查看自己的登录状态。
(userId: string) => Promise<USER_ONLINE_STATUS>
必须调用 login 登录后,才能调用本接口。
参数
userId
类型: string
需要查询的用户 ID
返回值
类型: Promise<USER_ONLINE_STATUS>
给房间外指定的用户发送文本消息(P2P)
(userId: string, message: string) => Promise<any>
注意
必须调用 login 登录后,才能调用本接口。
若文本消息发送成功,指定的用户会通过 EngineEventsTypes.onUserMessageReceivedOutsideRoom 回调收到该消息。
参数
userId
类型: string
消息接收用户的 ID
message
类型: string
发送的文本消息内容。消息不超过 64 KB。
返回值
类型: Promise<any>
给房间外指定的用户发送二进制消息(P2P)
(userId: string, message: ArrayBuffer) => Promise<any>
注意
必须调用 login 登录后,才能调用本接口。
若文本消息发送成功,则 uid 所指定的用户会通过 EngineEventsTypes.onUserBinaryMessageReceivedOutsideRoom 回调收到该消息。
参数
userId
类型: string
消息接收用户的 ID
message
类型: ArrayBuffer
发送的二进制消息内容。消息不超过 64 KB。
返回值
类型: Promise<any>
设置业务服务器参数。调用 sendServerMessage 或 sendServerBinaryMessage 发送消息给业务服务器之前,必须需要设置有效签名和业务服务器地址。
(signature: string, url: string) => Promise<any>
注意
用户必须调用 login 登录后,才能调用本接口。
调用本接口后将触发 onServerParamsSetResult 回调。
参数
signature
类型: string
动态签名。业务服务器会使用该签名对请求进行鉴权验证。
url
类型: string
业务服务器的地址
返回值
类型: Promise<any>
客户端给业务服务器发送文本消息(P2Server)
(message: string) => Promise<any>
在向业务服务器发送文本消息前,必须先调用 login 完成登录,随后调用 setServerParams 设置业务服务器。
参数
message
类型: string
发送的文本消息内容。消息不超过 64 KB。
返回值
类型: Promise<any>
客户端给业务服务器发送二进制消息(P2Server)
(message: ArrayBuffer) => Promise<any>
在向业务服务器发送文本消息前,必须先调用 login 完成登录,随后调用 setServerParams 设置业务服务器。
参数
message
类型: ArrayBuffer
发送的二进制消息内容。消息不超过 64 KB。
返回值
类型: Promise<any>
开启云代理
(cloudProxyInfo: CloudProxyInfo) => void
注意
在加入房间前调用此接口
要关闭云代理,调用 stopCloudProxy。
参数
cloudProxyInfo
类型: CloudProxyInfo
云代理服务器信息列表。
关闭云代理
() => void
要开启云代理,调用 startCloudProxy。
发布一路公共流。
(publicStreamId: string, publicStreamParam: PublicStreamConfig) => Promise<void>
注意
使用同一 appID 的用户,无论是否进房,可以调用 startPlayPublicStream 获取和播放指定的公共流。
调用 stopPushPublicStream 停止推公共流。
参数
publicStreamId
类型: string
公共流 ID。
publicStreamParam
公共流参数。 一路公共流可以包含多路房间内的媒体流,按照指定的布局方式进行聚合。 如果指定的媒体流还未发布,则公共流将在指定流开始发布后实时更新。
返回值
类型: Promise<void>
更新公共流参数。 调用 startPushPublicStream 发布一路公共流。
(publicStreamId: string, publicStreamParam: Partial<PublicStreamConfig>) => Promise<void>
参数
publicStreamId
类型: string
公共流 ID。 指定的流必须为当前用户所发布。
publicStreamParam
类型: Partial<PublicStreamConfig>
公共流参数。
返回值
类型: Promise<void>
停止发布公共流。 调用 startPushPublicStream 发布一路公共流。
(publicStreamId: string) => Promise<void>
参数
publicStreamId
类型: string
公共流 ID。 指定的流必须为当前用户所发布。
返回值
类型: Promise<void>
订阅指定公共流。 无论用户是否在房间内,都可以调用本接口获取和播放指定的公共流。
(publicStreamId: string) => Promise<void>
注意
建议在调用本接口前,先调用 setPublicStreamVideoPlayer 设置使用的视图和渲染模式。
调用 stopPlayPublicStream 取消订阅公共流。
参数
publicStreamId
类型: string
公共流 ID。 如果指定流暂未发布,则本地客户端将在其开始发布后接收到流数据。
返回值
类型: Promise<void>
取消订阅指定公共流。 关于订阅公共流,查看 startPlayPublicStream。
(publicStreamId: string) => Promise<void>
参数
publicStreamId
类型: string
公共流 ID。
返回值
类型: Promise<void>
为指定公共流设置使用的视图和渲染模式。
(publicStreamId: string, videoPlayerOption: Omit<VideoPlayerOption, 'userId'>) => void
参数
publicStreamId
类型: string
公共流 ID。
videoPlayerOption
类型: Omit<VideoPlayerOption, "userId">
视图信息和渲染模式。
停止内部摄像头采集时,使用静态图片填充本地推送的视频流。
(index: StreamIndex, filePath: string) => Promise<void>
注意
Mac 端的 Chrome 浏览器上支持此功能
本地预览时,无法看到此图片。
参数
index
类型: StreamIndex
filePath
类型: string
以 Http 协议表示的图片地址,或 Blob 对象。 图片类型支持:JPG、PNG、BMP。 图片长宽比和视频编码参数不一致时,图片会被等比缩放,直至其两边长小于等于视频编码参数中的宽高。
返回值
类型: Promise<void>
获取合流转推默认参数。
() => Required<LiveTranscodeConfig>
类型: Required<LiveTranscodeConfig>
转推直播默认音视频参数
设置订阅的音视频流的回退选项。 回退指:设置网络不佳时允许订阅流进行降级或只订阅音频流,以保证通话流畅。
(option: SubscribeFallbackOption) => boolean
注意
必须在进房前设置,进房后设置或更改设置无效。
可以调用 API 或者在服务端下发策略设置回退。当使用服务端下发配置实现时,下发配置优先级高于在客户端使用 API 设定的配置。
参数
option
订阅的音视频流回退选项
返回值
类型: boolean
true 设置成功;false 设置失败。设置用户优先级。 该方法与 setSubscribeFallbackOption 搭配使用。 开启回退后,会优先保证收到的高优先级用户的流的质量。
(userId: string, priority: RemoteUserPriority) => boolean
参数
userId
类型: string
远端用户的 ID
priority
远端用户优先级
返回值
类型: boolean
true 设置成功;false 设置失败。启动音频播放设备检测。测试启动后,循环播放指定的音频文件,同时将通过 onAudioPlaybackDeviceTestVolume 回调播放时的音量信息。
(filePath: string, indicationInterval: number) => Promise<void>
注意
该方法在用户进房前后均可调用。但不可与其它音频设备测试功能同时应用。
调用 stopAudioPlaybackDeviceTest 可以停止测试。
参数
filePath
类型: string
指定播放设备检测的音频文件网络地址。包括格式 wav 和 mp3。
indicationInterval
类型: number
onAudioPlaybackDeviceTestVolume 音量回调的时间间隔,推荐设置为 200 毫秒或以上。单位为毫秒。最小值为 100 毫秒。
返回值
类型: Promise<void>
当测试流程结束时 Resolve
停止音频播放设备测试。
() => void
调用 startAudioPlaybackDeviceTest 后,调用本方法停止测试。
开始音频采集设备和音频播放设备测试。 建议提前调用 enableAudioPropertiesReport 注册音量提示回调,测试开始后,音频设备开始采集本地声音,可以通过 onLocalAudioPropertiesReport 获取采集音量。
(indicationInterval: number) => Promise<void>
注意
该方法在 joinRoom 前后均可调用。但不可与其它音频设备测试功能同时应用。
该方法仅在本地进行音频设备测试,不涉及网络连接。
参数
indicationInterval
类型: number
测试录音播放时触发 onAudioPlaybackDeviceTestVolume 播放音量回调,本参数指定了该周期回调的时间间隔。推荐设置为 200 毫秒或以上。单位为毫秒。最小值为 100 毫秒。
返回值
类型: Promise<void>
当测试流程结束时 Resolve
停止采集本地音频,并开始播放采集到的声音。录音播放完毕后,设备测试流程结束。 调用 startAudioDeviceRecordTest 30 s 内调用本接口来停止采集并开始播放此前采集到的声音。
() => void
调用本接口开始播放录音后,可以在播放过程中调用 stopAudioDevicePlayTest 停止播放。
停止由调用 startAudioDeviceRecordTest 开始的音频播放设备测试。 在音频播放设备测试自动结束前,可调用本接口停止音频采集与播放测试。
() => void
设置音质档位
(profile: AudioProfileType) => void
推荐在音频采集开始之前调用本接口。
参数
profile
类型: AudioProfileType
音质档位。不同的音质档位有着不同的音频参数,带来不同的听觉体验,你应根据业务场景选择适合的音质档位。
获取本地用户的音频或者视频的 MediaStreamTrack。
(streamIndex: StreamIndex, type: 'video' | 'audio') => MediaStreamTrack | undefined
注意
调用时机,本地采集开启后或已指定外部 MediaStreamTrack 后。
ended 事件,MediaStreamTrack 随即被关闭。参数
streamIndex
类型: StreamIndex
流属性,包括主流、屏幕流。
type
类型: "video" | "audio"
媒体流类型,视频或音频。
音频:可分别获取本地麦克风、本地音频外部源、播放本地音频文件、本地屏幕流音频的音轨。
视频:可分别获取本地摄像头、本地视频外部源、本地屏幕视频的视频轨道。
返回值
类型: MediaStreamTrack | undefined
当 MediaStreamTrack 不存在时,比如没有开启采集,返回 undefined。
获取已订阅的远端用户的音频或者视频的 MediaStreamTrack。
(userId: string, streamIndex: StreamIndex, type: 'video' | 'audio') => MediaStreamTrack | undefined
注意
调用时机,订阅该远端流之后。
ended 事件, MediaStreamTrack 随即被关闭。onRemoteStreamStats参数
userId
类型: string
远端用户 ID。
streamIndex
类型: StreamIndex
流属性,包括主流、屏幕流。
type
类型: "video" | "audio"
媒体流类型,视频或音频。
可分别单独获取远端麦克风、远端屏幕音频的音轨。
可分别获取远端摄像头、远端屏幕视频的视频轨道。
返回值
类型: MediaStreamTrack | undefined
当 MediaStreamTrack 不存在时,比如没有订阅该流,返回 undefined。
获取已订阅的公共流的音频或者视频的 MediaStreamTrack。
(id: string, type: 'video' | 'audio') => MediaStreamTrack | undefined
注意
调用时机,调用 stopPlayPublicStream 订阅公共流后。
调用 stopPlayPublicStream 停止订阅公共流时,将触发该 MediaStreamTrack 回调的 ended 事件, MediaStreamTrack 随即被关闭。
参数
id
类型: string
公共流 ID。
type
类型: "video" | "audio"
媒体流类型,视频或音频。
返回值
类型: MediaStreamTrack | undefined
当 MediaStreamTrack 不存在时,比如没有订阅该公共流,返回 undefined。
截取本地视频画面
(streamIndex: StreamIndex) => Promise<ImageData>
注意
对截取的画面,包含本地视频处理的全部效果,包含旋转,镜像,美颜等。
不管采用 SDK 内部采集,还是自定义采集,都可以进行截图。
参数
streamIndex
类型: StreamIndex
截图的视频流。
返回值
类型: Promise<ImageData>
截取远端视频画面
(id: string, streamIndex: StreamIndex) => Promise<ImageData>
参数
id
类型: string
用户 ID/公共流 ID
streamIndex
类型: StreamIndex
截图的视频流。
返回值
类型: Promise<ImageData>
注册插件。
(extension: RTCExtension) => Promise<void>
你可以通过插件实现: • 基础美颜功能; • AI 降噪功能。
参数
extension
类型: RTCExtension
插件实例。
返回值
类型: 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 编码类型 |
创建引擎对象。 你必须先使用此方法,以使用 RTC 提供的各种音视频能力。 再次调用此方法时,会创建另一个独立的引擎实例。
(appId: string, config?: EngineConfig | undefined) => IRTCEngine
注意
通过分别调用 destroyEngine 销毁已经创建的多个引擎实例。
每个引擎都将消耗一定系统资源,通常不建议同时创建多于 2 个引擎实例。
参数
appId
类型: string
每个应用的唯一标识符,由 RTC 控制台随机生成的。不同的 AppId 生成的实例在 RTC 中进行音视频通话完全独立,无法互通。
config
类型: EngineConfig | undefined
引擎级的设置项。例如,是否开启自动播放。
返回值
类型: IRTCEngine
创建成功后返回一个可用的 IRTCEngine 实例
手动销毁通过 createEngine 所创建的引擎对象。
(engine: IRTCEngine) => void
注意
请确保与需要销毁的相关的业务场景全部结束后,才调用此方法。
本方法为阻塞调用,会阻塞当前线程直到 SDK 彻底完成退出逻辑,因而需要注意不要在回调线程中直接调用本方法,也需要注意不要在回调方法中等待主线程的执行,而同时在主线程调用本方法,从而造成死锁
参数
engine
类型: IRTCEngine
销毁所有和此 IRTCEngine 实例相关的内存,并且停止与媒体服务器的任何交互。
获取 SDK 当前的版本号。
() => string
类型: string
SDK 当前的版本号
枚举可用的媒体输入和输出设备,比如麦克风、摄像头、耳机等。 可以通过该方法获取设备的 deviceId, 用于在 setAudioPlaybackDevice、startVideoCapture、startAudioCapture 方法中指定采集/播放设备。
() => Promise<MediaDeviceInfo[]>
浏览器只有在已经获得设备权限时,才能准确获取设备信息。建议授权访问后调用本接口。
类型: Promise<MediaDeviceInfo[]>
媒体设备列表。
向用户获取设备权限
(options?: { video: boolean; audio: boolean; } | undefined) => Promise<{ video: boolean; audio: boolean;}>
参数
options
类型: { video: boolean; audio: boolean; } | undefined
需要获取权限的设备类型
| 名称 | 类型 | 描述 |
|---|---|---|
| video | boolean |
视频设备 |
| audio | boolean |
音频设备 |
返回值
类型: Promise<{ video: boolean; audio: boolean; }>
video: boolean 视频设备audio:boolean 音频设备该方法枚举可用的麦克风。
可以通过该方法获取设备的 deviceId, 用于在 startAudioCapture、setAudioCaptureDevice 方法中指定使用的麦克风设备。
() => Promise<MediaDeviceInfo[]>
浏览器只有在已经获得设备权限时,才能准确获取设备信息。建议授权访问后调用本接口。
类型: Promise<MediaDeviceInfo[]>
所有的麦克风设备列表。
该方法枚举可用的摄像头等。 可以通过该方法获取设备的 deviceId, 用于在 startVideoCapture、setVideoCaptureDevice 方法中指定使用的摄像头设备。
() => Promise<MediaDeviceInfo[]>
浏览器只有在已经获得设备权限时,才能准确获取设备信息。建议授权访问后调用本接口。
类型: Promise<MediaDeviceInfo[]>
所有的摄像头设备列表。
该方法枚举可用的音频播放设备,例如耳机、音箱等。 可以通过该方法获取设备的 deviceId, 可用于 setAudioPlaybackDevice 方法中指定音频播放设备。
() => Promise<MediaDeviceInfo[]>
浏览器只有在已经获得设备权限时,才能准确获取设备信息。建议授权访问后调用本接口。
类型: Promise<MediaDeviceInfo[]>
所有的音频播放设备列表。
浏览器是否支持
() => Promise<boolean>
类型: Promise<boolean>
True: 支持False:不支持获取当前浏览器支持的编解码类型。 若你已开通 vp8 业务,可以在进房前调用该接口查看当前浏览器是否支持 vp8 编码类型
() => Promise<string[]>
类型: Promise<string[]>
当前浏览器支持的编解码类型
类型: 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>
注意
如果已经通过 preloadAudioMixing 加载音效,确保此处的 ID 与上次调用 preloadAudioMixing 设置的 ID 相同。
ID 重复调用本方法,前一次混音会停止,后一次混音开始本方法的混音数据来源于外部文件,而 enableAudioMixingFrame 的混音数据来源于外部缓存且音频格式为 PCM,这两种混音方式可以共存。
参数
id
类型: number
混音 ID。 混音 ID 用于标识混音,请保证混音 ID 唯一性。
filePath
类型: string
指定需要混音的音频文件的绝对路径,支持音频文件格式有: mp3,aac等
options
类型: MixOption
混音配置 可以设置混音的播放次数、是否本地播放混音、以及是否将混音发送至远端
返回值
类型: Promise<void>
停止播放音频文件
(id: number) => void
注意
调用 startAudioMixing 方法开始播放音频文件后,可以调用本方法停止播放音频文件。
调用本方法停止播放音频文件后,该音频文件会被自动卸载。
参数
id
类型: number
混音 ID
暂停播放音频文件
(id: number) => void
注意
调用 startAudioMixing 方法开始播放音频文件后,可以通过调用本方法暂停播放音频文件。
调用本方法暂停播放音频文件后,可调用 resumeAudioMixing 方法恢复播放及混音。
参数
id
类型: number
混音 ID
恢复播放音频文件
(id: number) => void
调用 pauseAudioMixing 方法暂停播放音频文件后,可以通过调用本方法恢复播放及混音。
参数
id
类型: number
混音 ID
预加载指定音频文件到内存中
(id: number, filePath: string) => Promise<void>
注意
需要频繁播放某个音频文件的时候,调用本方法预加载该文件,在播放的时候可以只加载一次该文件,减少 CPU 占用。
调用本方法预加载的指定音频文件可以通过 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>
卸载指定音频文件
(id: number) => void
参数
id
类型: number
混音 ID
调节混音的音量大小,包括音频文件混音和 PCM 混音。
(id: number, volume: number) => void
参数
id
类型: number
混音 ID
volume
类型: number
混音音量相对原音量的比值。范围为 [0, 400],建议范围是 [0, 100]。
0:静音
获取音频文件的音量
(id: number) => number
参数
id
类型: number
混音 ID
返回值
类型: number
0: 获取失败>0: 成功,音量值获取音频文件时长
(id: number) => number
调用本方法获取音频文件时长前,需要先调用 preloadAudioMixing 或 startAudioMixing。
参数
id
类型: number
混音 ID
返回值
类型: number
0: 成功, 音频文件时长,单位为毫秒。
获取音频文件播放进度
(id: number) => number
调用本方法获取音频文件播放进度前,需要先调用 startAudioMixing 开始播放音频文件。
参数
id
类型: number
混音 ID
返回值
类型: number
0: 成功, 音频文件播放进度,单位为毫秒。
设置音频文件的起始播放位置
(id: number, position: number) => void
注意
调用本方法你可以根据实际情况从指定的位置播放音频文件,无需从头到尾完整播放一个音频文件。
调用本方法设置音频文件起始播放位置前,需要先调用 startAudioMixing 开始播放音频文件。
参数
id
类型: number
混音 ID
position
类型: number
音频文件起始播放位置,单位为毫秒。 你可以通过 getAudioMixingDuration 获取音频文件总时长,position 的值不得大于音频文件总时长。
启动 PCM 音频数据混音
(type: AudioMixingType) => void
注意
必须先调用本方法启动 PCM 音频数据混音,随后调用 pushAudioMixingFrame 方法,才会开始混音。
如要结束 PCM 音频数据混音,使用 disableAudioMixingFrame。
参数
type
类型: AudioMixingType
混音类型。是否本地播放、以及是否发送到远端
关闭 PCM 混音
() => void
推送 PCM 音频数据用于混音
(buffer: AudioBuffer) => void
调用该方法前,须通过 enableAudioMixingFrame 启动外部音频流混音。
参数
buffer
类型: AudioBuffer
音频缓冲池,详见浏览器文档