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
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 时,会自动拉取所有远端用户的音频流。因此,在手动订阅模式下,建议谨慎使用此接口。
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)
可设置的参数包括有:画面的填充模式、旋转角度(待开放)以及镜像模式(待开放)等。
开始屏幕分享
startScreenCapture(xComponentSurfaceId:string, streamType: brtc.BrtcVideoStreamType, encParam: brtc.BrtcVideoEncParam): void
BrtcVideoStreamType.BIG
stopScreenCapture
停止屏幕采集
stopScreenCapture(): void
setConsoleEnabled
启用或禁用控制台日志打印(在 DevEco Studio 中,控制台可以理解为是 Log 面板)
setConsoleEnabled(enabled: boolean): void
setLogLevel
设置日志输出级别
setLogLevel(level: brtc.BrtcLogLevel): void
setLogPath
设置日志保存路径
setLogPath(path: string): 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
离开房间
详情
startLocalPreview
开启本地视频的预览画面
参数
详情
注意
stopLocalPreview
停止本地视频采集及预览
startLocalAudio
开启本地音频的采集和上行
参数
详情
stopLocalAudio
关闭本地音频的采集和上行
详情
muteLocalAudio
静音/取消静音本地的音频
参数
详情
muteLocalVideo
暂停/恢复推送本地的视频数据
参数
详情
该接口可以暂停(或恢复)发布本地的视频画面,暂停之后,同一房间中的其他用户将无法继续看到自己的画面。调用此接口,并不会操作物理摄像头设备,比较适合频繁开关视频的场景。
startRemoteView
开始拉取并显示指定用户的远端画面
参数
详情
stopRemoteView
停止显示远端视频画面,同时不再拉取该远端用户的视频数据流
参数
详情
调用此接口后,SDK 会清理关联到该远端用户的相关视频显示资源
muteRemoteAudio
静音/取消静音指定的远端用户的声音
参数
详情
muteRemoteVideo
暂停/恢复接收指定的远端视频流
参数
详情
muteAllRemoteAudio
静音/取消静音所有用户的声音
参数
详情
setVideoEncoderParam
设置视频编码器相关参数
参数
详情
setVideoEncoderMirror
设置编码器输出的画面镜像模式
参数
详情
setVideoEncoderRotation
设置视频编码器输出的画面方向
参数
详情
该设置不影响本地画面的预览方向,但会影响房间中其他用户所观看到(以及云端录制文件)的画面方向。
enableSmallVideoStream
开启大小画面双路编码模式
参数
详情
setRemoteVideoStreamType
切换指定远端用户的大小画面
参数
详情
setRenderParams
设置视频画面的渲染参数
参数
详情
可设置的参数包括有:画面的填充模式、旋转角度(待开放)以及镜像模式(待开放)等。
startScreenCapture
开始屏幕分享
参数
详情
BrtcVideoStreamType.BIG
,屏幕共享将会替换当前主摄像头流(如有),否则将独立于主摄像头流单独推送一路辅流。stopScreenCapture
停止屏幕采集
setConsoleEnabled
启用或禁用控制台日志打印(在 DevEco Studio 中,控制台可以理解为是 Log 面板)
参数
setLogLevel
设置日志输出级别
参数
setLogPath
设置日志保存路径
参数
详情