类型: interface
| 名称 | 描述 |
|---|---|
| joinRoom() | 加入房间。 调用此方法加入房间,同房间内其他用户进行音视频通话。 |
| leaveRoom() | 离开房间。 用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。 |
| destroy() | 销毁 createEngine 所创建引擎实例,并释放所有相关资源。 |
| publish() | 在当前所在房间内手动开始发布本地音视频流 |
| unpublish() | 在当前所在房间内停止发布本地音视频流。 |
| subscribeUserStream() | 订阅房间内指定的远端音视频流。 无论自动订阅还是手动订阅模式,你都可以调用此方法按需订阅房间中的音视频流。 该方法也可用于更新已经订阅的流的属性、媒体类型等配置。 |
| unSubscribe() | 停止订阅指定的房间内远端音视频流。 无论自动订阅还是手动订阅模式,你都可以调用此方法取消已订阅的音视频流。 |
| updateToken() | 更新 Token。 用于加入房间的 Token 有一定的有效期。Token 过期前 30 秒将收到 onTokenWillExpire 回调,需要调用此方法更新房间的 Token 信息。 |
| switchMicrophone() | 切换内部采集时使用的麦克风 |
| switchCamera() | 切换内部采集时使用的摄像头 默认摄像头由浏览器指定。 |
| startVideoCapture() | 开启内部视频采集。默认为关闭状态。 内部视频采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。 发布流后调用该方法,房间中的其他用户会收到 onUserStartVideoCapture 的回调。 |
| stopVideoCapture() | 关闭内部视频采集。默认为关闭状态。 内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。 发布流后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。 |
| startAudioCapture() | 立即开启内部音频采集。默认为关闭状态。 内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。 发布流后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。 |
| stopAudioCapture() | 立即关闭内部音频采集。默认为关闭状态。 内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。 调用该方法,本地用户会收到 onUserStopAudioCapture 的回调。 |
| startScreenCapture() | 使用内部采集模块,采集当前屏幕视频流,用于共享。 |
| stopScreenCapture() | 停止屏幕共享流内部采集。 |
| publishScreen() | 发布本地屏幕共享流。 |
| unpublishScreen() | 停止发布本地屏幕共享流。 |
| setLocalVideoPlayer() | 设置本地视频渲染时,使用的视图,并设置渲染模式。 调用本方法绑定视图以后,你可以通过 onPlayerEvent 来监听播放状态。你可以通过再次调用本方法,并绑定空视图来解除绑定。 |
| setRemoteVideoPlayer() | 设置远端视频渲染时,使用的视图,并设置渲染模式。 建议在收到 onVideoFirstFrameRendered 事件后,调用本方法对远端视频视图进行设置。你可以通过再次调用本方法,并绑定空视图来解除绑定。 |
| setLocalVideoMirrorType() | 是否开启本地视频流镜像模式。 |
| setAudioPlaybackDevice() | 设置音频播放设备,例如扬声器或者耳机,默认使用扬声器。 |
| play() | 手动开启音视频流播放 进房时未开启自动播放或自动播放失败时,可以调用本方法手动开启音视频流播放。 |
| muteLocalAudio() | 控制本地音频流的发送状态:发送/不发送。 非隐身用户使用此方法后,房间中的其他用户会收到回调 onUserMuteAudio。 |
| muteLocalVideo() | 控制本地视频流的发送状态:发送/不发送。 无论你使用内部视频采集,还是自定义视频采集,你都应使用此接口启动发送本地视频流。 非隐身用户使用此方法后,房间中的其他用户会收到回调 onUserMuteAudio。 |
| pauseAllSubscribedStream() | 暂停接收来自远端的媒体流。 |
| resumeAllSubscribedStream() | 恢复接收来自远端的媒体流 |
| sendUserMessage() | 给房间内指定的用户发送点对点文本消息。 若消息发送成功,则 userId 所指定的用户会收到 onUserMessageReceived 回调。 |
| sendUserBinaryMessage() | 给房间内指定的用户发送点对点二进制消息。 若消息发送成功,则 userId 所指定的用户会收到 onUserBinaryMessageReceived 回调。 |
| sendRoomMessage() | 给房间内的所有其他用户群发文本消息。 若消息发送成功,同一房间内的其他用户会收到 onRoomMessageReceived 回调。 |
| sendRoomBinaryMessage() | 给房间内的所有其他用户群发二进制消息。 若消息发送成功,同一房间内的其他用户会收到通过 onRoomBinaryMessageReceived 回调发送的消息 |
| sendSEIMessage() | 在视频通信时,通过视频帧发送 SEI 数据。 |
| setVideoEncoderConfig() | 在视频发布端设置发布的视频流参数 |
| enableSimulcastMode() | 在视频发布端设置摄像头视频流的大小流模式 |
| enableAudioPropertiesReport() | 启用音频信息提示。 |
| startLiveTranscoding() | 开启转推直播,并设置合流的视频视图布局和音频属性。 |
| updateLiveTranscoding() | 更新转推直播参数。 使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。 |
| stopLiveTranscoding() | 停止转推直播。 关于启动转推直播,参看 startLiveTranscoding。 |
| setBusinessId() | 设置业务标识参数 可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。 |
| setUserVisibility() | 设置用户可见性。默认可见。 |
| setExternalVideoTrack() | 使用用户自定义的 videoTrack 请确保在你调用本方法前已调用 setVideoSourceType 设置为自定义视频采集。 |
| setExternalAudioTrack() | 使用用户自定义的 audioTrack 使用自定义的 audioTrack 之后, 再开启摄像头,或者切换摄像头时。SDK 会采集新的视频流替换自定义的 audioTrack |
| 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() | 发布一路公共流。 公共流是指不属于任何房间,也不属于任何用户的媒体流。使用同一 appID 的用户,可以调用 startPlayPublicStream 获取和播放指定的公共流。 |
| updatePublicStreamParam() | 更新公共流参数。 调用 startPushPublicStream 发布一路公共流。 |
| stopPushPublicStream() | 停止发布公共流。 调用 startPushPublicStream 发布一路公共流。 |
| startPlayPublicStream() | 订阅指定公共流。 无论用户是否在房间内,都可以调用本接口获取和播放指定的公共流。 |
| stopPlayPublicStream() | 取消订阅指定公共流。 关于订阅公共流,查看 startPlayPublicStream。 |
| setPublicStreamVideoPlayer() | 为指定公共流设置使用的视图和渲染模式。 |
| setDummyCaptureImagePath() | 停止内部摄像头采集时,使用静态图片填充本地推送的视频流。 |
| defaultTranscoding() | 获取合流转推默认参数。 |
| startAudioPlaybackDeviceTest() | 启动音频播放设备检测。测试启动后,循环播放指定的音频文件,同时将通过 onAudioPlaybackDeviceTestVolume 回调播放时的音量信息。 |
| stopAudioPlaybackDeviceTest() | 停止音频播放设备测试。 |
| startAudioDeviceRecordTest() | 开始音频采集设备和音频播放设备测试。 建议提前调用 enableAudioPropertiesReport 注册音量提示回调,测试开始后,音频设备开始采集本地声音,可以通过 onLocalAudioPropertiesReport 获取采集音量。 |
| stopAudioDeviceRecordAndPlayTest() | 停止采集本地音频,并开始播放采集到的声音。录音播放完毕后,设备测试流程结束。 调用 startAudioDeviceRecordTest 30 s 内调用本接口来停止采集并开始播放此前采集到的声音。 |
| stopAudioDevicePlayTest() | 停止由调用 startAudioDeviceRecordTest 开始的音频播放设备测试。 在音频播放设备测试自动结束前,可调用本接口停止音频采集与播放测试。 |
加入房间。
调用此方法加入房间,同房间内其他用户进行音视频通话。
(token: string | null, roomId: string, userInfo: UserInfo, roomConfig: RoomConfig) => Promise<void>
注意
同一个 App ID 的同一个房间内,每个用户的用户 ID 必须是唯一的。如果两个用户的用户 ID 相同,则先进房的用户将自动退房并收到 DUPLICATE_LOGIN 错误。
用户加入房间成功后,在本地网络状况不佳的情况下,SDK 可能会与服务器失去连接,此时 SDK 将会自动重连。重连成功后,如果加入房间的为可见用户,远端用户会收到 onUserJoined 回调通知。
参数
token
类型: string
动态密钥,用于对进房用户进行鉴权验证。
进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
使用不同 AppID 的 App 是不能互通的。
请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。
roomId
类型: string
加入的房间 ID。
房间 ID 为长度在 128 字节以内的非空字符串,支持以下字符集范围:
1. 26 个大写字母 A ~ Z 。
2. 26 个小写字母 a ~ z 。
3. 10 个数字 0 ~ 9 。
4. 下划线 "_",at 符 "@",减号 "-"。
userInfo
类型: UserInfo
用户信息。
roomConfig
类型: RoomConfig
房间参数配置,设置房间模式以及是否自动发布或订阅流。
返回值
类型: Promise<void>
离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
(waitAck?: boolean) => Promise<void>
注意
可见的用户离开房间后,房间内其他用户会收到 onUserLeave 回调通知。
调用 joinRoom 方法加入房间后,必须调用此方法结束通话,否则无法开始下一次通话。重复调用此方法没有负面影响。
参数
waitAck
类型: boolean
返回值
类型: Promise<void>
销毁 createEngine 所创建引擎实例,并释放所有相关资源。
() => void
注意
请确保和需要销毁的 RTCEngine 实例相关的业务场景全部结束后,才调用此方法
RTCEngine 实例相关的内存,并且停止与媒体服务器的任何交互 在当前所在房间内手动开始发布本地音视频流
() => Promise<void>
注意
如果你已经在用户进房时通过调用 joinRoom 选择了自动发布,则无需再调用本接口。
用户调用此方法成功发布音视频流后,房间中的其他用户将会收到 onStreamAdd 回调通知。
返回值
类型: Promise<void>
在当前所在房间内停止发布本地音视频流。
() => Promise<void>
注意
调用 publish 手动发布音视频流后或在用户进房时设置为自动发布,都可以调用此接口停止发布。
用户调用此方法停止发布音视频流后,房间中的其他用户将会收到 onStreamRemove 回调通知。
返回值
类型: Promise<void>
订阅房间内指定的远端音视频流。
无论自动订阅还是手动订阅模式,你都可以调用此方法按需订阅房间中的音视频流。
该方法也可用于更新已经订阅的流的属性、媒体类型等配置。
(userId: string, mediaType: SubscribeMediaType, streamType?: StreamIndex, configure?: SubscribeVideoConfig) => Promise<void>
注意
你可以通过 onStreamAdd 和 onStreamRemove 两个事件获取当前房间你的音视频流信息,并调用本方法按需订阅流或修改订阅配置。
若调用 pauseAllSubscribedStream 暂停接收远端音视频流,此时仍可使用该方法对暂停接收的流进行设置,你会在调用 resumeAllSubscribedStream 恢复接收流后收到修改设置后的流。
参数
userId
类型: string
指定订阅的远端发布音视频流的用户 ID。
mediaType
媒体类型,用于指定订阅音/视频
streamType
类型: StreamIndex
流属性,用于指定订阅主流/屏幕流
configure
视频订阅配置
返回值
类型: Promise<void>
停止订阅指定的房间内远端音视频流。
无论自动订阅还是手动订阅模式,你都可以调用此方法取消已订阅的音视频流。
(userId: string, isScreen: boolean) => Promise<void>
无论是否订阅了指定的远端音视频流,都可以调用此方法。userId 无效或未订阅时,SDK 不会做任何处理,没有负面影响。
参数
userId
类型: string
指定需要取消订阅的远端音视频流的所属的用户的 ID 。
isScreen
类型: boolean
是否为屏幕共享流。
返回值
类型: 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,你可以通过调用 getDevices 获取。
返回值
类型: Promise<void>
切换内部采集时使用的摄像头
默认摄像头由浏览器指定。
(deviceId: string) => Promise<void>
如果你正在使用相机进行视频采集,切换操作当即生效;如果相机未启动,后续开启内部采集时,会打开设定的摄像头。
参数
deviceId
类型: string
设备 ID,你可以通过调用 getDevices 获取。
返回值
类型: Promise<void>
开启内部视频采集。默认为关闭状态。
内部视频采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
发布流后调用该方法,房间中的其他用户会收到 onUserStartVideoCapture 的回调。
(deviceId?: string) => Promise<MediaTrackSettings>
注意
调用 stopVideoCapture 可以停止内部视频采集。否则,只有当销毁引擎实例时,内部视频采集才会停止。
内部视频采集使用的摄像头由 switchCamera 接口指定。
参数
deviceId
类型: string
设备 ID,你可以通过调用 getDevices 获取。
返回值
类型: Promise<MediaTrackSettings>
实际生效的视频采集参数。参看MediaTrackSettings。请关注其中的 frameRate, height, 和 width 等值。
关闭内部视频采集。默认为关闭状态。
内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。
发布流后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。
() => Promise<void>
注意
调用 startVideoCapture 可以开启内部视频采集。
如果不调用本方法停止内部视频采集,则只有当销毁引擎实例时,内部视频采集才会停止。
返回值
类型: Promise<void>
立即开启内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
发布流后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。
(deviceId?: string) => Promise<void>
注意
调用 stopAudioCapture 可以停止内部音频采集。否则,只有当销毁引擎实例时,内部音频采集才会停止。
创建引擎后,无论是否发布音频数据,你都可以调用该方法开启音频采集,只有当(内部或外部)音频采集开始以后音频流才会发布。
参数
deviceId
类型: string
设备 ID,你可以通过调用 getDevices 获取。
返回值
类型: Promise<void>
立即关闭内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
调用该方法,本地用户会收到 onUserStopAudioCapture 的回调。
() => Promise<void>
注意
调用 startAudioCapture 可以开启内部音频采集。
如果不调用本方法停止内部音频采集,则只有当销毁引擎实例时,内部音频采集才会停止。
返回值
类型: Promise<void>
使用内部采集模块,采集当前屏幕视频流,用于共享。
(screenConfig?: ScreenConfig) => Promise<void>
注意
调用此方法仅开启屏幕流视频采集,不会发布采集到的视频。发布屏幕流视频需要调用 publishScreen。
调用此接口前,你可以调用 setVideoEncoderConfig 设置屏幕视频流的采集帧率和编码分辨率。
参数
screenConfig
类型: ScreenConfig
共享屏幕属性
返回值
类型: Promise<void>
停止屏幕共享流内部采集。
() => Promise<void>
调用该接口后远端会收到 onStreamRemove 事件
类型: Promise<void>
发布本地屏幕共享流。
() => Promise<void>
注意
你必须先加入房间,才能调用此方法。
调用 unpublishScreen 取消发布。
返回值
类型: Promise<void>
停止发布本地屏幕共享流。
() => Promise<void>
注意
要开启发布,调用 publishScreen。
调用后,远端会收到 onStreamRemove 回调。
返回值
类型: Promise<void>
设置本地视频渲染时,使用的视图,并设置渲染模式。
调用本方法绑定视图以后,你可以通过 onPlayerEvent 来监听播放状态。
你可以通过再次调用本方法,并绑定空视图来解除绑定。
(streamIndex: StreamIndex, videoPlayerOption?: VideoPlayerOption) => HTMLVideoElement | undefined
你应在加入房间后,绑定视图。退出房间后,此设置仍然有效。
参数
streamIndex
类型: StreamIndex
视频流属性
videoPlayerOption
视图信息和渲染模式
返回值
类型: HTMLVideoElement | undefined
设置远端视频渲染时,使用的视图,并设置渲染模式。
建议在收到 onVideoFirstFrameRendered 事件后,调用本方法对远端视频视图进行设置。
你可以通过再次调用本方法,并绑定空视图来解除绑定。
(streamIndex: StreamIndex, videoPlayerOption: VideoPlayerOption) => HTMLVideoElement | undefined
你应在加入房间后,绑定视图。退出房间后,此设置仍然有效。
参数
streamIndex
类型: StreamIndex
视频流属性
videoPlayer
视图信息和渲染模式
返回值
类型: HTMLVideoElement | undefined
是否开启本地视频流镜像模式。
(mirrorType: MirrorType) => void
参数
mirrorType
类型: MirrorType
是否开启镜像模式
设置音频播放设备,例如扬声器或者耳机,默认使用扬声器。
(deviceId: string) => Promise<void>
进房前和进房后,均可调用此方法设置音频播放设备。
参数
deviceId
类型: string
音频播放设备(扬声器或者耳机),你可以通过调用 getDevices
返回值
类型: Promise<void>
手动开启音视频流播放
进房时未开启自动播放或自动播放失败时,可以调用本方法手动开启音视频流播放。
(userId: string) => Promise<void>
参数
userId
类型: string
返回值
类型: Promise<void>
控制本地音频流的发送状态:发送/不发送。
非隐身用户使用此方法后,房间中的其他用户会收到回调 onUserMuteAudio。
(muteState: MuteState) => Promise<boolean>
注意
本方法仅控制本地音频流的发送状态,并不影响本地音频采集状态。
无论是否开启音频采集,你都可以启动发送本地音频流。如果在采集前启用发送,音频将在采集开始后立即发送。
参数
muteState
类型: MuteState
发送状态,标识是否发送本地音频流
返回值
类型: Promise<boolean>
控制本地视频流的发送状态:发送/不发送。
无论你使用内部视频采集,还是自定义视频采集,你都应使用此接口启动发送本地视频流。
非隐身用户使用此方法后,房间中的其他用户会收到回调 onUserMuteAudio。
(muteState: MuteState) => Promise<boolean>
注意
本方法仅控制本地视频流的发送状态,并不影响本地视频采集状态。
无论是否开启视频采集,你都可以启动发送本地视频流。如果在采集前启用发送,视频将在采集开始后立即发送。
参数
muteState
类型: MuteState
发送状态,标识是否发送本地视频流
返回值
类型: Promise<boolean>
本地视频发送状态
暂停接收来自远端的媒体流。
(mediaType: PauseResumeControlMediaType) => Promise<void>
注意
该方法仅暂停远端流的接收,并不影响远端流的采集和发送。
若想恢复接收远端流,需调用 resumeAllSubscribedStream。
参数
mediaType
类型: PauseResumeControlMediaType
媒体流类型,指定需要暂停接收音频还是视频流
返回值
类型: Promise<void>
恢复接收来自远端的媒体流
(mediaType: PauseResumeControlMediaType) => Promise<void>
注意
该方法仅恢复远端流的接收,并不影响远端流的采集和发送;
该方法不改变用户的订阅状态以及订阅流的属性。
参数
mediaType
类型: PauseResumeControlMediaType
媒体流类型,指定需要暂停接收音频还是视频流
返回值
类型: Promise<void>
给房间内指定的用户发送点对点文本消息。
若消息发送成功,则 userId 所指定的用户会收到 onUserMessageReceived 回调。
(userId: string, message: string) => Promise<unknown> | undefined
在发送房间内文本消息前,必须先调用 joinRoom 加入房间。
参数
userId
类型: string
消息接收用户的 ID
message
类型: string
发送的文本消息内容
消息不超过 62KB。
返回值
类型: Promise<unknown> | undefined
给房间内指定的用户发送点对点二进制消息。
若消息发送成功,则 userId 所指定的用户会收到 onUserBinaryMessageReceived 回调。
(userId: string, message: ArrayBuffer) => Promise<unknown>
在发送房间内二进制消息前,必须先调用 joinRoom 加入房间。
参数
userId
类型: string
消息接收用户的 ID
message
类型: ArrayBuffer
发送的二进制消息内容
消息不超过 62KB。
返回值
类型: Promise<unknown>
给房间内的所有其他用户群发文本消息。
若消息发送成功,同一房间内的其他用户会收到 onRoomMessageReceived 回调。
(message: string) => Promise<any> | undefined
参数
message
类型: string
发送的文本消息内容
消息不超过 62KB。
返回值
类型: Promise<any> | undefined
给房间内的所有其他用户群发二进制消息。
若消息发送成功,同一房间内的其他用户会收到通过 onRoomBinaryMessageReceived 回调发送的消息
(message: ArrayBuffer) => Promise<any> | undefined
参数
message
类型: ArrayBuffer
发送的文本消息,不超过 62KB。
返回值
类型: 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 个视频帧中。
在视频发布端设置发布的视频流参数
(streamIndex: StreamIndex, descriptions: VideoEncoderConfig | VideoEncoderConfig[]) => Promise<void>
对于摄像头流,默认参数是 360P,15FPS;对屏幕流,默认参数是 1080P,15FPS。
参数
streamIndex
类型: StreamIndex
descriptions
类型: [VideoEncoderConfig](keytype.html#videoencoderconfig) | [VideoEncoderConfig](keytype.html#videoencoderconfig)[]
视频流最大参数。
调用 enableSimulcastMode 启动大小流功能时,可以支持对多路视频流进行设置。最多支持 3 路参数。当设置了多路参数时,码率必须是从大到小排列。
大流的分辨率大于等于 540P 时,支持3路大小流;在 270P(含)和 450P(含)之间时,支持 2 路大小流;在 180P 及以下时,即使开启大小流也不生效。
返回值
类型: Promise<void>
在视频发布端设置摄像头视频流的大小流模式
(enabled: boolean) => boolean
注意
仅可以在发布之前进行大小流模式的设置。
开启大小流模式后,SDK 会自动设置各路视频的编码参数。如果你需要手动设置,可以调用 setVideoEncoderConfig。
参数
enabled
类型: boolean
返回值
类型: boolean
启用音频信息提示。
(config?: AudioPropertiesConfig) => void
开启提示后,你可以:
通过 onRemoteAudioPropertiesReport 回调获取订阅的远端用户的音频信息。
参数
config
音频信息提示相关设置
开启转推直播,并设置合流的视频视图布局和音频属性。
(transcode: LiveTranscodeConfig) => Promise<void>
注意
调用该方法后,关于启动结果和推流过程中的错误,会收到 onLiveTransCodingResult 回调。
调用 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
使用自定义的 audioTrack 之后, 再开启摄像头,或者切换摄像头时。SDK 会采集新的视频流替换自定义的 audioTrack
(index: StreamIndex, track: MediaStreamTrack) => Promise<void>
参数
index
类型: StreamIndex
音频流指针
track
类型: MediaStreamTrack
自定义的 audioTrack
返回值
类型: 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
返回值
类型: Promise<void>
登录即时消息服务器
调用此方法登录后,可以向同 appID 下其他已登陆用户发送文本或二进制消息。
(token: string | null, userId: string) => Promise<void>
注意
在调用本接口登录后,如果想要登出,需要调用 logout。
RTM_DUPLICATE_LOGIN 错误。 参数
token
类型: string
动态密钥,用于对登录用户进行鉴权验证。
同进房相同,登录需要携带 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
更新的动态密钥
返回值
类型: 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
发送的文本消息内容。消息不超过 62 KB。
返回值
类型: Promise<any>
给房间外指定的用户发送二进制消息(P2P)
(userId: string, message: ArrayBuffer) => Promise<any>
注意
必须调用 login 登录后,才能调用本接口。
若文本消息发送成功,则 uid 所指定的用户会通过 EngineEventsTypes.onUserBinaryMessageReceivedOutsideRoom 回调收到该消息。
参数
userId
类型: string
消息接收用户的 ID
message
类型: ArrayBuffer
发送的二进制消息内容。消息不超过 46 KB。
返回值
类型: Promise<any>
设置业务服务器参数。调用 sendServerMessage 或 sendServerBinaryMessage 发送消息给业务服务器之前,必须需要设置有效签名和业务服务器地址。
(signature: string, url: string) => Promise<any>
用户必须调用 login 登录后,才能调用本接口。
参数
signature
类型: string
动态签名。业务服务器会使用该签名对请求进行鉴权验证。
url
类型: string
业务服务器的地址
返回值
类型: Promise<any>
客户端给业务服务器发送文本消息(P2Server)
(message: string) => Promise<any>
在向业务服务器发送文本消息前,必须先调用 login 完成登录,随后调用 setServerParams 设置业务服务器。
参数
message
类型: string
发送的文本消息内容。消息不超过 62KB。
返回值
类型: Promise<any>
客户端给业务服务器发送二进制消息(P2Server)
(message: ArrayBuffer) => Promise<any>
在向业务服务器发送文本消息前,必须先调用 login 完成登录,随后调用 setServerParams 设置业务服务器。
参数
message
类型: ArrayBuffer
发送的二进制消息内容。消息不超过 46KB。
返回值
类型: Promise<any>
开启云代理
(cloudProxyInfo: any) => void
注意
在加入房间前调用此接口
要关闭云代理,调用 stopCloudProxy。
参数
cloudProxyInfo
类型: CloudProxyInfo
云代理服务器信息列表。
关闭云代理
() => void
要开启云代理,调用 startCloudProxy。
发布一路公共流。
公共流是指不属于任何房间,也不属于任何用户的媒体流。使用同一 appID 的用户,可以调用 startPlayPublicStream 获取和播放指定的公共流。
(publicStreamId: string, publicStreamParam: PublicStreamConfig) => Promise<void>
注意
同一用户使用同一公共流 ID 多次调用本接口无效。调用 updatePublicStreamParam 更新公共流参数。
调用 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>
注意
建议你在结束采集前,就进行静态图片填充设置,避免视频录制时,出现黑帧。
本地预览时,无法看到此图片。
参数
index
类型: StreamIndex
filePath
类型: string
以 Http 协议表示的图片地址,或 Blob 对象。
图片类型支持:JPG、PNG、BMP。
图片长宽比和视频编码参数不一致时,图片会被等比缩放,直至其两边长小于等于视频编码参数中的宽高。
返回值
类型: Promise<void>
获取合流转推默认参数。
() => Required<LiveTranscodeConfig>
类型: Required<LiveTranscodeConfig>
转推直播默认音视频参数
启动音频播放设备检测。测试启动后,循环播放指定的音频文件,同时将通过 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
类型: interface
| 名称 | 描述 |
|---|---|
| enableDevices() | 向用户获取设备权限 |
| getMicrophones() | 该方法枚举可用的麦克风。 可以通过该方法获取设备的 deviceId, 可用于 startAudioCapture 方法中指定采集/播放设备。 |
| getCameras() | 该方法枚举可用的摄像头等。 可以通过该方法获取设备的 deviceId, 可用于 startVideoCapture 方法中指定采集/播放设备。 |
| getAudioPlayback() | 该方法枚举可用的音频输出设备,例如耳机、音箱等。 可以通过该方法获取设备的 deviceId, 可用于 setAudioPlaybackDevice 方法中指定采集/播放设备。 |
| isSupported() | 浏览器是否支持 |
| getSupportedCodecs() | 获取当前浏览器支持的编解码类型。 若你已开通 vp8 业务,可以在进房前调用该接口查看当前浏览器是否支持 vp8 编码类型 |
| createEngine() | 创建引擎对象。 你必须先使用此方法,以使用 RTC 提供的各种音视频能力。 再次调用此方法时,会创建另一个独立的引擎实例。 |
| destroyEngine() | 手动销毁通过 createEngine 所创建的引擎对象。 |
| getSdkVersion() | 获取 SDK 当前的版本号。 |
| getDevices() | 该方法枚举可用的媒体输入和输出设备,比如麦克风、摄像头、耳机等。 可以通过该方法获取设备的 deviceId, 可用于 setAudioPlaybackDevice, startVideoCapture, startAudioCapture 方法中指定采集/播放设备。 |
向用户获取设备权限
(options?: { video: boolean; audio: boolean;}) => Promise<{ video: boolean; audio: boolean;}>
参数
options
类型: { video: boolean; audio: boolean; }
需要获取权限的设备类型
| 名称 | 类型 | 描述 |
|---|---|---|
| video | boolean |
视频设备 |
| audio | boolean |
音频设备 |
返回值
类型: Promise<{ video: boolean; audio: boolean; }>
video: boolean 视频设备audio:boolean 音频设备该方法枚举可用的麦克风。
可以通过该方法获取设备的 deviceId, 可用于 startAudioCapture 方法中指定采集/播放设备。
() => Promise<RTCDevice[]>
类型: Promise<RTCDevice[]>
所有的麦克风设备列表。
该方法枚举可用的摄像头等。
可以通过该方法获取设备的 deviceId, 可用于 startVideoCapture 方法中指定采集/播放设备。
() => Promise<RTCDevice[]>
类型: Promise<RTCDevice[]>
所有的摄像头设备列表。
该方法枚举可用的音频输出设备,例如耳机、音箱等。
可以通过该方法获取设备的 deviceId, 可用于 setAudioPlaybackDevice 方法中指定采集/播放设备。
() => Promise<RTCDevice[]>
类型: Promise<RTCDevice[]>
所有的设备列表。
浏览器是否支持
() => Promise<boolean>
类型: Promise<boolean>
True: 支持False:不支持获取当前浏览器支持的编解码类型。
若你已开通 vp8 业务,可以在进房前调用该接口查看当前浏览器是否支持 vp8 编码类型
() => Promise<string[]>
类型: Promise<string[]>
当前浏览器支持的编解码类型
创建引擎对象。
你必须先使用此方法,以使用 RTC 提供的各种音视频能力。
再次调用此方法时,会创建另一个独立的引擎实例。
(appId: string) => IRTCEngine
注意
通过分别调用 destroyEngine 销毁已经创建的多个引擎实例。
每个引擎都将消耗一定系统资源,通常不建议同时创建多于 2 个引擎实例。
参数
appId
类型: string
每个应用的唯一标识符,由 RTC 控制台随机生成的。不同的 AppId 生成的实例在 RTC 中进行音视频通话完全独立,无法互通。
返回值
类型: IRTCEngine
创建成功后返回一个可用的 IRTCEngine 实例
手动销毁通过 createEngine 所创建的引擎对象。
(engine: IRTCEngine) => void
注意
请确保与需要销毁的相关的业务场景全部结束后,才调用此方法。
本方法为阻塞调用,会阻塞当前线程直到 SDK 彻底完成退出逻辑,因而需要注意不要在回调线程中直接调用本方法,也需要注意不要在回调方法中等待主线程的执行,而同时在主线程调用本方法,从而造成死锁
参数
engine
类型: IRTCEngine
销毁所有和此 IRTCEngine 实例相关的内存,并且停止与媒体服务器的任何交互。
获取 SDK 当前的版本号。
() => string
类型: string
SDK 当前的版本号
该方法枚举可用的媒体输入和输出设备,比如麦克风、摄像头、耳机等。
可以通过该方法获取设备的 deviceId, 可用于 setAudioPlaybackDevice, startVideoCapture, startAudioCapture 方法中指定采集/播放设备。
() => Promise<RTCDevice[]>
类型: Promise<RTCDevice[]>
媒体设备列表。
类型: 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:静音
+ 100:原始音量(默认值)
+ 400: 最大可调音量 (自带溢出保护)
获取音频文件的音量
(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
音频缓冲池,详见浏览器文档