类型: class
| 名称 | 描述 |
|---|---|
| createRTCRoom() | 创建房间 多次调用此方法以创建多个 veRTCRoom 实例。分别调用各实例中的 joinRoom 方法,同时加入多个房间。多房间模式下,用户可以同时订阅各房间的音视频流。 |
| getRoomId() | 获取房间 ID |
| destroy() | 退出并销毁调用 createRTCRoom 所创建的房间。 |
| joinRoom() | 加入房间。 多房间场景下,调用 createRTCRoom 创建房间后,调用此方法加入房间,同房间内其他用户进行音视频通话。 |
| leaveRoom() | 离开房间。 用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。 调用 joinRoom 方法加入房间后,必须调用此方法结束通话,否则无法开始下一次通话。无论当前是否在房间内,都可以调用此方法。重复调用此方法没有负面影响。 此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 onLeaveRoom 回调通知。 |
| setUserVisibility() | 设置用户可见性。默认可见。 |
| setMultiDeviceAVSync() | 设置发流端音画同步。 当同一用户同时使用两个通话设备分别采集发送音频和视频时,有可能会因两个设备所处的网络环境不一致而导致发布的流不同步,此时你可以在视频发送端调用该接口,SDK 会根据音频流的时间戳自动校准视频流,以保证接收端听到音频和看到视频在时间上的同步性。 |
| updateToken() | 更新 Token。 用于加入房间的 Token 有一定的有效期。在 Token 过期前 30 秒,会收到 onTokenWillExpire 回调,此时需要重新获取 Token,并调用此方法更新 Token,否则用户将因为 Token 过期被移出房间。 调用 joinRoom 方法加入房间或断网重连进入房间时,如果 Token 过期或无效,将导致加入房间失败,并会收到 onRoomStateChanged 回调通知,回调错误码为 ErrorCode} 中的 ERROR_CODE_INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。 |
| setRemoteVideoConfig() | 设置期望订阅的远端视频流的参数。 |
| publishStream() | 在当前所在房间内发布本地通过摄像头/麦克风采集的媒体流 |
| unpublishStream() | 停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中 |
| publishScreen() | 在当前所在房间内发布本地屏幕共享音视频流 |
| unpublishScreen() | 停止将本地屏幕共享音视频流发布到当前所在房间中 |
| subscribeStream() | 订阅房间内指定的通过摄像头/麦克风采集的媒体流,或更新对指定远端用户的订阅选项 |
| unsubscribeStream() | 取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。 该方法对自动订阅和手动订阅模式均适用。 |
| subscribeScreen() | 订阅房间内指定的远端屏幕共享音视频流,或更新对指定远端用户的订阅选项 |
| unsubscribeScreen() | 取消订阅房间内指定的远端屏幕共享音视频流。 该方法对自动订阅和手动订阅模式均适用。 |
| pauseAllSubscribedStream() | 暂停接收来自远端的媒体流。 |
| resumeAllSubscribedStream() | 恢复接收来自远端的媒体流 |
| sendUserMessage() | 给房间内指定的用户发送点对点文本消息 |
| sendUserBinaryMessage() | 给房间内指定的用户发送点对点二进制消息。 |
| sendRoomMessage() | 给房间内的所有其他用户群发文本消息。 |
| sendRoomBinaryMessage() | 给房间内的所有其他用户群发二进制消息。 |
| startForwardStreamToRooms() | 开始跨房间转发媒体流。 在用户进入房间后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。 |
| updateForwardStreamToRooms() | 更新跨房间媒体流转发信息。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。 调用本方法增加或删减房间后,将在本端触发 onForwardStreamStateChanged 回调,包含发生了变动的目标房间中媒体流转发状态。 |
| stopForwardStreamToRooms() | 停止跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法停止向所有目标房间转发媒体流。 |
| pauseForwardStreamToAllRooms() | 暂停跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法暂停向所有目标房间转发媒体流。 调用本方法暂停向所有目标房间转发后,你可以随时调用 resumeForwardStreamToAllRooms(#resumeforwardstreamtoallrooms) 快速恢复转发。 |
| resumeForwardStreamToAllRooms() | 恢复跨房间媒体流转发。 调用 pauseForwardStreamToAllRooms 暂停转发之后,调用本方法恢复向所有目标房间转发媒体流。 |
| enableRangeAudio() | 游戏语音场景下,是否开启区域语音,默认开启区域语音 |
| updateReceiveRange() | 更新本地用户的音频收听范围。 |
| updateRangePosition() | 更新本地用户在房间内空间直角坐标系中的位置坐标。 |
| registerRangeAudioObserver() | 设置范围语音衰减系数监测器。 设置后,SDK 会在监测到房间内有用户更新自身位置坐标或音频收听范围后,触发 onRangeAudioInfo 回调。 |
| setAttenuationModel() | 设置范围语音的音量衰减模式。 衰减模式更改后,onRangeAudioInfo 回调将根据最后设置的衰减模式进行计算并返回音量衰减数值 |
| enableSpatialAudio() | 开启/关闭空间音频功能。 |
| updateSpatialPosition() | 更新本地用户在房间内空间直角坐标系中的位置坐标。 |
| updateSelfOrientation() | 更新本地用户在空间音频坐标系下的朝向。 |
| disableRemoteOrientation() | 参与通话的各端调用本接口后,将忽略远端用户的朝向,认为所有远端用户都面向本地用户。 如果此后调用 updateSelfOrientation 更新本地用户朝向,远端用户无法感知这些变化,但本地用户接收音频时可以感知自身朝向改变带来的音频效果变化。 |
创建房间
多次调用此方法以创建多个 veRTCRoom 实例。分别调用各实例中的 joinRoom 方法,同时加入多个房间。多房间模式下,用户可以同时订阅各房间的音视频流。
ts
(roomId: string) => 0 | -1
参数
roomId
类型: string
标识通话房间的房间 ID,最大长度为 128 字节的非空字符串。支持的字符集范围为:
• 26个大写字母 A ~ Z
• 26个小写字母 a ~ z
• 10个数字 0 ~ 9
• 下划线 "_", at 符 "@", 减号 "-"
多房间模式下,调用创建房间接口后,请勿调用同样的 roomID 创建房间,否则会导致创建房间失败。
返回值
0: 成功
-1: 失败获取房间 ID
ts
() => string
类型: string
房间 ID
退出并销毁调用 createRTCRoom 所创建的房间。
ts
() => number
类型: number
0: 成功-1: 失败加入房间。
多房间场景下,调用 createRTCRoom 创建房间后,调用此方法加入房间,同房间内其他用户进行音视频通话。
ts
(token: string, userInfo: UserInfo, config: RTCRoomConfig) => number
注意
同一个 App ID 的同一个房间内,每个用户的用户 ID 必须是唯一的。如果两个用户的用户 ID 相同,则后进房的用户会将先进房的用户踢出房间,并且先进房的用户会收到 onError 回调通知,错误类型详见 ErrorCode} 中的 kErrorCodeDuplicateLogin。
用户加入房间成功后,在本地网络状况不佳的情况下,SDK 可能会与服务器失去连接,此时 SDK 将会自动重连。重连成功后,本地会收到 onRoomStateChanged 回调通知;如果加入房间的用户是主播角色,远端用户会收到 onUserJoined 回调通知。
参数
token
类型: string
动态密钥。用于对进房用户进行鉴权验证。
进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
使用不同 AppID 的 App 是不能互通的。
请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。
userInfo
类型: UserInfo
用户信息
config
类型: RTCRoomConfig
房间参数配置,设置房间模式以及是否自动发布或订阅流。
返回值
类型: number
离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
调用 joinRoom 方法加入房间后,必须调用此方法结束通话,否则无法开始下一次通话。无论当前是否在房间内,都可以调用此方法。重复调用此方法没有负面影响。
此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 onLeaveRoom 回调通知。
ts
() => number
注意
调用 setUserVisibility 将自身设为可见的用户离开房间后,房间内其他用户会收到 onUserLeave 回调通知。
如果调用此方法后立即销毁引擎,SDK 将无法触发 onLeaveRoom 回调。
返回值
类型: number
0: 成功-1: 失败设置用户可见性。默认可见。
ts
(enable: Boolean) => number
注意
在加入房间前后,用户均可调用此方法设置用户可见性。
若调用该方法将可见性设为 false,此时尝试发布流会收到 WARNING_CODE_PUBLISH_STREAM_FORBIDEN 警告。
参数
enable
类型: Boolean
设置用户是否对房间内其他用户可见:
+ true: 可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。
+ false: 不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。
返回值
类型: number
设置发流端音画同步。
当同一用户同时使用两个通话设备分别采集发送音频和视频时,有可能会因两个设备所处的网络环境不一致而导致发布的流不同步,此时你可以在视频发送端调用该接口,SDK 会根据音频流的时间戳自动校准视频流,以保证接收端听到音频和看到视频在时间上的同步性。
ts
(audioUserId: string) => number
注意
该方法在进房前后均可调用。
如需更换同步音频源,再次调用该接口传入新的 audioUserId 即可;如需更换同步视频源,需先解除当前的同步关系,后在新视频源端开启同步。
参数
audioUserId
类型: string
音频发送端的用户 ID,将该参数设为空则可解除当前音视频的同步关系。
返回值
类型: number
方法调用结果:
更新 Token。
用于加入房间的 Token 有一定的有效期。在 Token 过期前 30 秒,会收到 onTokenWillExpire 回调,此时需要重新获取 Token,并调用此方法更新 Token,否则用户将因为 Token 过期被移出房间。
调用 joinRoom 方法加入房间或断网重连进入房间时,如果 Token 过期或无效,将导致加入房间失败,并会收到 onRoomStateChanged 回调通知,回调错误码为 ErrorCode} 中的 ERROR_CODE_INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。
ts
(token: string) => number
当 Token 过期时,用户将被移出房间并将收到 onStreamStateChanged 回调,错误码为 ERROR_CODE_EXPIRED_TOKEN,此时需要重新获取 Token,并调用 joinRoom 重新加入房间。
参数
token
类型: string
获取的新的有效 Token。
如果传入的 Token 无效,回调错误码为 ErrorCode} 中的 ERROR_CODE_UPDATE_TOKEN_WITH_INVALID_TOKEN。
返回值
类型: number
0: 成功-1: 失败设置期望订阅的远端视频流的参数。
ts
(userId: string, remoteVideoConfig: RemoteVideoConfig) => number
注意
若使用 1.5.0 及以前版本的 SDK,调用该方法前请联系技术支持人员通过配置下发开启按需订阅功能。
roomConfig 中的 remoteVideoConfig 进行设置。SDK 会根据发布端和所有订阅端的设置灵活调整视频流的参数,具体调整策略详见推送多路流文档。
参数
userId
类型: string
期望订阅的远端视频流发布用户的 ID。
remoteVideoConfig
期望订阅的远端视频流参数
返回值
类型: number
0: 成功-1: 失败在当前所在房间内发布本地通过摄像头/麦克风采集的媒体流
ts
(type: MediaStreamType) => number
注意
如果你已经在用户进房时通过调用 joinRoom 成功选择了自动发布,则无需再调用本接口。
调用 unpublishStream 取消发布。
参数
type
类型: MediaStreamType
媒体流类型,用于指定发布音频/视频
返回值
类型: number
0: 成功-1: 失败停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中
ts
(type: MediaStreamType) => number
注意
调用 publishStream 手动发布摄像头音视频流后,你需调用此接口停止发布。
调用此方法停止发布音视频流后,房间中的其他用户将会收到 onUserUnpublishStream 回调通知。
参数
type
类型: MediaStreamType
媒体流类型,用于指定停止发布音频/视频
返回值
类型: number
0: 成功-1: 失败在当前所在房间内发布本地屏幕共享音视频流
ts
(type: MediaStreamType) => number
注意
如果你已经在用户进房时通过调用 joinRoom 成功选择了自动发布,则无需再调用本接口。
调用 unpublishScreen 取消发布。
参数
type
类型: MediaStreamType
媒体流类型,用于指定发布屏幕音频/视频
返回值
类型: number
0: 成功-1: 失败停止将本地屏幕共享音视频流发布到当前所在房间中
ts
(type: MediaStreamType) => number
注意
调用 publishScreen 发布屏幕流后,你需调用此接口停止发布。
调用此方法停止发布屏幕音视频流后,房间中的其他用户将会收到 onUserUnpublishScreen 回调。
参数
type
类型: MediaStreamType
媒体流类型,用于指定停止发布屏幕音频/视频
返回值
类型: number
0: 成功-1: 失败订阅房间内指定的通过摄像头/麦克风采集的媒体流,或更新对指定远端用户的订阅选项
ts
(userId: string, type: MediaStreamType) => number
注意
当调用本接口时,当前用户已经订阅该远端用户,不论是通过手动订阅还是自动订阅,都将根据本次传入的参数,更新订阅配置。
关于其他调用异常,你会收到 onStreamStateChanged 回调通知,具体异常原因参看 ErrorCode}。
参数
userId
类型: string
指定订阅的远端发布音视频流的用户 ID。
type
类型: MediaStreamType
媒体流类型,用于指定订阅音频/视频。
返回值
类型: number
0: 成功-1: 失败取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。
ts
(userId: string, type: MediaStreamType) => number
注意
调用该方法后,你会收到 onStreamSubscribed 通知流的退订结果。
关于其他调用异常,你会收到 onStreamStateChanged 回调通知,具体失败原因参看 ErrorCode}。
参数
userId
类型: string
指定取消订阅的远端发布音视频流的用户 ID。
type
类型: MediaStreamType
媒体流类型,用于指定取消订阅音频/视频。
返回值
类型: number
0: 成功-1: 失败订阅房间内指定的远端屏幕共享音视频流,或更新对指定远端用户的订阅选项
ts
(userId: string, type: MediaStreamType) => number
注意
当调用本接口时,当前用户已经订阅该远端用户,不论是通过手动订阅还是自动订阅,都将根据本次传入的参数,更新订阅配置。
关于其他调用异常,你会收到 onStreamStateChanged 回调通知,具体异常原因参看 ErrorCode}。
参数
userId
类型: string
指定订阅的远端发布屏幕流的用户 ID。
type
类型: MediaStreamType
媒体流类型,用于指定订阅音频/视频。
返回值
类型: number
0: 成功-1: 失败取消订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。
ts
(userId: string, type: MediaStreamType) => number
注意
调用该方法后,你会收到 onStreamSubscribed 通知流的退订结果。
关于其他调用异常,你会收到 onStreamStateChanged 回调通知,具体失败原因参看 ErrorCode}。
参数
userId
类型: string
指定取消订阅的远端发布屏幕流的用户 ID。
type
类型: MediaStreamType
媒体流类型,用于指定取消订阅音频/视频。
返回值
类型: number
0: 成功-1: 失败暂停接收来自远端的媒体流。
ts
(mediaType: PauseResumeControlMediaType) => number
注意
该方法仅暂停远端流的接收,并不影响远端流的采集和发送;
多房间场景下,仅暂停接收发布在当前所在房间的流。
参数
mediaType
类型: PauseResumeControlMediaType
媒体流类型,指定需要暂停接收音频还是视频流,参看 pauseResumeControlMediaType。
返回值
类型: number
0: 成功-1: 失败恢复接收来自远端的媒体流
ts
(mediaType: PauseResumeControlMediaType) => number
注意
该方法仅恢复远端流的接收,并不影响远端流的采集和发送;
该方法不改变用户的订阅状态以及订阅流的属性。
参数
mediaType
类型: PauseResumeControlMediaType
媒体流类型,指定需要暂停接收音频还是视频流,参看 pauseResumeControlMediaType
返回值
类型: number
0: 成功-1: 失败给房间内指定的用户发送点对点文本消息
ts
(uid: string, message: string, config: MessageConfig) => number
注意
在发送房间内文本消息前,必须先调用 joinRoom 加入房间。
若消息发送成功,则 userId 所指定的用户会收到 onUserMessageReceived 回调。
参数
uid
类型: string
消息接收用户的 ID
message
类型: string
发送的文本消息内容
消息不超过 64 KB。
config
类型: MessageConfig
消息发送的可靠/有序类型
返回值
类型: number
0: 成功-1: 失败给房间内指定的用户发送点对点二进制消息。
ts
(uid: string, length: number, message: Uint8Array, config: MessageConfig) => number
注意
在发送房间内二进制消息前,必须先调用 joinRoom 加入房间。
若消息发送成功,则 userId 所指定的用户会收到 onUserBinaryMessageReceived 回调。
参数
uid
类型: string
消息接收用户的 ID
length
类型: number
二进制字符串的长度
message
类型: Uint8Array
发送的二进制消息内容
消息不超过 46KB。
config
类型: MessageConfig
消息类型
返回值
类型: number
0: 成功-1: 失败给房间内的所有其他用户群发文本消息。
ts
(message: string) => number
注意
在房间内广播文本消息前,必须先调用 joinRoom 加入房间。
同一房间内的其他用户会收到 onRoomMessageReceived 回调。
参数
message
类型: string
发送的文本消息内容
消息不超过 64 KB。
返回值
类型: number
0: 成功-1: 失败给房间内的所有其他用户群发二进制消息。
ts
(size: number, message: Uint8Array) => number
注意
在房间内广播二进制消息前,必须先调用 joinRoom 加入房间。
同一房间内的其他用户会收到 onRoomBinaryMessageReceived 回调。
参数
size
类型: number
发送的二进制消息长度
message
类型: Uint8Array
发送的二进制消息内容,消息不超过 46KB。
返回值
类型: number
0: 成功-1: 失败开始跨房间转发媒体流。
在用户进入房间后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。
ts
(configuration: ForwardStreamConfiguration) => number
注意
调用本方法后,将在本端触发 onForwardStreamStateChanged 回调。
调用本方法后,可以调用 pauseForwardStreamToAllRooms 暂停向所有房间转发媒体流。
参数
configuration
类型: ForwardStreamConfiguration
跨房间媒体流转发指定房间的信息。
返回值
类型: number
0: 成功-1: 失败更新跨房间媒体流转发信息。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。
调用本方法增加或删减房间后,将在本端触发 onForwardStreamStateChanged 回调,包含发生了变动的目标房间中媒体流转发状态。
ts
(configuration: ForwardStreamConfiguration) => number
注意
增加目标房间后,新增目标房间中的用户将接收到本地用户进房 onUserJoined 和发布 onUserPublishStream/ onUserPublishScreen 的回调。
删减目标房间后,原目标房间中的用户将接收到本地用户停止发布 onUserUnpublishStream / onUserUnpublishScreen 和退房 onUserLeave 的回调。
参数
configuration
类型: ForwardStreamConfiguration
跨房间媒体流转发目标房间信息。
返回值
类型: number
0: 成功-1: 失败停止跨房间媒体流转发。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法停止向所有目标房间转发媒体流。
ts
() => number
注意
调用本方法后,将在本端触发 onForwardStreamStateChanged 回调。
如果需要暂停转发,请调用 pauseForwardStreamToAllRooms,并在之后随时调用 resumeForwardStreamToAllRooms(#resumeforwardstreamtoallrooms) 快速恢复转发。
返回值
类型: number
暂停跨房间媒体流转发。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法暂停向所有目标房间转发媒体流。
调用本方法暂停向所有目标房间转发后,你可以随时调用 resumeForwardStreamToAllRooms(#resumeforwardstreamtoallrooms) 快速恢复转发。
ts
() => number
调用本方法后,目标房间中的用户将接收到本地用户停止发布 onUserUnpublishStream/onUserUnpublishScreen 和退房 onUserLeave 的回调。
类型: number
恢复跨房间媒体流转发。
调用 pauseForwardStreamToAllRooms 暂停转发之后,调用本方法恢复向所有目标房间转发媒体流。
ts
() => number
目标房间中的用户将接收到本地用户进房 onUserJoined 和发布 onUserPublishStream/onUserPublishScreen 的回调。
类型: number
游戏语音场景下,是否开启区域语音,默认开启区域语音
ts
(enable: boolean) => number
如果开启区域语音,非队友之间在收发世界模式下语音会根据用户之间的距离衰减,超过收听范围就听不到,如果关闭区域语音,非队友之间在收发世界模式下,语音不会随距离衰减
参数
enable
类型: boolean
返回值
类型: number
0: 成功-1: 失败更新本地用户的音频收听范围。
ts
(range: ReceiveRange) => number
若此前你已调用 registerRangeAudioObserver 注册了范围语音衰减系数监测器,房间内有任何用户调用该接口更新音频收听范围后,你都会收到 onRangeAudioInfo 回调。
参数
range
类型: ReceiveRange
音频收听范围
返回值
类型: number
方法调用结果:
更新本地用户在房间内空间直角坐标系中的位置坐标。
ts
(pos: Position) => number
注意
调用该接口更新坐标后,你需调用 enableRangeAudio 开启范围语音功能以收听范围语音效果。
若此前你已调用 registerRangeAudioObserver 注册了范围语音衰减系数监测器,房间内有任何用户调用该接口更新自身位置坐标后,你都会收到 onRangeAudioInfo 回调。
参数
pos
类型: Position
三维坐标的值,默认为 [0, 0, 0]
返回值
类型: number
方法调用结果:
设置范围语音衰减系数监测器。
设置后,SDK 会在监测到房间内有用户更新自身位置坐标或音频收听范围后,触发 onRangeAudioInfo 回调。
ts
() => number
该方法仅适用于手动订阅模式,自动订阅无需设置。
类型: number
0: 成功-1: 失败设置范围语音的音量衰减模式。
衰减模式更改后,onRangeAudioInfo 回调将根据最后设置的衰减模式进行计算并返回音量衰减数值
ts
(type: AttenuationType, coefficient: number) => number
音量衰减范围通过 updateReceiveRange 进行设置。
参数
type
类型: AttenuationType
音量衰减模式。默认为线性衰减。
coefficient
类型: number
指数衰减模式下的音量衰减系数,默认值为 1。范围 [0.1,100],推荐设置为 50。数值越大,音量的衰减速度越快。
返回值
类型: number
调用是否成功
0:调用成功-1:调用失败。失败原因为,在调用 enableRangeAudio 开启范围语音前或进房前调用本接口开启/关闭空间音频功能。
ts
(enable: boolean) => number
该方法仅开启空间音频功能,你须调用 updatePosition 设置自身位置坐标后方可收听空间音频效果。空间音频相关 API 和调用时序详见空间音频。
参数
enable
类型: boolean
是否开启空间音频功能:
+ true:开启
+ false:关闭(默认)
返回值
类型: number
0:支持空间音频 -1:不支持
更新本地用户在房间内空间直角坐标系中的位置坐标。
ts
(pos: Position) => number
调用该接口更新坐标前,你需调用 enableSpatialAudio 开启空间音频功能。 空间音频相关 API 和调用时序详见空间音频。
参数
pos
类型: Position
三维坐标的值,默认为 [0, 0, 0]。
返回值
类型: number
0: 成功-1: 失败更新本地用户在空间音频坐标系下的朝向。
ts
(orientation: HumanOrientation) => number
注意
空间音频相关 API 和调用时序详见空间音频。
调用 disableRemoteOrientation 可忽略远端用户朝向。
参数
orientation
类型: HumanOrientation
自身朝向信息
返回值
类型: number
0: 成功-1: 失败参与通话的各端调用本接口后,将忽略远端用户的朝向,认为所有远端用户都面向本地用户。
如果此后调用 updateSelfOrientation 更新本地用户朝向,远端用户无法感知这些变化,但本地用户接收音频时可以感知自身朝向改变带来的音频效果变化。
ts
() => number
注意
进房前后都可以调用该接口。
调用本接口关闭朝向功能后,在当前的空间音频实例的生命周期内无法再次开启。
返回值
类型: number
0: 成功-1: 失败类型: class
| 名称 | 描述 |
|---|---|
| createRTCVideo() | 创建引擎对象
如果当前线程中未创建引擎实例,那么你必须先使用此方法,以使用 RTC 提供的各种音视频能力。
如果当前线程中已创建了引擎实例,再次调用此方法时,会返回已创建的引擎实例。 |
| destroyRTCVideo() | 销毁引擎实例对象 | | feedback() | 本次通话质量打分评价 | | getErrorDescription() | 获取错误码的描述 | | setBusinessId() | 设置业务标识参数 | | setEncryptInfo() | 设置传输时使用内置加密的方式 | | startAudioCapture() | 开启内部音频采集。默认为关闭状态。 | | stopAudioCapture() | 关闭内部音频采集。默认为关闭状态。 | | enumerateAudioPlaybackDevices() | 获取当前系统内音频播放设备列表。如果后续设备有变更,你会收到 onAudioDeviceStateChanged 回调通知,然后需要重新调用本接口以获得新的设备列表。 | | enumerateAudioCaptureDevices() | 获取当前系统内音频采集设备列表。如果后续设备有变更,你需要重新调用本接口以获得新的设备列表。 | | setAudioPlaybackDevice() | 设置音频播放设备。 | | setAudioCaptureDevice() | 设置音频采集设备。 | | getAudioPlaybackDevice() | 获取当前音频播放设备 ID。 | | getAudioCaptureDevice() | 获取当前音频采集设备 ID。 | | setAudioPlaybackDeviceVolume() | 设置当前音频播放设备音量 | | getAudioPlaybackDeviceVolume() | 获取当前音频播放设备音量 | | setAudioCaptureDeviceVolume() | 设置当前音频采集设备音量 | | getAudioCaptureDeviceVolume() | 获取当前音频采集设备音量 | | setAudioPlaybackDeviceMute() | 设置当前音频播放设备静音状态,默认为非静音。 | | getAudioPlaybackDeviceMute() | 获取当前音频播放设备是否静音的信息。 | | setAudioCaptureDeviceMute() | 设置当前音频采集设备静音状态,默认为非静音。 | | getAudioCaptureDeviceMute() | 获取当前音频采集设备是否静音的信息。 | | setCaptureVolume() | 调节音频采集音量 | | setPlaybackVolume() | 调节本地播放的所有远端用户混音后的音量 | | setRemoteAudioPlaybackVolume() | 调节来自远端用户的音频播放音量 | | muteAudioPlayback() | 控制本地音频流播放状态:播放/不播放 | | stopAudioPlaybackDeviceTest() | 停止音频播放设备测试。 | | setVoiceChangerType() | 设置变声特效类型 | | setVoiceReverbType() | 设置混响特效类型 | | setAudioProfile() | 设置混响特效类型 | | startAudioPlaybackDeviceTest() | 启动音频播放设备测试。 该方法测试播放设备是否能正常工作。SDK 播放指定的音频文件,测试者如果能听到声音,说明播放设备能正常工作。 | | startEchoTest() | 开始音频设备回路测试。 | | stopEchoTest() | 停止音频设备回路测试。 | | initAudioPlaybackDeviceForTest() | 尝试初始化音频播放设备,可检测出设备不存在、权限被拒绝/禁用等异常问题。 | | initAudioCaptureDeviceForTest() | 尝试初始化音频播放设备,可检测出设备不存在、权限被拒绝/禁用等异常问题。 | | enableAudioPropertiesReport() | 启用音频信息提示。 | | enableVocalInstrumentBalance() | 开启/关闭音量均衡功能。 | | startVideoCapture() | 开启内部视频采集。默认为关闭状态 | | stopVideoCapture() | 关闭内部视频采集。默认为关闭状态。 | | enumerateVideoCaptureDevices() | 获取当前系统内视频采集设备列表。 | | followSystemPlaybackDevice() | 设置音频播放路由是否跟随系统,默认跟随系统。 | | followSystemCaptureDevice() | 设置音频采集路由是否跟随系统。 | | setVideoCaptureDevice() | 设置当前视频采集设备 | | getVideoCaptureDevice() | 获取当前 SDK 正在使用的视频采集设备信息 | | setVideoEncoderConfig() | 启动推送多路视频流,设置推送多路流时的各路视频参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。 | | setMaxVideoEncoderConfig() | 视频发布端设置期望发布的最大分辨率视频流参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。 | | setLocalVideoMirrorType() | 设置采用前置摄像头采集时,是否开启镜像模式。 | | switchCamera() | 切换视频内部采集时使用的前置/后置摄像头。默认使用前置摄像头。 | | enableSimulcastMode() | 大小流功能控制开关 | | checkLicense() | 视频特效许可证检查 | | getAuthMessage() | 从 CV SDK 获取授权消息,用于获取在线许可证。 | | enableEffect() | 开启关闭视频特效 | | enableEffectBeauty() | 开启/关闭基础美颜 | | setBeautyIntensity() | 调整基础美颜强度 | | setAlgoModelPath() | 设置视频特效算法模型路径 | | setEffectNodes() | 设置视频特效素材包,支持同时设置多个素材包 | | updateNode() | 设置特效强度 | | setColorFilter() | 设置颜色滤镜 | | setColorFilterIntensity() | 设置已启用颜色滤镜的强度 | | startLiveTranscoding() | 开启转推直播,并设置合流的视频视图布局和音频属性。 | | stopLiveTranscoding() | 停止转推直播。会收到 onStreamMixingEvent 回调。 | | updateLiveTranscoding() | 更新转推直播参数。 | | startScreenAudioCapture() | 公共流 | | startMacScreenAudioCapture() | 在屏幕共享时,开始使用 RTC SDK 内部采集方式,采集屏幕音频 | | startScreenVideoCapture() | 采集屏幕视频流,用于共享。屏幕视频流包括:屏幕上显示的内容,应用窗口中显示的内容,或虚拟屏幕中显示的内容。其中,虚拟屏幕中显示的内容仅在 Windows 平台上支持。 | | stopScreenAudioCapture() | 在屏幕共享时,停止使用 RTC SDK 内部采集方式,采集屏幕音频。 | | stopScreenVideoCapture() | 停止屏幕视频流采集。 | | updateScreenCaptureRegion() | 更新屏幕共享区域。 | | updateScreenCaptureHighlightConfig() | 通过 RTC SDK 提供的采集模块采集屏幕视频流时,更新边框高亮设置。默认展示表框。 | | updateScreenCaptureMouseCursor() | 通过 RTC SDK 提供的采集模块采集屏幕视频流时,更新对鼠标的处理设置。默认采集鼠标。 | | updateScreenCaptureFilterConfig() | 通过 RTC SDK 提供的采集模块采集屏幕视频流时,设置需要过滤的窗口。 | | getScreenCaptureSourceList() | 获取屏幕采集对象列表。 | | getThumbnail() | 获取共享对象缩略图 | | getWindowAppIcon() | 获取应用窗体所属应用的图标。 | | setScreenAudioStreamIndex() | 在屏幕共享时,设置屏幕音频流和麦克风采集到的音频流的混流方式 | | setScreenVideoEncoderConfig() | 为发布的屏幕共享视频流设置期望的编码参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。 | | login() | 必须先登录注册一个 uid,才能发送房间外消息和向业务服务器发送消息 | | logout() | 调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。 | | updateLoginToken() | 更新用户用于登录的 Token Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。 调用 login 方法登录时,如果使用了过期的 Token 将导致登录失败,并会收到 onLoginResult 回调通知,错误码为 kLoginErrorCodeInvalidToken。此时需要重新获取 Token,并调用此方法更新 Token。 | | setServerParams() | 设置业务服务器参数。客户端调用 sendServerMessage 或 sendServerBinaryMessage 发送消息给业务服务器之前,必须设置有效签名和业务服务器地址。 | | getPeerOnlineStatus() | 查询对端用户或本端用户的登录状态 | | sendUserMessageOutsideRoom() | 给房间外指定的用户发送文本消息(P2P) | | sendUserBinaryMessageOutsideRoom() | 给房间外指定的用户发送二进制消息(P2P) | | sendServerMessage() | 客户端给业务服务器发送文本消息(P2Server) | | sendServerBinaryMessage() | 客户端给业务服务器发送二进制消息(P2Server) | | sendSEIMessage() | 在视频通信时,通过视频帧发送 SEI 数据。 | | setVideoCaptureConfig() | 设置 RTC SDK 内部采集时的视频采集参数。指定视频采集参数包括模式、分辨率、帧率。 | | startAudioMixing() | 开始播放音乐文件及混音 | | stopAudioMixing() | 停止播放音乐文件及混音 | | pauseAudioMixing() | 暂停播放音乐文件及混音 | | resumeAudioMixing() | 恢复播放音乐文件及混音 | | preloadAudioMixing() | 预加载指定音乐文件到内存中 | | unloadAudioMixing() | 卸载指定音乐文件 | | setAudioMixingVolume() | 调节音乐文件在本地和远端播放的音量大小 | | getAudioMixingDuration() | 获取音乐文件时长 | | getAudioMixingCurrentPosition() | 获取音乐文件播放进度 | | setAudioMixingPosition() | 设置音乐文件的播放位置 | | setAudioMixingDualMonoMode() | 设置当前音频文件的声道模式 | | setAudioMixingPitch() | 开启本地播放音乐文件变调功能,多用于 K 歌场景。 | | setAudioMixingPlaybackSpeed() | 设置混音时音频文件的播放速度 | | setAudioMixingLoudness() | 如果你需要使用 enableVocalInstrumentBalance 对混音使音频文件/PCM 音频数据进行音量调整,你必须通过此接口传入其原始响度。 | | setAudioMixingProgressInterval() | 设置混音时音频文件播放进度回调的间隔 | | getAudioTrackCount() | 获取当前音频文件的音轨索引 | | selectAudioTrack() | 指定当前音频文件的播放音轨 | | setLocalVoicePitch() | 使用该方法,你可以对本地语音的音调进行升调或降调等调整。多用于 K 歌场景。 | | startASR() | 开启自动语音识别服务。该方法将识别后的用户语音转化成文字,并通过 onMessage 事件回调给用户。 | | stopASR() | 关闭语音识别服务 | | startFileRecording() | 该方法将通话过程中的音视频数据录制到本地的文件中。 | | stopFileRecording() | 停止本地录制 | | setPublishFallbackOption() | 设置发布的音视频流回退选项 。你可以调用这个接口来设置网络情况不佳或设备性能不足时只发送小流,以保证通话质量。 | | setSubscribeFallbackOption() | 设置订阅的音视频流回退选项。 你可以通过调用该接口来设置网络情况不佳或性能不足时只订阅小流或音频流,以保证通话质量。 | | setRemoteUserPriority() | 设置用户优先级 | | startNetworkDetection() | 开启通话前网络探测 | | stopNetworkDetection() | 停止通话前网络探测 |
| setBackgroundSticker() | 将摄像头采集画面中的人像背景替换为指定图片或纯色背景。
若要取消背景特效,将背景贴纸特效素材路径设置为null。 |
| setVideoWatermark() | 在指定视频流上添加水印。 |
| removeLocalVideo() | 解绑本地视频流已绑定的渲染视图 |
| setupRemoteVideo() | 为远端视频流绑定本地渲染视图 |
| removeRemoteVideo() | 解绑指定远端视频流已绑定的本地视图 |
| removeAllRemoteVideo() | 解绑所有已绑定本地视图的指定远端视频流 |
| setupLocalScreen() | 为本地屏幕共享流绑定视图 |
| removeLocalScreen() | 解绑屏幕共享流已绑定的视图 |
| setupRemoteScreen() | 为远端屏幕共享流绑定本地视图 |
| removeRemoteScreen() | 解绑远端屏幕共享流已绑定的本地视图 |
| static getSDKVersion() | 获取当前 SDK 版本信息 |
| static getCurrentProcessId() | 获取加载引擎进程的 ID 方便调试 |
创建引擎对象
如果当前线程中未创建引擎实例,那么你必须先使用此方法,以使用 RTC 提供的各种音视频能力。
如果当前线程中已创建了引擎实例,再次调用此方法时,会返回已创建的引擎实例。
ts
(appId: string, documentPath: string, params: string) => number
注意
你应注意保持 handler 的生命周期必须大于 veRTCVideo 的生命周期,即 handler 必须在调用 createRTCVideo 之前创建,在调用 destroyRTCVideo 之后销毁。
通常不建议在移动端设备上创建多于 2 个引擎实例。
参数
appId
类型: string
每个应用的唯一标识符,由 RTC 控制台随机生成的。不同的 AppId 生成的实例在 RTC 中进行音视频通话完全独立,无法互通。
documentPath
类型: string
存放日志路径
params
类型: string
用以覆盖默认参数的本引擎实例参数。JSON 字符串格式。
返回值
类型: number
0: 成功-1: 失败销毁引擎实例对象
ts
() => number
注意
请确保和需要销毁的 veRTCVideo 实例相关的业务场景全部结束后,才调用此方法
veRTCVideo 实例相关的内存,并且停止与媒体服务器的任何交互调用本方法会启动 SDK 退出逻辑。引擎线程会保留,直到退出逻辑完成。因此,不要在回调线程中直接调用此 API,也不要在回调中等待主线程的执行,并同时在主线程调用本方法。不然会造成死锁。
返回值
类型: number
0: 成功-1: 失败本次通话质量打分评价
ts
(types: ProblemFeedbackOption[], problem_desc: string) => number
注意
如果用户上报时在房间内,那么问题会定位到用户当前所在的一个或多个房间;
如果用户上报时不在房间内,那么问题会定位到引擎此前退出的房间。
参数
types
类型: ProblemFeedbackOption[]
反馈问题类型
problem_desc
类型: string
上报的数据。JSON 格式,必须包含以下 4 个字段:
返回值
类型: number
-1: 上报失败,还没加入过房间-2: 上报失败,传入 JSON 解析失败-3: 上报失败,传入 JSON 字段缺失获取错误码的描述
ts
(code: number) => string
该接口是通用功能,调用时不需要依赖引擎对象。
参数
code
类型: number
需要获取描述的错误码
返回值
类型: string
错误码的描述
设置业务标识参数
ts
(business_id: string) => number
可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。
参数
business_id
类型: string
用户设置的自己的 business_id 值。business_id 相当于一个 sub AppId,可以分担和细化现在 AppId 的逻辑划分的功能, 但不需要鉴权。business_id 只是一个标签,颗粒度需要用户自定义。
返回值
类型: number
@。设置传输时使用内置加密的方式
ts
(encryptType: number, key: string) => number
该方法必须在进房之前调用,可重复调用,以最后调用的参数作为生效参数。
参数
encryptType
类型: number
加密算法
0: 不使用内置加密1:AES-128-CBC 加密算法2:AES-256-CBC 加密算法3:AES-128-ECB 加密算法4:AES-256-ECB 加密算法key
类型: string
加密密钥,长度限制为 36 位,超出部分将会被截断
返回值
类型: number
0: 成功-1: 失败开启内部音频采集。默认为关闭状态。
ts
() => number
注意
若未取得当前设备的麦克风权限,调用该方法后会触发 onWarning 回调。
创建引擎后,无论是否发布音频数据,你都可以调用该方法开启音频采集,并且调用后方可发布音频。
返回值
类型: number
关闭内部音频采集。默认为关闭状态。
ts
() => number
注意
进房前调用该方法,本地用户会收到 onAudioDeviceStateChanged 的回调。
设备开启后若一直未调用该方法关闭,则 SDK 会在销毁引擎的时候自动关闭音频采集设备。
返回值
类型: number
获取当前系统内音频播放设备列表。如果后续设备有变更,你会收到 onAudioDeviceStateChanged 回调通知,然后需要重新调用本接口以获得新的设备列表。
ts
() => Object
类型: Object
包含系统中所有音频播放设备的列表和相关信息
获取当前系统内音频采集设备列表。如果后续设备有变更,你需要重新调用本接口以获得新的设备列表。
ts
() => Object
类型: Object
包含系统中所有音频采集设备列表和相关信息
设置音频播放设备。
ts
(deviceId: string) => number
参数
deviceId
类型: string
音频播放设备 ID,可通过 enumerateAudioPlaybackDevices 获取。
返回值
类型: number
方法调用结果
设置音频采集设备。
ts
(deviceId: string) => number
参数
deviceId
类型: string
音频采集设备 ID,可通过 enumerateAudioPlaybackDevices 获取。
返回值
类型: number
方法调用结果
获取当前音频播放设备 ID。
ts
() => string
类型: string
当前音频播放设备 ID
获取当前音频采集设备 ID。
ts
() => string
类型: string
当前音频采集设备 ID
设置当前音频播放设备音量
ts
(volume: number) => number
参数
volume
类型: number
音频播放设备音量,取值范围为 [0,255], 超出此范围设置无效。
返回值
类型: number
方法调用结果
获取当前音频播放设备音量
ts
() => number
类型: number
方法调用结果
设置当前音频采集设备音量
ts
(volume: number) => number
参数
volume
类型: number
音频采集设备音量,取值范围为 [0,255], 超出此范围设置无效。
返回值
类型: number
方法调用结果
获取当前音频采集设备音量
ts
() => number
类型: number
方法调用结果
设置当前音频播放设备静音状态,默认为非静音。
ts
(mute: boolean) => number
参数
mute
类型: boolean
返回值
类型: number
方法调用结果
获取当前音频播放设备是否静音的信息。
ts
() => boolean
类型: boolean
方法调用结果
true:方法调用成功false:方法调用失败设置当前音频采集设备静音状态,默认为非静音。
ts
(mute: boolean) => number
参数
mute
类型: boolean
返回值
类型: number
方法调用结果
获取当前音频采集设备是否静音的信息。
ts
() => boolean
类型: boolean
调节音频采集音量
ts
(index: number, volume: number) => number
注意
无论是采集来自麦克风的音频流,还是屏幕音频流,都可以使用此接口进行音量调节。
在开启音频采集前后,你都可以使用此接口设定采集音量。
参数
index
类型: number
流索引,指定调节主流还是调节屏幕流的音量
volume
类型: number
采集的音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。
返回值
类型: number
调节本地播放的所有远端用户混音后的音量
ts
(volume: number) => number
为保证更好的通话质量,建议将 volume 值设为 [0,100]。
参数
volume
类型: number
音频播放音量,取值范围: [0,400]
+ 0: 静音
+ 100: 原始音量
+ 400: 最大可为原始音量的 4 倍(自带溢出保护)
返回值
类型: number
调节来自远端用户的音频播放音量
ts
(roomId: string, strUserId: string, volume: number) => number
参数
roomId
类型: string
音频来源用户所在的房间 ID
strUserId
类型: string
音频来源的远端用户 ID
volume
类型: number
播放音量,取值范围: [0,400]
返回值
类型: number
控制本地音频流播放状态:播放/不播放
ts
(muteState: number) => number
本方法仅控制本地收到音频流的播放状态,并不影响本地音频播放设备。
参数
muteState
类型: number
播放状态,标识是否播放本地音频流,详见:MuteState
返回值
类型: number
停止音频播放设备测试。
ts
() => number
调用 startAudioPlaybackDeviceTest 后,需调用本方法停止测试。
类型: number
方法调用结果
设置变声特效类型
ts
(changeType: number) => number
参数
changeType
类型: number
变声特效类型。
+ 0: 原声,不含特效
+ 1: 巨人
+ 2: 花栗鼠
+ 3: 小黄人
+ 4: 颤音
+ 5: 机器人
返回值
类型: number
设置混响特效类型
ts
(voiceReverbType: number) => number
注意
在进房前后都可设置。
与 setVoiceChangerType 互斥,后设置的特效会覆盖先设置的特效。
参数
voiceReverbType
类型: number
混响特效类型
+ 0: 原声,不含特效
+ 1: 回声
+ 2: 演唱会
+ 3: 空灵
+ 4: KTV
+ 5: 录音棚
返回值
类型: number
设置混响特效类型
ts
(audioProfile: number) => number
设置音质档位。当所选的 audioProfile 中的音频参数无法满足你的场景需求时,调用本接口切换的音质档位。
参数
audioProfile
类型: number
0: 默认音质,服务器下发或客户端已设置的 ChannelProfile 的音质配置
1: 流畅音质,单声道,采样率为 16kHz,编码码率为 24 Kbps。流畅优先、低功耗、低流量消耗,适用于大部分游戏场景,如小队语音、组队语音、国战语音等。
2: 单声道标准音质。采样率为 48kHz,编码码率为 48 Kbps。适用于对音质有一定要求的场景,同时延时、功耗和流量消耗相对适中,适合教育场景和狼人杀等游戏。
3: 双声道音乐音质。采样率为 48kHz,编码码率为 128kbps。超高音质,同时延时、功耗和流量消耗相对较大,适用于连麦 PK 等音乐场景。游戏场景不建议使用。
4: 双声道标准音质。采样率为 48 KHz,编码码率最大值为 80 Kbps。
5: 单声道音乐音质。采样率为 48 kHz,编码码率最大值为 128 Kbps。
返回值
类型: number
启动音频播放设备测试。 该方法测试播放设备是否能正常工作。SDK 播放指定的音频文件,测试者如果能听到声音,说明播放设备能正常工作。
ts
(testAudioFilePath: string, interval: number) => number
注意
该方法必须在 joinRoom 前调用,且不可与其它音频设备测试功能同时应用。
你需调用 stopAudioPlaybackDeviceTest 停止测试。
参数
testAudioFilePath
类型: string
音频文件的绝对路径,路径字符串使用 UTF-8 编码格式,支持以下音频格式: mp3,aac,m4a,3gp,wav。
interval
类型: number
设置 onAudioPlaybackDeviceTestVolume 音量回调的时间间隔,推荐设置为 200 毫秒或以上。单位为毫秒。最小值为 10 毫秒。
返回值
类型: number
方法调用结果
开始音频设备回路测试。
ts
(config: EchoTestConfig, playDelayTime: number) => number
在进房前,用户可调用该接口对音视频通话全链路进行检测,包括对音视频设备以及用户上下行网络的检测,从而帮助用户判断是否可以正常发布和接收音视频流。 开始检测后,SDK 会录制你声音或视频。如果你在设置的延时范围内收到了回放,则视为音视频回路测试正常。
kWarningCodeInEchoTestMode。音视频回路检测的结果会通过 onEchoTestResult 回调通知。
参数
config
类型: EchoTestConfig
回路测试参数设置
playDelayTime
类型: number
音视频延迟播放的时间间隔,用于指定在开始检测多长时间后期望收到回放。取值范围为 [2,10],单位为秒,默认为 2 秒。
返回值
类型: number
方法调用结果:
停止音频设备回路测试。
ts
() => number
调用 startEchoTest 后,需调用本方法停止测试。
类型: number
方法调用结果
尝试初始化音频播放设备,可检测出设备不存在、权限被拒绝/禁用等异常问题。
ts
(deviceId: string) => number
注意
该接口需在进房前调用;
检测成功不代表设备一定可以启动成功,还可能因设备被其他应用进程独占,或 CPU/内存不足等原因导致启动失败。
参数
deviceId
类型: string
设备索引号
返回值
类型: number
设备状态错误码
尝试初始化音频播放设备,可检测出设备不存在、权限被拒绝/禁用等异常问题。
ts
(deviceId: string) => number
注意
该接口需在进房前调用;
检测成功不代表设备一定可以启动成功,还可能因设备被其他应用进程独占,或 CPU/内存不足等原因导致启动失败。
参数
deviceId
类型: string
设备索引号
返回值
类型: number
设备状态错误码
启用音频信息提示。
ts
(interval: number, enableSpectrum: boolean, enableVad: boolean) => number
开启提示后,你可以:
通过 onRemoteAudioPropertiesReport 回调获取订阅的远端用户的音频信息。
参数
interval
类型: number
信息提示间隔,单位:ms
enableSpectrum
类型: boolean
是否开启音频频谱检测
enableVad
类型: boolean
是否开启人声检测 (VAD)
返回值
类型: number
开启/关闭音量均衡功能。
ts
(enableVad: boolean) => number
开启音量均衡功能后,人声的响度会调整为 -16lufs。如果已调用 setAudioMixingLoudness 传入了混音音乐的原始响度,此音乐播放时,响度会调整为 -20lufs。(Linux 不支持)
参数
enableVad
类型: boolean
是否开启音量均衡功能:
返回值
类型: number
开启内部视频采集。默认为关闭状态
ts
() => number
注意
调用 stopVideoCapture 可以停止内部视频采集。否则,只有当销毁引擎实例时,内部视频采集才会停止。
创建引擎后,无论是否发布视频数据,你都可以调用该方法开启内部视频采集。
返回值
类型: number
关闭内部视频采集。默认为关闭状态。
ts
() => number
注意
调用 startVideoCapture 可以开启内部视频采集。
如果不调用本方法停止内部视频采集,则只有当销毁引擎实例时,内部视频采集才会停止。
返回值
类型: number
获取当前系统内视频采集设备列表。
ts
() => Object
类型: Object
包含系统中所有视频采集设备的列表和相关信息
设置音频播放路由是否跟随系统,默认跟随系统。
ts
(followed: boolean) => number
参数
followed
类型: boolean
音频播放路由是否跟随系统
+ true: 跟随。此时,调用 setAudioPlaybackDevice 会失败。
+ false: 不跟随系统。此时,可以调用 setAudioPlaybackDevice 进行设置。
返回值
类型: number
设置音频采集路由是否跟随系统。
ts
(followed: boolean) => number
参数
followed
类型: boolean
音频采集路由是否跟随系统
+ true: 跟随。此时,调用 setAudioCaptureDevice 会失败。
+ false: 不跟随系统。此时,可以调用 setAudioCaptureDevice 进行设置。
返回值
类型: number
设置当前视频采集设备
ts
(deviceId: string) => number
参数
deviceId
类型: string
视频设备 ID,可以通过 EnumerateVideoCaptureDevices 获取
返回值
类型: number
获取当前 SDK 正在使用的视频采集设备信息
ts
() => string
类型: string
当前 SDK 正在使用的视频采集设备信息
启动推送多路视频流,设置推送多路流时的各路视频参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
ts
(solutions: VideoEncoderConfig[]) => number
注意
当使用内部采集时,视频采集的分辨率、帧率会根据编码参数进行适配。
屏幕流只取视频参数数组的第一组数据。
参数
solutions
类型: VideoEncoderConfig[]
视频参数数组首地址。 最多支持 3 路参数。当设置了多路参数时,分辨率必须是依次减小,从大到小排列的。 最大分辨率没有限制。但是如果设置的分辨率无法编码,就会导致编码推流失败。
返回值
类型: number
视频发布端设置期望发布的最大分辨率视频流参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
ts
(max_solution: VideoEncoderConfig) => any
调用该方法之前,屏幕共享视频流默认的编码参数为:分辨率 1920px × 1080px,帧率 15fps。
参数
max_solution
期望发布的最大分辨率视频流参数。参看 VideoEncoderConfig。
返回值
0:成功
设置采用前置摄像头采集时,是否开启镜像模式。
ts
(roomId: string, nMode: MirrorType) => number
参数
nMode
类型: string
是否开启镜像模式
nMode
类型: MirrorType
返回值
类型: number
切换视频内部采集时使用的前置/后置摄像头。默认使用前置摄像头。
ts
(camera_id: number) => number
注意
调用此接口后,在本地会触发 onVideoDeviceStateChanged 回调。
如果你正在使用相机进行视频采集,切换操作当即生效;如果相机未启动,后续开启内部采集时,会打开设定的摄像头。
参数
camera_id
类型: number
移动端摄像头。可通过 enumerateVideoCaptureDevices 获取。
返回值
类型: number
大小流功能控制开关
ts
(enabled: boolean) => number
该方法设置视频流发布端是否开启发布多路编码参数不同的视频流的模式。
参数
enabled
类型: boolean
是否开启,true: 开启,false: 关闭
返回值
类型: number
视频特效许可证检查
ts
(licensePath: string) => number
开始使用视频特效前,你必须先调用这个方法进行许可证验证
参数
licensePath
类型: string
许可证文件绝对路径
返回值
类型: number
从 CV SDK 获取授权消息,用于获取在线许可证。
ts
() => string
注意
使用背景分割或视频特效的功能前,你必须自行实现获取智能美化特效产品在线许可证的业务逻辑,参考 在线授权说明。
获取许可证后,建议调用 checkLicense 确认许可证有效,再开始使用背景分割或视频特效功能。
返回值
类型: string
授权消息字符串
开启关闭视频特效
ts
(enabled: boolean) => number
在调用 checkLicense 和 setAlgoModelPath后调用此方法
参数
enabled
类型: boolean
是否开启特效,true: 开启,false: 关闭
返回值
类型: number
开启/关闭基础美颜
ts
(enabled: boolean) => number
注意
本方法不能与高级视频特效接口共用。如已购买高级视频特效,建议调用 enableEffect 使用高级特效、贴纸功能等。
本方法仅适用于视频源,不适用于屏幕源
参数
enabled
类型: boolean
是否开启基础美颜强度,true: 开启,false: 关闭
返回值
类型: number
调整基础美颜强度
ts
(beautyMode: EffectBeautyMode, intensity: number) => any
注意
使用背景分割或视频特效的功能前,你必须自行实现获取智能美化特效产品在线许可证的业务逻辑,参考 在线授权说明。
开启虚拟背景功能后,如需关闭,再次调用本接口,并给两个参数赋 null 值。
参数
beautyMode
类型: EffectBeautyMode
虚拟背景素材包地址。
intensity
类型: number
背景图片本地路径。背景图片的本地地址,例如,file://xxx 或 Asset 资源路径 asset://xxx。 支持JPG、PNG。当背景图片分辨率超过 1080P 时,图片会被等比缩放。如果背景图片和视频分辨率不一致,图片会被裁剪缩放,不留黑边。
返回值
0: 调用成功
设置视频特效算法模型路径
ts
(modelPath: string) => number
参数
modelPath
类型: string
模型路径
返回值
类型: number
设置视频特效素材包,支持同时设置多个素材包
ts
(effectNodePaths: string[]) => number
参数
effectNodePaths
类型: string[]
特效素材包路径数组
返回值
类型: number
设置特效强度
ts
(nodePath: string, nodeKey: string, nodeValue: number) => number
参数
nodePath
类型: string
特效素材包路径
nodeKey
类型: string
需要设置的素材 key 名称,取值请参考 素材 key 对应说明。
nodeValue
类型: number
需要设置的强度值 取值范围 [0,1],超出范围时设置无效。
返回值
类型: number
设置颜色滤镜
ts
(resPath: string) => number
参数
resPath
类型: string
滤镜资源包绝对路径。
返回值
类型: number
设置已启用颜色滤镜的强度
ts
(intensity: number) => number
参数
intensity
类型: number
滤镜强度。取值范围 [0,1],超出范围时设置无效。
返回值
类型: number
开启转推直播,并设置合流的视频视图布局和音频属性。
ts
(taskId: string, param: TranscoderParam) => number
同一个任务中转推多路直播流时,SDK 会先将多路流合成一路流,然后再进行转推。 1. 只有房间模式为直播模式的用户才能调用此方法。 2. 调用该方法后,关于启动结果和推流过程中的错误,会收到 onStreamMixingEvent(events.html#onstreammixingevent) 回调。 3. 调用 stopLiveTranscoding 停止转推直播。
参数
taskId
类型: string
转推直播任务 ID。你可以在同一房间内发起多个转推直播任务,并用不同的任务 ID 加以区。当你需要发起多个转推直播任务时,应使用多个 ID;当你仅需发起一个转推直播任务时,建议使用空字符串。
param
类型: TranscoderParam
转推直播配置参数
返回值
类型: number
停止转推直播。会收到 onStreamMixingEvent 回调。
ts
(taskId: string) => number
关于启动转推直播,参看 startLiveTranscoding。
参数
taskId
类型: string
返回值
类型: number
更新转推直播参数。
ts
(taskId: string, param: TranscoderParam) => number
使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。
参数
taskId
类型: string
转推直播任务 ID。指定想要更新参数设置的转推直播任务。
param
类型: TranscoderParam
配置参数
返回值
类型: number
公共流
ts
(deviceId?: string) => number
注意
只有房间模式为直播模式的用户才能调用此方法。
调用 stopLiveTranscoding#stopLiveTranscoding 停止转推直播。
参数
param
类型: string
返回值
类型: number
在屏幕共享时,开始使用 RTC SDK 内部采集方式,采集屏幕音频
ts
(deviceId: string) => number
注意
采集后,你还需要调用 publishScreen 将采集到的屏幕音频推送到远端。
mac下需要传入虚拟的声卡id,windows下不用传入
参数
deviceId
类型: string
返回值
类型: number
采集屏幕视频流,用于共享。屏幕视频流包括:屏幕上显示的内容,应用窗口中显示的内容,或虚拟屏幕中显示的内容。其中,虚拟屏幕中显示的内容仅在 Windows 平台上支持。
ts
(info: ScreenCaptureSourceInfo, params: ScreenCaptureParameters) => number
注意
调用此方法仅开启屏幕流视频采集,不会发布采集到的视频。发布屏幕流视频需要调用 publishScreen 。
监听 onLocalScreenFrame 本地屏幕视频回调事件
参数
info
待共享的屏幕源,你可以调用 getScreenCaptureSourceList 获得所有可以共享的屏幕源。
params
共享参数
返回值
类型: number
在屏幕共享时,停止使用 RTC SDK 内部采集方式,采集屏幕音频。
ts
() => number
要开始屏幕音频内部采集,调用 startScreenAudioCapture。
类型: number
停止屏幕视频流采集。
ts
() => number
注意
要开启屏幕视频流采集,调用 startScreenVideoCapture
调用此接口不影响屏幕视频流发布。
返回值
类型: number
更新屏幕共享区域。
ts
(regionRect: Rectangle) => number
参数
regionRect
类型: Rectangle
返回值
类型: number
通过 RTC SDK 提供的采集模块采集屏幕视频流时,更新边框高亮设置。默认展示表框。
ts
(highlight_config: HighlightConfig) => number
调用此接口前,必须已通过调用 startScreenVideoCapture 开启了内部屏幕流采集。
参数
highlight_config
类型: HighlightConfig
边框高亮设置
返回值
类型: number
通过 RTC SDK 提供的采集模块采集屏幕视频流时,更新对鼠标的处理设置。默认采集鼠标。
ts
(state: MouseCursorCaptureState) => number
调用此接口前,必须已通过调用 startScreenVideoCapture 开启了内部屏幕流采集。
参数
state
内部采集屏幕视频流时,是否采集鼠标信息
返回值
类型: number
通过 RTC SDK 提供的采集模块采集屏幕视频流时,设置需要过滤的窗口。
ts
(screenFilterConfig: number[]) => number
注意
调用此接口前,必须已通过调用 startScreenVideoCapture 开启了内部屏幕流采集。
本函数在屏幕源类别是屏幕而非应用窗体时才起作用。
参数
screenFilterConfig
类型: number[]
窗口过滤设置,参看 ScreenCaptureParameters#ScreenCaptureParameters
返回值
类型: number
获取屏幕采集对象列表。
ts
() => ScreenCaptureSourceInfo[]
类型: ScreenCaptureSourceInfo[]
屏幕采集对象列表,包括应用窗口和屏幕。由用户选择其中一个共享对象,并在调用 startScreenVideoCapture 时作为参数传给 RTC SDK。
获取共享对象缩略图
ts
(type: ScreenCaptureSourceType, sourceId: number, maxWidth: number, maxHeight: number) => ThumbnailInfo
参数
type
屏幕采集对象的类型
sourceId
类型: number
屏幕共享对象的 ID,可通过 getScreenCaptureSourceList 枚举共享对象列表中获取。
maxWidth
类型: number
最大宽度。保持采集对象本身的宽高比不变,将缩略图缩放到指定范围内的最大宽高。如果给出的尺寸与共享对象比例不同,得到的缩略图会有黑边。
maxHeight
类型: number
最大高度。参见 maxWidth 的说明。
返回值
类型: ThumbnailInfo
共享对象缩略图
获取应用窗体所属应用的图标。
ts
(sourceId: number, maxWidth: number, maxHeight: number) => AppIconInfo
参数
sourceId
类型: number
屏幕共享对象的 ID,可通过 getScreenCaptureSourceList 枚举共享对象列表中获取。
maxWidth
类型: number
最大宽度。返回的图标将是宽高相等的,输入宽高不等时,取二者较小值。宽高范围为 [32,256],超出该范围将返回 nullptr,默认输出 100 x 100 的图像。
maxHeight
类型: number
最大高度。参见 maxWidth 的说明。
返回值
类型: AppIconInfo
应用窗体所属应用的图标。当屏幕共享对象为应用窗体时有效,否则返回 nullptr。
在屏幕共享时,设置屏幕音频流和麦克风采集到的音频流的混流方式
ts
(index: number) => number
你应该在 publishScreen 之前,调用此方法。否则,你将收到 onWarning 的报错:kWarningCodeSetScreenAudioStreamIndexFailed
参数
index
类型: number
混流方式
0: 将屏幕音频流和麦克风采集到的音频流混流 1: 将屏幕音频流和麦克风采集到的音频流分为两路音频流返回值
类型: number
为发布的屏幕共享视频流设置期望的编码参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
ts
(screenSolution: VideoEncoderConfig) => any
调用该方法之前,屏幕共享视频流默认的编码参数为:分辨率 1920px × 1080px,帧率 15fps。
参数
screenSolution
屏幕共享视频流参数。参看 VideoEncoderConfig。
返回值
0:成功
必须先登录注册一个 uid,才能发送房间外消息和向业务服务器发送消息
ts
(token: string, uid: string) => number
注意
在调用本接口登录后,如果想要登出,需要调用 Logout。
本地用户调用此方法登录后,会收到 onLoginResult 回调通知登录结果,远端用户不会收到通知。
参数
token
类型: string
动态密钥 用户登录必须携带的 Token,用于鉴权验证。 本 Token 与加入房间时必须携带的 Token 不同。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
uid
类型: string
用户 ID 用户 ID 在 appid 的维度下是唯一的。
返回值
类型: number
调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。
ts
() => number
类型: number
更新用户用于登录的 Token Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。 调用 login 方法登录时,如果使用了过期的 Token 将导致登录失败,并会收到 onLoginResult 回调通知,错误码为 kLoginErrorCodeInvalidToken。此时需要重新获取 Token,并调用此方法更新 Token。
ts
(token: string) => number
注意
如果 Token 无效导致登录失败,则调用此方法更新 Token 后,SDK 会自动重新登录,而用户不需要自己调用 login 方法。
Token 过期时,如果已经成功登录,则不会受到影响。Token 过期的错误会在下一次使用过期 Token 登录时,或因本地网络状况不佳导致断网重新登录时通知给用户。
参数
token
类型: string
更新的动态密钥
返回值
类型: number
设置业务服务器参数。客户端调用 sendServerMessage 或 sendServerBinaryMessage 发送消息给业务服务器之前,必须设置有效签名和业务服务器地址。
ts
(signature: string, url: string) => number
注意
用户必须调用 login 登录后,才能调用本接口。
调用本接口后,SDK 会使用 onServerParamsSetResult 返回相应结果。
参数
signature
类型: string
动态签名 业务服务器会使用该签名对请求进行鉴权验证。
url
类型: string
业务服务器的地址
返回值
类型: number
查询对端用户或本端用户的登录状态
ts
(peerUserId: string) => number
注意
必须调用 login 登录后,才能调用本接口。
在发送房间外消息之前,用户可以通过本接口了解对端用户是否登录,从而决定是否发送消息。也可以通过本接口查询自己查看自己的登录状态。
参数
peerUserId
类型: string
需要查询的用户 ID
返回值
类型: number
给房间外指定的用户发送文本消息(P2P)
ts
(uid: string, message: string, config: MessageConfig) => number
注意
在发送房间外文本消息前,必须先调用 login 完成登录。
若文本消息发送成功,则 uid 所指定的用户会通过 onUserMessageReceivedOutsideRoom 回调收到该消息。
参数
uid
类型: string
消息接收用户的 ID
message
类型: string
发送的文本消息内容,消息不超过 62KB。
config
类型: MessageConfig
返回值
类型: number
>0:发送成功,返回这次发送消息的编号,从 1 开始递增-1:发送失败,RtcEngine 实例未创建-2:发送失败,uid 为空给房间外指定的用户发送二进制消息(P2P)
ts
(uid: string, length: number, message: string, config: MessageConfig) => number
注意
在发送房间外二进制消息前,必须先调用 login 完成登录。
若二进制消息发送成功,则 uid 所指定的用户会通过 onUserMessageReceivedOutsideRoom 回调收到该条消息。
参数
uid
类型: string
消息接收用户的 ID
length
类型: number
二进制字符串的长度
message
类型: string
发送的二进制消息内容,每条消息不超过 46KB。
config
类型: MessageConfig
返回值
类型: number
>0:发送成功,返回这次发送消息的编号,从 1 开始递增-1:发送失败,RtcEngine 实例未创建-2:发送失败,uid 为空客户端给业务服务器发送文本消息(P2Server)
ts
(message: string) => number
注意
在向业务服务器发送文本消息前,必须先调用 login 完成登录,随后调用 setServerParams 设置业务服务器。
若文本消息发送成功,则之前调用 setServerParams 设置的业务服务器会收到该条消息。
参数
message
类型: string
发送的文本消息内容,消息不超过 62KB。
返回值
类型: number
>0:发送成功,返回这次发送消息的编号,从 1 开始递增-1:发送失败,RtcEngine 实例未创建客户端给业务服务器发送二进制消息(P2Server)
ts
(length: number, message: string) => number
注意
在向业务服务器发送二进制消息前,必须先调用 login 完成登录,随后调用 setServerParams 设置业务服务器。
若二进制消息发送成功,则之前调用 setServerParams 设置的业务服务器会收到该条消息。
参数
length
类型: number
二进制字符串的长度
message
类型: string
发送的二进制消息内容,消息不超过 46KB。
返回值
类型: number
>0:发送成功,返回这次发送消息的编号,从 1 开始递增-1:发送失败,RtcEngine 实例未创建在视频通信时,通过视频帧发送 SEI 数据。
ts
(stream_index: number, message: Uint8Array, repeat_count: number) => number
注意
如果调用此接口之后的 2s 内,没有可带 SEI 的视频帧(比如没有开启视频采集和传输),那么,SEI 数据不会被加进视频帧中。
消息发送成功后,远端会收到 onSEIMessageReceived 回调。
参数
stream_index
类型: number
媒体流类型
message
类型: Uint8Array
SEI 消息。长度不超过 4 kB。
repeat_count
类型: number
消息发送重复次数。取值范围是 [0, 30]。调用此接口后,SEI 数据会添加到当前视频帧开始的连续 repeatCount 个视频帧中。
返回值
类型: number
设置 RTC SDK 内部采集时的视频采集参数。指定视频采集参数包括模式、分辨率、帧率。
ts
(config: VideoCaptureConfig) => any
注意
本接口在引擎创建后即可调用,建议在调用 startVideoCapture 前调用本接口。
如果调用本接口前使用内部模块开始视频采集,采集参数默认为 Auto 模式。
参数
config
类型: VideoCaptureConfig
视频采集参数
返回值
方法调用结果: 0:成功 !0:失败
开始播放音乐文件及混音
ts
(id: number, file_path: string, mixingconfig: AudioMixingConfig) => number
注意
调用本方法成功播放音乐文件后,SDK 会向本地回调当前的混音状态,见 onAudioMixingStateChanged。
开始播放音乐文件及混音后,可以调用 stopAudioMixing 方法停止播放音乐文件。
参数
id
类型: number
混音 ID,用于标识混音,请保证混音 ID 唯一性。 如果已经通过 preloadAudioMixing 将音效加载至内存,确保此处的 ID 与 preloadAudioMixing 设置的 ID 相同。 如果使用相同的 ID 重复调用本方法,前一次混音会停止,后一次混音开始,且 SDK 会使用 onAudioMixingStateChanged 回调通知前一次混音已停止。
file_path
类型: string
指定需要混音的本地文件的绝对路径,支持音频文件格式有: mp3,aac,m4a,3gp,wav。 可以通过传入不同的 ID 和 file_path 多次调用本方法,以实现同时播放多个音乐文件,实现混音叠加。
mixingconfig
混音配置,设置混音的播放次数、是否本地播放混音、以及是否将混音发送至远端
返回值
类型: number
停止播放音乐文件及混音
ts
(id: number) => number
注意
调用 startAudioMixing 方法开始播放音乐文件及混音后,可以调用本方法停止播放音乐文件及混音。
调用本方法停止播放音乐文件后,该音乐文件会被自动卸载。
参数
id
类型: number
混音 ID
返回值
类型: number
暂停播放音乐文件及混音
ts
(id: number) => number
注意
调用 startAudioMixing 方法开始播放音乐文件及混音后,可以通过调用本方法暂停播放音乐文件及混音。
调用本方法暂停播放音乐文件后,SDK 会向本地回调通知已暂停混音,见 onAudioMixingStateChanged。
参数
id
类型: number
混音 ID
返回值
类型: number
恢复播放音乐文件及混音
ts
(id: number) => number
注意
调用 pauseAudioMixing 方法暂停播放音乐文件及混音后,可以通过调用本方法恢复播放及混音。
调用本方法恢复播放音乐文件及混音后,SDK 会向本地回调通知音乐文件正在播放中,见 onAudioMixingStateChanged。
参数
id
类型: number
混音 ID
返回值
类型: number
预加载指定音乐文件到内存中
ts
(id: number, file_path: string) => number
注意
需要频繁播放某个音乐文件的时候,调用本方法预加载该文件,在播放的时候可以只加载一次该文件,减少 CPU 占用。
调用本方法预加载的指定音乐文件可以通过 unloadAudioMixing 卸载。
参数
id
类型: number
混音 ID 应用调用者维护,请保证唯一性。 如果使用相同的 ID 调用本方法,后一次会覆盖前一次。 如果先调用 startAudioMixing ,再使用相同的 ID 调用本方法 ,会先回调 onAudioMixingStateChanged 上一个混音停止,然后加载后一个混音。 使用一个 ID 调用本方法预加载 A.mp3 后,如果需要使用相同的 ID 调用 startAudioMixing 播放 B.mp3,请先调用 unloadAudioMixing 卸载 A.mp3 ,否则会报错 kAudioMixingErrorLoadConflict。
file_path
类型: string
指定需要混音的本地文件的绝对路径,支持音频文件格式有: mp3,aac,m4a,3gp,wav。 如果音乐文件长度超过 20s,会回调加载失败,见 onAudioMixingStateChanged。
返回值
类型: number
卸载指定音乐文件
ts
(id: number) => number
不论音乐文件是否播放,调用本方法卸载该文件后,SDK 会回调通知混音已停止,见 onAudioMixingStateChanged。
参数
id
类型: number
混音 ID
返回值
类型: number
调节音乐文件在本地和远端播放的音量大小
ts
(id: number, volume: number, type: number) => number
注意
调用本方法设置音量前,请先调用 preloadAudioMixing 或 startAudioMixing。
为保证更好的音质,建议将 volume 值设为 [0,100]。
参数
id
类型: number
混音 ID
volume
类型: number
音乐文件播放音量范围为 0~400。
type
类型: number
混音播放类型 设置音乐文件是否本地播放、以及是否发送到远端,由此控制音乐文件本地或远端播放的音量
+ 0: 仅本地播放
+ 1: 仅发送到远端
+ 2: 在本地播放并发送到远端
返回值
类型: number
获取音乐文件时长
ts
(id: number) => number
调用本方法获取音乐文件时长前,需要先调用 preloadAudioMixing 或 startAudioMixing。
参数
id
类型: number
混音 ID
返回值
类型: number
>0: 成功, 音乐文件时长,单位为毫秒。<0: 失败获取音乐文件播放进度
ts
(id: number) => number
调用本方法获取音乐文件播放进度前,需要先调用 startAudioMixing 开始播放音乐文件。
参数
id
类型: number
混音 ID
返回值
类型: number
>0: 成功, 音乐文件播放进度,单位为毫秒。<0: 失败设置音乐文件的播放位置
ts
(id: number, pos: number) => number
注意
本方法可以设置音乐文件的播放位置,这样你可以根据实际情况从指定的位置播放音乐文件,无需从头到尾完整播放一个音乐文件。
调用本方法设置音乐文件的播放位置前,需要先调用 startAudioMixing 开始播放音乐文件。
参数
id
类型: number
混音 ID
pos
类型: number
进度条位置,整数,单位为毫秒。
返回值
类型: number
设置当前音频文件的声道模式
ts
(id: number, mode: AudioMixingDualMonoMode) => number
调用本方法设置音频文件的声道模式前,需要先调用 startAudioMixing 开始播放音频文件。
参数
id
类型: number
混音 ID
mode
声道模式。默认的声道模式和源文件一致,详见 AudioMixingDualMonoMode。
返回值
类型: number
开启本地播放音乐文件变调功能,多用于 K 歌场景。
ts
(id: number, pitch: number) => number
本方法需要在调用 startAudioMixing 开始播放音频文件后、调用 stopAudioMixing 停止播放音频文件前使用,否则会触发 onAudioMixingStateChanged 回调报错
参数
id
类型: number
混音 ID
pitch
类型: number
相对于音乐文件原始音调的升高/降低值,取值范围[-12,12],默认值为 0,即不做调整。
取值范围内每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调,设置的绝对值越大表示音调升高或降低越多。
超出取值范围则设置失败,并且会触发 onAudioMixingStateChanged 回调,提示 AudioMixingState 状态为 AUDIO_MIXING_STATE_FAILED 混音播放失败,AudioMixingError 错误码为 AUDIO_MIXING_ERROR_ID_TYPE_INVALID_PITCH 设置混音文件音调不合法
返回值
类型: number
设置混音时音频文件的播放速度
ts
(id: number, speed: number) => number
注意
你需要在调用 startAudioMixing 开始混音,并且收到onAudioMixingStateChanged 回调提示 AudioMixingState 状态为 kAudioMixingStatePlaying,AudioMixingError 错误码为 kAudioMixingErrorOk 之后调用该方法。
在 stopAudioMixing 停止混音或 unloadAudioMixing 卸载音频文件后调用该 API,会收到状态为 kAudioMixingStateFailed 错误码为 kAudioMixingErrorIdNotFound 的 onAudioMixingStateChanged 回调。
参数
id
类型: number
混音 ID
speed
类型: number
播放速度与原始文件速度的比例,单位:%,取值范围为 [50,200],默认值为 100。
超出取值范围则设置失败,你会收到 onAudioMixingStateChanged 回调,提示 AudioMixingState 状态为 kAudioMixingStateFailed 混音播放失败,AudioMixingError 错误码为 kAudioMixingErrorInValidPlaybackSpeed 设置混音文件的播放速度不合法。
返回值
类型: number
如果你需要使用 enableVocalInstrumentBalance 对混音使音频文件/PCM 音频数据进行音量调整,你必须通过此接口传入其原始响度。
ts
(id: number, loudness: number) => number
建议在 startAudioMixing 开始播放音频文件之前调用该接口,以免播放过程中的音量突变导致听感体验下降。
参数
id
类型: number
混音 ID
loudness
类型: number
原始响度,单位:lufs,取值范围为 [-70.0, 0.0]。
当设置的值小于 -70.0lufs 时,则默认调整为 -70.0lufs,大于 0.0lufs 时,则不对该响度做音均衡处理。默认值为 1.0lufs,即不做处理。
返回值
类型: number
设置混音时音频文件播放进度回调的间隔
ts
(id: number, interval: number) => number
本方法需要在调用 startAudioMixing 开始播放音频文件后、调用 stopAudioMixing 停止播放音频文件前使用,否则会触发 onAudioMixingStateChanged 回调报错。 若想在音乐文件开始播放前设置播放进度回调间隔,你需调用 startAudioMixing 在 AudioMixingConfig 中设置时间间隔,开始播放后可以通过此接口更新回调间隔。
参数
id
类型: number
混音 ID
interval
类型: number
音频文件播放进度回调的时间间隔,单位毫秒。
• interval 的值为大于 0 的 10 的倍数,当设置的值不能被 10 整除时,则默认向上取整 10,如设为 52ms 时会默认调整为 60ms。设置完成后 SDK 将会按照设置的时间间隔触发 onAudioMixingPlayingProgress 回调。
• interval 的值小于等于 0 时,不会触发进度回调。
返回值
类型: number
获取当前音频文件的音轨索引
ts
(id: number) => number
调用本方法获取音频文件的音轨前,需要先调用 startAudioMixing 开始播放音频文件。
参数
id
类型: number
混音 ID
返回值
类型: number
指定当前音频文件的播放音轨
ts
(id: number, audioTrackIndex: number) => number
调用本方法设置音频文件的音轨前,需要先调用 startAudioMixing 开始播放音频文件。
参数
id
类型: number
混音 ID
audioTrackIndex
类型: number
指定的播放音轨
设置的参数值需要小于或等于 getAudioTrackCount 的返回值
返回值
类型: number
使用该方法,你可以对本地语音的音调进行升调或降调等调整。多用于 K 歌场景。
ts
(pitch: number) => number
参数
pitch
类型: number
相对于语音原始音调的升高/降低值,取值范围[-12,12],默认值为 0,即不做调整。
取值范围内每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调,设置的绝对值越大表示音调升高或降低越多。
超出取值范围则设置失败,并且会触发 onWarning 回调,提示码为 WARNING_CODE_SET_SCREEN_STREAM_INVALID_VOICE_PITCH 设置语音音调不合法
返回值
类型: number
开启自动语音识别服务。该方法将识别后的用户语音转化成文字,并通过 onMessage 事件回调给用户。
ts
(asrConfig: RTCASRConfig) => number
参数
asrConfig
类型: RTCASRConfig
校验信息
返回值
类型: number
关闭语音识别服务
ts
() => number
类型: number
该方法将通话过程中的音视频数据录制到本地的文件中。
ts
(type: number, config: RecordingConfig) => number
注意
调用该方法后,你会收到 onRecordingStateUpdate 回调。
如果录制正常,系统每秒钟会通过 onRecordingProgressUpdate 回调通知录制进度。
参数
type
类型: number
流属性,指定录制主流还是屏幕流
config
类型: RecordingConfig
本地录制参数配置
返回值
类型: number
停止本地录制
ts
(type: number) => number
注意
调用 startFileRecording 开启本地录制后,你必须调用该方法停止录制。
调用该方法后,你会收到 onRecordingStateUpdate 回调提示录制结果。
参数
type
类型: number
流属性,指定停止主流或者屏幕流录制
返回值
类型: number
设置发布的音视频流回退选项 。你可以调用这个接口来设置网络情况不佳或设备性能不足时只发送小流,以保证通话质量。
ts
(option: number) => number
注意
这个方法只在设置了发送多个流的情况下有效。
你可以调用 API 或者在服务端下发策略设置回退。当使用服务端下发配置实现时,下发配置优先级高于在客户端使用 API 设定的配置。
参数
option
类型: number
本地发布的音视频流回退选项
返回值
类型: number
设置订阅的音视频流回退选项。 你可以通过调用该接口来设置网络情况不佳或性能不足时只订阅小流或音频流,以保证通话质量。
ts
(option: number) => number
注意
你必须在进房前设置,进房后设置或更改设置无效。
你可以调用 API 或者在服务端下发策略设置回退。当使用服务端下发配置实现时,下发配置优先级高于在客户端使用 API 设定的配置。
参数
option
类型: number
远端订阅流回退处理选项
0: 关闭订阅音视频流时的性能回退功能 1: 只接收视频小流2: 先尝试只接收视频小流;如果网络环境无法显示视频,则再回退到只接收远端订阅的音频流返回值
类型: number
方法调用结果
设置用户优先级
ts
(roomId: string, userId: string, priority: RemoteUserPriority) => number
注意
参数
roomId
类型: string
房间 ID
userId
类型: string
远端用户的 ID
priority
远端用户的需求优先级
返回值
类型: number
开启通话前网络探测
ts
(isTestUplink: boolean, expectedUplinkBitrate: number, isTestDownlink: boolean, expectedDownlinkBiterate: number) => number
注意
成功调用本接口后,会在 3s 内收到一次 onNetworkDetectionResult 回调,此后每 2s 会收到一次该回调,通知探测结果;
若探测停止,则会收到一次 onNetworkDetectionStopped 通知探测停止。
参数
isTestUplink
类型: boolean
是否探测上行带宽
expectedUplinkBitrate
类型: number
期望上行带宽,单位:kbps范围为 {0, [100-10000]},其中, 0 表示由 SDK 指定最高码率。
isTestDownlink
类型: boolean
是否探测下行带宽
expectedDownlinkBiterate
类型: number
期望下行带宽,单位:kbps范围为 {0, [100-10000]},其中, 0 表示由 SDK 指定最高码率。
返回值
类型: number
停止通话前网络探测
ts
() => number
调用本接口后,会收到一次 onNetworkDetectionStopped 回调通知探测停止。
类型: number
将摄像头采集画面中的人像背景替换为指定图片或纯色背景。
若要取消背景特效,将背景贴纸特效素材路径设置为null。
ts
(modelPath: string, source: VirtualBackgroundSource) => any
注意
调用此接口前需依次调用以下接口:1、检查视频特效许可证 checkLicense;2、设置视频特效算法模型路径 setAlgoModelPath;3、开启视频特效 enableEffect。
参数
modelPath
类型: string
传入背景贴纸特效素材路径。
source
设置背景特效图片的本地路径。
返回值
0: 调用成功
在指定视频流上添加水印。
ts
(streamIndex: number, imagePath: string, config: RTCWatermarkConfig) => any
注意
调用 clearVideoWatermark 移除指定视频流的水印。
开启大小流后,水印对大小流均生效,且针对小流进行等比例缩小。
参数
streamIndex
类型: number
需要添加水印的视频流属性,参看 StreamIndex。
imagePath
类型: string
水印图片路径,支持本地文件绝对路径和Asset 资源路径(/assets/xx.png),长度限制为 512 字节。
水印图片为 PNG 或 JPG 格式。
config
水印参数,参看 RTCWatermarkConfig。
返回值
0: 调用成功
解绑本地视频流已绑定的渲染视图
ts
(roomId: string) => number
参数
roomId
string房间 ID
返回值
类型: number
0:成功
-1: 失败
为远端视频流绑定本地渲染视图
ts
(userId: string, roomId: string, view: HTMLDivElement, renderOptions?: RenderOptions) => number
参数
userId
类型: string
远端用户 ID
roomId
string房间 ID
view
类型: HTMLDivElement
视图
renderOptions
类型: RenderOptions
值: ' {
renderMode: RenderMode.FIT,
mirror: false,
}'
渲染选项
返回值
类型: number
0:成功
-1: 失败
解绑指定远端视频流已绑定的本地视图
ts
(userId: string, roomId: string) => number
停止接收远端视频流时应解绑视图
参数
userId
类型: string
远端用户 ID
roomId
string房间 ID
返回值
类型: number
0:成功
-1: 失败
解绑所有已绑定本地视图的指定远端视频流
ts
(roomId: string) => number
停止接收远端视频流时应解绑视图
参数
roomId
string房间 ID
返回值
类型: number
0:成功
-1: 失败
为本地屏幕共享流绑定视图
ts
(view: HTMLDivElement, roomId: string, renderOptions?: RenderOptions) => number
本地发起屏幕共享需要先绑定视图
参数
view
类型: HTMLDivElement
视图
roomId
string房间 ID
renderOptions
类型: RenderOptions
值: ' {
renderMode: RenderMode.FIT,
mirror: false,
}'
渲染选项
返回值
类型: number
0:成功
-1: 失败
解绑屏幕共享流已绑定的视图
ts
(roomId: string) => number
本地停止屏幕共享时解绑视图
参数
roomId
string房间 ID
返回值
类型: number
0:成功 !0: 失败
为远端屏幕共享流绑定本地视图
ts
(userId: string, roomId: string, view: HTMLDivElement, renderOptions?: RenderOptions) => number
接收屏幕共享流需要先绑定视图
参数
view
类型: string
视图
userId
类型: string
远端用户 ID
roomId
HTMLDivElement房间 ID
renderOptions
类型: RenderOptions
值: ' {
renderMode: RenderMode.FIT,
mirror: false,
}'
渲染选项
返回值
类型: number
0:成功
-1: 失败
解绑远端屏幕共享流已绑定的本地视图
ts
(userId: string, roomId: string) => number
停止接收屏幕共享流时应解绑视图
参数
userId
类型: string
远端用户 ID
roomId
string房间 ID
返回值
类型: number
0:成功
-1: 失败
static getSDKVersion()获取当前 SDK 版本信息
ts
() => string
类型: string
当前 SDK 版本信息
static getCurrentProcessId()获取加载引擎进程的 ID 方便调试
ts
() => string
类型: string
进程的 ID