createEngine
创建引擎,设置配置信息
createEngine(config: BrtcEngineAdvancedConfig | null): Promise<BrtcEngineImpl | null>
参数
返回
详情
destroyEngine
销毁 BRTC 引擎
destroyEngine(): void
getSdkVersion
获取 SDK 版本信息
getSdkVersion(): string
callExperimentalApi
调用实验性 API 接口
callExperimentalApi(jsonStr: string): void
SDK 内部存在一些只针对特殊用户、特殊场景下的参数、方法。这些内容通常情况下,不适用于大多数普通用户,因此不会作为标准接口提供出来。如果在标准接口中未能找到您需要的功能,您可以与我们联系来确认是否在试验性接口中可以开启或者设置。
setDefaultStreamRecvMode
设置默认的订阅模式
setDefaultStreamRecvMode(autoRecvAudio: boolean, autoRecvVideo: boolean): void
默认情况下,SDK 在感知到有远端用户推流时,会自动拉取其音视频流,并进行解码。目的是当需要播放远端用户声音和画面时,可以立刻播放,达到“秒开”的效果。但这会需要额外的带宽和计算资源。
您可以根据使用场景,设置不自动拉流解码,在需要播放的时候再订阅远端音视频流,缺点是播放耗时要长一些。
注意:需要在进入房间(enterRoom)前调用该接口,设置才能生效。
setNetworkQosParam
设置网络流控相关参数
setNetworkQosParam(qosParam: brtc.BrtcNetworkQosParam): void
on/off
设置回调接口
on<EventType extends keyof BrtcListener>(event: EventType, callback: BrtcListener[EventType])
BrtcListener
engineInstance.on('event', (...) => {})
enterRoom
加入房间
enterRoom(roomParams: brtc.BrtcRoomParams): void
必须加入房间才能发布或订阅音视频流。“发布”是指将自己的音、视频推送到服务器;“订阅”是指从服务器拉取房间里其他用户的音视频流。调用接口后,您会收到来自 BrtcListener 中的 onEnterRoom(result) 回调:
如果加入成功,result 会是一个正数(result > 0),表示加入房间的时间消耗,单位是毫秒(ms)
如果加入失败,result 会是一个负数(result < 0),表示进房失败的错误码
不管进房是否成功,enterRoom 都必须与 exitRoom 配对使用,在调用 exitRoom 前再次调用 enterRoom 函数会导致不可预期的错误问题。
exitRoom
离开房间
exitRoom(): void
switchRole
切换角色
switchRole(role: BrtcRoleType): void
调用本接口可以实现用户在“主播”和“观众”两种角色之间来回切换。
由于视频直播和语音聊天室需要支持多达10万名观众同时观看,所以设定了“只有主播才能发布自己的音视频”的规则。因此,当有些观众希望发布自己的音视频流(以便能跟主播互动)时,就需要先把自己的角色切换成“主播”。
在 BRTC SDK 中,默认以主播角色进入房间,即进房间就会开启音视频采集并发布流。
注意 以主播身份进房发布流后,调用此接口切换到观众,将会停止发布音视频流 以观众身份进房后,调用此接口切换到主播,SDK并不会自动发布音视频流,需要您再调用 startLocalAudio, muteLocalAudio, muteLocalVideo 等接口来启动音频或视频推流。
注意
startLocalPreview
开启本地视频的预览画面
startLocalPreview(useFront: boolean): void
与其他端的 SDK 不同,HarmonyOS SDK 不需要您设置渲染视图对象。您只需要遵守命名规则在您的页面上创建 XComponent 控件即可。 目前尚不支持在进入房间前调用此方法,建议您在收到 onEnterRoom 回调中来调用 如果当前正在屏幕共享,且设置的流类型是 BrtcVideoStreamTypeBig,调用此接口后,将会停止屏幕共享,恢复显示摄像头画面
stopLocalPreview
停止本地视频采集及预览
stopLocalPreview(): void
startLocalAudio
开启本地音频的采集和上行
startLocalAudio(quality: brtc.BrtcAudioQuality): void
stopLocalAudio
关闭本地音频的采集和上行
stopLocalAudio(): void
muteLocalAudio
静音/取消静音本地的音频
muteLocalAudio(mute: boolean): void
muteLocalVideo
暂停/恢复推送本地的视频数据
muteLocalVideo(streamType: brtc.BrtcVideoStreamType, mute: boolean): void
该接口可以暂停(或恢复)发布本地的视频画面,暂停之后,同一房间中的其他用户将无法继续看到自己的画面。调用此接口,并不会操作物理摄像头设备,比较适合频繁开关视频的场景。
注意:如果您还调用了 startScreenCapture 接口启动了屏幕共享,并设置了 streamType 是 BrtcVideoStreamTypeSub,此时摄像头和屏幕共享将会是两个独立的视频流在发布。在这种情况下,调用此接口,只作用于摄像头流。
startScreenCapture
streamType
BrtcVideoStreamTypeSub
startRemoteView
开始拉取并显示指定用户的远端画面
startRemoteView(userId: string, streamType: brtc.BrtcVideoStreamType)
stopRemoteView
停止显示远端视频画面,同时不再拉取该远端用户的视频数据流
stopRemoteView(userId: string, streamType: brtc.BrtcVideoStreamType)
调用此接口后,SDK 会清理关联到该远端用户的相关视频显示资源
调用此接口后,无论在手动订阅模式还是自动订阅模式下,都会停止接收该远端用户的视频流。区别是: 在手动订阅模式下,会释放掉该用户视频流相关的全部资源。如果需要再次恢复显示,需要重新发起订阅。 在自动订阅模式下,不需要重新订阅,再次恢复显示,画面显示速度更快。
调用此接口后,无论在手动订阅模式还是自动订阅模式下,都会停止接收该远端用户的视频流。区别是:
muteRemoteAudio
静音/取消静音指定的远端用户的声音
muteRemoteAudio(userId: string, mute: boolean): void
muteRemoteVideo
暂停/恢复接收指定的远端视频流
muteRemoteVideo(userId: string, streamType: brtc.BrtcVideoStreamType, mute: boolean): void
muteAllRemoteAudio
静音/取消静音所有用户的声音
muteAllRemoteAudio(mute: boolean): void
注意:当设置 mute 为 false 时,会自动拉取所有远端用户的音频流。因此,在手动订阅模式下,建议谨慎使用此接口。
setRemoteAudioVolume
设定某一个远端用户的声音播放音量
setRemoteAudioVolume(userId: string, volume: number): void
setVideoEncoderParam
设置视频编码器相关参数
setVideoEncoderParam(encParam: brtc.BrtcVideoEncParam): void
setVideoEncoderMirror
设置编码器输出的画面镜像模式
setVideoEncoderMirror(mirror: boolean): void
setVideoEncoderRotation
设置视频编码器输出的画面方向
setVideoEncoderRotation(rotation: brtc.BrtcVideoRotation): void
该设置不影响本地画面的预览方向,但会影响房间中其他用户所观看到(以及云端录制文件)的画面方向。
enableSmallVideoStream
开启大小画面双路编码模式
enableSmallVideoStream(enable: boolean, encParam: brtc.BrtcVideoEncParam): void
考虑到同时编码两个规格的视频画面,需要更多的计算资源,在硬件设备较差的系统上请谨慎开启此功能
setRemoteVideoStreamType
切换指定远端用户的大小画面
setRemoteVideoStreamType(userId: string, streamType: brtc.BrtcVideoStreamType)
setRenderParams
设置视频画面的渲染参数
setRenderParams(userId: string, streamType: brtc.BrtcVideoStreamType, params: brtc.BrtcRenderParams)
可设置的参数包括有:画面的填充模式、旋转角度(待开放)以及镜像模式(待开放)等。
snapshotVideo
视频画面截图
snapshotVideo(userId: string, streamType: brtc.BrtcVideoStreamType): void
setVideoFallbackEnable设置弱网条件下流是否开启自适应回退机制
setVideoFallbackEnable(enable: boolean): void
setAudioCaptureVolume
调节麦克风采集音量
setAudioCaptureVolume(volume: number): void
getAudioCaptureVolume
获取麦克风采集音量
getAudioCaptureVolume(): number
音量大小,范围是 0 ~ 100
setAudioPlayoutVolume
调节播放音量大小
setAudioPlayoutVolume(volume: number): void
getAudioPlayoutVolume
获取播放音量大小
getAudioPlayoutVolume(): number
enableAudioVolumeEvaluation
启用音量大小提示
enableAudioVolumeEvaluation(intervalMs: number): void
开启后会在 onUserVoiceVolume 中获取到 SDK 对音量大小值的评估。
开始屏幕分享
startScreenCapture(xComponentSurfaceId:string, streamType: brtc.BrtcVideoStreamType, encParam: brtc.BrtcVideoEncParam): void
BrtcVideoStreamType.BIG
stopScreenCapture
停止屏幕采集
stopScreenCapture(): void
pauseScreenCapture
暂停屏幕分享
pauseScreenCapture(): void
调用暂停屏幕共享后,不会停止屏幕共享内容采集,只是会发送黑帧数据。
resumeScreenCapture
恢复屏幕分享
`type script resumeScreenCapture(): void
`
--- <b id="setConsoleEnabled">setConsoleEnabled</b> 启用或禁用控制台日志打印(在 DevEco Studio 中,控制台可以理解为是 Log 面板) ```typescript setConsoleEnabled(enabled: boolean): void
setLogLevel
设置日志输出级别
setLogLevel(level: brtc.BrtcLogLevel): void
setLogPath
设置日志保存路径
setLogPath(path: string): void
setWatermark
为视频画面添加水印
setWatermark(imageData: Uint8Array, streamType: brtc.BrtcVideoStreamType, x: float, y: float, width: float): void
如果当前视频的编码分辨率是 640 x 360,参数设置为:x = 0.1,y = 0.1,width = 0.2,那么水印的左上坐标点就是(640 × 0.1,360 × 0.1)即(64,36),水印的宽度是 640 × 0.2 = 128px,水印的高度会根据水印图片的宽高比由 SDK 自动算出。
sendCustomCmdMsg
自定义消息发送
sendCustomCmdMsg(cmdID: number, data: Uint8Array, reliable: boolean, ordered: boolean): boolean
该接口可以借助音视频数据通道向当前房间里的其他用户广播您自定义的数据。但因为复用了音视频数据通道,请务必严格控制自定义消息的发送频率和消息体的大小,否则会影响音视频数据的质量控制逻辑,造成不确定性的问题
sendSEIMsg
将小数据量的自定义数据嵌入视频帧中
sendSEIMsg(data: Uint8Array, repeatCount: number): boolean
setLocalVideoProcessListener
设置本地视频帧监听
setLocalVideoProcessListener(listener: Function): void
setAudioFrameListener
设置音频帧监听器
setAudioFrameListener(listener: Function): void
setLogListener
设置日志回调
setLogListener(listener: Function): void
HarmonyOS
BRTC
基础接口
房间相关接口
音视频相关接口
屏幕分享相关接口
自定义消息发送
自定义采集和自定义渲染
日志相关
详细信息
createEngine
创建引擎,设置配置信息
参数
返回
详情
destroyEngine
销毁 BRTC 引擎
详情
getSdkVersion
获取 SDK 版本信息
callExperimentalApi
调用实验性 API 接口
参数
详情
SDK 内部存在一些只针对特殊用户、特殊场景下的参数、方法。这些内容通常情况下,不适用于大多数普通用户,因此不会作为标准接口提供出来。如果在标准接口中未能找到您需要的功能,您可以与我们联系来确认是否在试验性接口中可以开启或者设置。
setDefaultStreamRecvMode
设置默认的订阅模式
详情
默认情况下,SDK 在感知到有远端用户推流时,会自动拉取其音视频流,并进行解码。目的是当需要播放远端用户声音和画面时,可以立刻播放,达到“秒开”的效果。但这会需要额外的带宽和计算资源。
您可以根据使用场景,设置不自动拉流解码,在需要播放的时候再订阅远端音视频流,缺点是播放耗时要长一些。
注意:需要在进入房间(enterRoom)前调用该接口,设置才能生效。
参数
setNetworkQosParam
设置网络流控相关参数
参数
详情
on/off
设置回调接口
参数
BrtcListener
中提供的详情
engineInstance.on('event', (...) => {})
获得来自 SDK 的各种状态、事件通知,根据这些回调决定业务的后续动作。enterRoom
加入房间
参数
详情
必须加入房间才能发布或订阅音视频流。“发布”是指将自己的音、视频推送到服务器;“订阅”是指从服务器拉取房间里其他用户的音视频流。调用接口后,您会收到来自 BrtcListener 中的 onEnterRoom(result) 回调:
如果加入成功,result 会是一个正数(result > 0),表示加入房间的时间消耗,单位是毫秒(ms)
如果加入失败,result 会是一个负数(result < 0),表示进房失败的错误码
不管进房是否成功,enterRoom 都必须与 exitRoom 配对使用,在调用 exitRoom 前再次调用 enterRoom 函数会导致不可预期的错误问题。
exitRoom
离开房间
详情
switchRole
切换角色
详情
调用本接口可以实现用户在“主播”和“观众”两种角色之间来回切换。
由于视频直播和语音聊天室需要支持多达10万名观众同时观看,所以设定了“只有主播才能发布自己的音视频”的规则。因此,当有些观众希望发布自己的音视频流(以便能跟主播互动)时,就需要先把自己的角色切换成“主播”。
在 BRTC SDK 中,默认以主播角色进入房间,即进房间就会开启音视频采集并发布流。
参数
startLocalPreview
开启本地视频的预览画面
参数
详情
注意
stopLocalPreview
停止本地视频采集及预览
startLocalAudio
开启本地音频的采集和上行
参数
详情
stopLocalAudio
关闭本地音频的采集和上行
详情
muteLocalAudio
静音/取消静音本地的音频
参数
详情
muteLocalVideo
暂停/恢复推送本地的视频数据
参数
详情
该接口可以暂停(或恢复)发布本地的视频画面,暂停之后,同一房间中的其他用户将无法继续看到自己的画面。调用此接口,并不会操作物理摄像头设备,比较适合频繁开关视频的场景。
startRemoteView
开始拉取并显示指定用户的远端画面
参数
详情
stopRemoteView
停止显示远端视频画面,同时不再拉取该远端用户的视频数据流
参数
详情
调用此接口后,SDK 会清理关联到该远端用户的相关视频显示资源
muteRemoteAudio
静音/取消静音指定的远端用户的声音
参数
详情
muteRemoteVideo
暂停/恢复接收指定的远端视频流
参数
详情
muteAllRemoteAudio
静音/取消静音所有用户的声音
参数
详情
setRemoteAudioVolume
设定某一个远端用户的声音播放音量
参数
详情
setVideoEncoderParam
设置视频编码器相关参数
参数
详情
setVideoEncoderMirror
设置编码器输出的画面镜像模式
参数
详情
setVideoEncoderRotation
设置视频编码器输出的画面方向
参数
详情
该设置不影响本地画面的预览方向,但会影响房间中其他用户所观看到(以及云端录制文件)的画面方向。
enableSmallVideoStream
开启大小画面双路编码模式
参数
详情
setRemoteVideoStreamType
切换指定远端用户的大小画面
参数
详情
setRenderParams
设置视频画面的渲染参数
参数
详情
可设置的参数包括有:画面的填充模式、旋转角度(待开放)以及镜像模式(待开放)等。
snapshotVideo
视频画面截图
参数
详情
setVideoFallbackEnable
设置弱网条件下流是否开启自适应回退机制
参数
详情
setAudioCaptureVolume
调节麦克风采集音量
参数
getAudioCaptureVolume
获取麦克风采集音量
返回
音量大小,范围是 0 ~ 100
setAudioPlayoutVolume
调节播放音量大小
参数
详情
getAudioPlayoutVolume
获取播放音量大小
返回
音量大小,范围是 0 ~ 100
enableAudioVolumeEvaluation
启用音量大小提示
参数
设置小于等于 0 则会关闭回调,建议值:300ms
详情
开启后会在 onUserVoiceVolume 中获取到 SDK 对音量大小值的评估。
startScreenCapture
开始屏幕分享
参数
详情
BrtcVideoStreamType.BIG
,屏幕共享将会替换当前主摄像头流(如有),否则将独立于主摄像头流单独推送一路辅流。stopScreenCapture
停止屏幕采集
pauseScreenCapture
暂停屏幕分享
resumeScreenCapture
恢复屏幕分享
`
type script resumeScreenCapture(): void参数
setLogLevel
设置日志输出级别
参数
setLogPath
设置日志保存路径
参数
详情
setWatermark
为视频画面添加水印
参数
详情
如果当前视频的编码分辨率是 640 x 360,参数设置为:x = 0.1,y = 0.1,width = 0.2,那么水印的左上坐标点就是(640 × 0.1,360 × 0.1)即(64,36),水印的宽度是 640 × 0.2 = 128px,水印的高度会根据水印图片的宽高比由 SDK 自动算出。
sendCustomCmdMsg
自定义消息发送
参数
详情
sendSEIMsg
将小数据量的自定义数据嵌入视频帧中
参数
返回
详情
setLocalVideoProcessListener
设置本地视频帧监听
参数
详情
setAudioFrameListener
设置音频帧监听器
参数
详情
setLogListener
设置日志回调
参数