方法

引擎管理

方法 描述
sharedInstance 获取 ByteRTCEngineKit 单例对象。
destroy 销毁由 sharedEngineWithAppId:delegate: 创建的引擎实例,并释放所有相关资源。
getSdkVersion 获取 SDK 当前的版本号。
getErrorDescription: 获取 SDK 内各种错误码、警告码的描述文字。
feedbackGrade:type:desc: 通话结束,用户反馈上报
sharedEngineWithAppId:delegate: 创建 RTCEngine 实例。

此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个 RTCEngine 实例,来使用 SDK 的其他能力。
sharedEngineWithAppId:delegate:monitorDelegate: 创建 RTCEngine 实例。

此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个 RTCEngine 实例,来使用 SDK 的其他能力。
initWithAppId:delegate:parameters: 创建引擎对象,此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个引擎实例,来使用 SDK 的其他能力
initWithAppId:delegate:monitorDelegate:parameters: 创建引擎对象,此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个引擎实例,来使用 SDK 的其他能力
destroyEngine 手动销毁引擎实例对象,如果当前的引擎对象是通过 sharedEngineWithAppId:delegate:
所创建的,则行为与 destroy 保持一致
setBusinessId: 设置业务标识参数。

可通过 businessId 区分不同的业务场景(角色/策略等)。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能。

房间管理

方法 描述
setUserRole: 设置用户角色。

通过设置不同的用户角色,可以控制用户在房间内的行为:

+ 能否发布音视频流;

+ 用户自身是否在房间中隐身。
clientRole 获取当前用户角色。
joinRoomByKey:roomId:roomProfile:userInfo: 加入房间。用户调用此方法加入房间,在一个房间内的用户间可以相互通话。

用户调用 sharedEngineWithAppId:delegate: 创建 RTC 引擎后,需调用此方法加入房间实现同其他用户进行音视频通话。

如果用户调用此方法加入房间,则后续重复调用此方法均会失败,用户必须调用 leaveRoom: 退出当前房间后,才能加入下一个房间。

本地用户调用此方法加入房间成功后,会收到 rtcEngine:onUserJoined:elapsed: 回调通知,远端用户会收到 rtcEngine:onUserJoined:elapsed: 回调通知。
leaveRoom: 离开房间。

用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。

调用 joinRoomByKey:roomId:roomProfile:userInfo:
方法加入房间后,必须调用此方法离开房间,否则无法进入下一个房间。无论当前是否在房间内,都可以调用此方法。重复调用此方法没有负面影响。

此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,SDK 会执行调用此方法时传入的 Block 块。
updateToken: 更新 Token。

Token 有一定的有效期,当 Token 过期时,用户需调用此方法更新房间的 Token 信息。

用户调用 joinRoomByKey:roomId:roomProfile:userInfo: 方法加入房间时,如果使用了过期的 Token 将导致加入房间失败,并会收到 rtcEngine:onJoinRoomResult:withUid:errorCode:joinType:elapsed: 回调通知,回调错误码为 ByteRtcErrorCode.ByteRTCErrorCodeInvalidTokenByteRtcErrorCode。此时需要重新获取 Token,并调用此方法更新 Token。
enableAutoSubscribe:videoMode: 设置订阅模式。

用户调用此方法设置房间中是音视频流的订阅模式。默认自动订阅。

如需开启手动订阅功能,建议在调用 joinRoomByKey:roomId:roomProfile:userInfo:方法加入房间前完成设置。
subscribeStream:subscribeConfig: 订阅指定的房间内远端音视频流。

关闭自动订阅功能,使用手动订阅模式时用户调用此方法按需订阅房间中的音视频流。

此方法仅在关闭自动订阅功能时生效。用户需在加入房间前调用 enableAutoSubscribe:videoMode: 方法关闭自动订阅功能以使用手动订阅模式。

订阅流失败时,SDK 会按失败原因回调 rtcEngine:onError: 通知用户,具体错误可参考错误码
ByteRTCErrorCode 描述。
unSubscribeStream:isScreen: 停止订阅指定的房间内远端音视频流。

关闭自动订阅功能,使用手动订阅模式时用户调用此方法停止订阅已订阅的音视频流。

此方法仅在关闭自动订阅功能时生效。用户需在加入房间前调用 enableAutoSubscribe:videoMode:enableAutoSubscribe:videoMode:: 方法关闭自动订阅功能以使用手动订阅模式。

音频管理

方法 描述
startAudioCapture 开启内部音频采集。默认为关闭状态。

进房前调用该方法,本地用户会收到 rtcEngine:onMediaDeviceStateChanged:device_type:device_state:device_error:rtcEngine:onMediaDeviceStateChanged:device_type:device_state:device_error 的回调。

进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStartAudioCapture: 的回调。
stopAudioCapture 关闭内部音频采集。默认为关闭状态。

进房前调用该方法,本地用户会收到 rtcEngine:onMediaDeviceStateChanged:device_type:device_state:device_error:rtcEngine:onMediaDeviceStateChanged:device_type:device_state:device_error 的回调。

进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStopAudioCapture: 的回调。
setAudioScenario: 设置音频场景类型。

你可以根据你的应用所在场景,选择合适的音频场景类型。

选择音频场景后,RTC 会自动根据客户端音频路由和发布订阅状态,适用通话音量/媒体音量。

本方法在进房前和进房后设置均可生效。
muteLocalAudio: 控制本地音频流的发送状态:发送/不发送。

使用此方法后,房间中的其他用户会收到回调 rtcEngine:onUserMuteAudio:muteState:。
muteRemoteAudio:muteState: 设置对来自指定远端用户的音频流的接收状态。默认为接收。
muteAllRemoteAudio: 设置对来自远端的所有音频流的接收状态。默认为接收。
setAudioVolumeIndicationInterval: 开启/关闭音量提示。默认关闭。

开启音量提示后,将按设置的时间间隔收到本地采集音量或订阅的远端用户的音量信息回调。
关于回调的具体信息,参看 rtcEngine:onAudioVolumeIndication:totalRemoteVolume:。
setRecordingVolume: 调节音频采集音量。
setPlaybackVolume: 调节本地播放的所有远端用户混音后的音量。
setAudioPlaybackDevice: 设置音频播放设备为扬声器或者听筒,默认使用扬声器。

音频播放设备发生变化时,会收到 rtcEngine:onAudioPlaybackDeviceChanged: 回调。
setAudioPerformanceProfile: 通过设置音频处理策略等级,获得不同的音频处理质量,默认为 auto 模式。

auto 模式下,SDK 会根据应用所在机型等级,自动适配音频处理策略。一般情况下,使用 auto 模式就可满足你的音视频通话需求。

你应使用此方法,实现音频体验和系统性能占用之间的平衡:

如果你希望系统性能占用较低,你应设置较低的策略等级;如果你更在意音频质量,你应选择设置更高的策略等级。

音频处理策略详见 ByteRTCAudioPerformanceProfile。
setRemoteAudioPlaybackVolume:volume: 调节来自指定远端用户的音频播放音量,默认为 100。

视频管理

方法 描述
setVideoEncoderConfig: 启动推送多路视频流,设置推送多路流时的各路视频参数,
包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
setLocalVideoCanvas:withCanvas: 设置本地视频渲染时,使用的视图,并设置渲染模式。

你应在加入房间前,绑定本地视图。退出房间后,此设置仍然有效。
如果需要解除绑定,你可以调用本方法绑定空视图。
setRemoteVideoCanvas:withIndex:withCanvas: 设置来自指定远端用户 user_id 的视频渲染时,使用的视图,并设置渲染模式。

你应在加入房间前,绑定视图。退出房间后,此设置失效。

如果需要解除某个用户的绑定视图,你可以把 view 设置为空。
startVideoCapture 开启内部视频采集。默认为关闭状态。

进房前调用该方法,本地用户会收到 rtcEngine:onMediaDeviceStateChanged:device_type:device_state:device_error:rtcEngine:onMediaDeviceStateChanged:device_type:device_state:device_error 的回调。

进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStartVideoCapture: 的回调。
stopVideoCapture 关闭内部视频采集。默认为关闭状态。

进房前调用该方法,本地用户会收到 rtcEngine:onMediaDeviceStateChanged:device_type:device_state:device_error:rtcEngine:onMediaDeviceStateChanged:device_type:device_state:device_error 的回调。

进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStopVideoCapture: 的回调。
muteLocalVideo: 停止/启动发送本地视频流。
调用该方法后,房间中的其他用户会收到 rtcEngine:onUserMuteVideo:withMuteState: 的回调。
muteRemoteVideo:withMuteState: 设置是否播放远端视频流
muteAllRemoteVideo: 设置是否播放所有远端视频流
setLocalVideoMirrorMode: 设置采用前置摄像头采集时,是否开启镜像模式。默认为关闭状态。

调用后,你会收到回调:rtcEngine:didMirrorStateChanged:
isLocalVideoMirrorOn 获取本地视频镜像状态
switchCamera: 切换移动端前置/后置摄像头
replaceBackground:withDivideModel: 视频图像分割,替换背景
enableVideoEffect: 创建/销毁视频特效引擎
setVideoEffectNodes: 设置视频特效包,支持同时设置多个特效包
updateVideoEffectNode:nodeKey:nodeValue: 设置特效强度
setVideoInputType: 配置视频采集源。

屏幕共享

方法 描述
setScreenCapture:Rect:screenCaptureParam: 配置外部屏幕采集
pushScreenCaptureFrame:time:rotation: 推送外部屏幕采集帧
startScreenSharingWithParam:preferredExtension:groupId: 开始内部屏幕采集
API_AVAILABLE 停止内部屏幕采集

实时消息通信

方法 描述
sendRoomMessage: 给房间内的所有其他用户发送广播文本消息。(Broadcast),返回这次发送消息的编号。
sendRoomBinaryMessage: 给房间内的所有其他用户发送广播二进制消息(Broadcast),返回这次发送消息的编号。
sendUserMessage:message: 给房间内指定的用户发送文本消息(P2P),返回这次发送消息的编号。
sendUserBinaryMessage:message: 给房间内指定的用户发送二进制消息(P2P),返回这次发送消息的编号。

自定义视频采集渲染

方法 描述
setLocalVideoRenderer: 设置本地视频外部渲染器。
setLocalVideoRenderer:forRoomId:forUserId: 设置本地视频外部渲染器。
setRemoteVideoRenderer:forRoomId:forUserId: 设置特定远端用户的外部渲染器。
setRemoteVideoRenderer:forUserId: 设置特定远端用户的外部渲染器。
setupRemoteScreenRenderer:forRoomId:forUserId: 设置远端屏幕共享的外部渲染器。
setupRemoteScreenRenderer:forUserId: 设置远端屏幕共享的外部渲染器。
pushExternalVideoFrame:time: 推送外部视频帧。
pushExternalVideoFrame:time:rotation: 推送外部视频帧。
pushExternalVideoFrame:time:rotation:extendedData:supplementaryInfo: 推送外部视频帧。
pushExternalByteVideoFrame: 推送外部视频帧,使用 ByteRTCVideoFrame 进行封装。

视频特效

方法 描述
checkVideoEffectSupport 检查当前版本是否支持视频特效
checkVideoEffectLicense: 视频特效许可证检查
setVideoEffectAlgoModelPath: 设置视频特效算法模型路径
addVideoEffectNodes: 增加特效包,支持同时增加多个特效包
removeVideoEffectNodes: 移除特效包,支持同时移除多个特效包
setVideoEffectColorFilter: 设置颜色滤镜
setVideoEffectColorFilterIntensity: 设置颜色滤镜强度

视频数据回调

方法 描述
setMediaMetadataObserver: 注册 metadata 观察者,用于接收或发送 metadata,底层通过在视频帧中添加 SEI 数据实现该功能。

注册观察者后,发送的视频帧里面没有 SEI 信息, 会触发 videoFrameMediaMetaDataAtTime: 回调。

注册观察者后,接收的视频帧里面有 SEI 信息,会触发接收 receiveVideoFrameFromUID:withExtendedData:atTimestamp: 回调。

CDN 推流

方法 描述
startLiveTranscoding:observer: 开启合流转推,并设置合流的视频视图布局和音频属性。
stopLiveTranscoding 停止合流转推。
updateLiveTranscoding: 更新合流转推参数。

启用合流转推功能后,你可以使用此方法更新合流转推功能配置参数。

云端渲染

方法 描述
enableCloudRending: 按照传入的布局信息开启云端渲染。
updateCloudRending: 按照传入的布局信息更新云端渲染。
disableCloudRending 停止云端渲染。

自定义音频采集渲染

方法 描述
enableExternalAudioDevice:playbackFormat: 启用自定义音频采集渲染
disableExternalAudioDevice 禁用已开启的自定义音频采集渲染,将音频采集渲染由自定义模块切换至内部模块。
pushExternalAudioFrame: 推送外部音频数据。
pullExternalAudioFrame: 拉取外部音频数据。

混音

方法 描述
setAudioPlayoutMixStream:sampleRate:channelNum: 启动/停止外部音频流混音, 并设置混音数据格式
getAudioMixingStreamCachedFrameNum 获取SDK当前缓冲数据
pushAudioMixingStreamData:frameNum: 向SDK推送混音的音频数据
getAudioMixingDuration 获取音乐文件时长
getAudioMixingCurrentPosition 获取音乐文件播放进度
stopAudioMixing 停止播放音乐文件及混音
pauseAudioMixing 暂停播放音乐文件
resumeAudioMixing 恢复播放音乐文件
adjustAudioMixingVolume: 调节音乐文件的文件音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
startAudioMixing:loopback:replace:cycle: 开始播放音乐文件及混音。
setAudioMixingPosition: 设置音频文件的播放位置
adjustAudioMixingPlayoutVolume: 调节音乐文件的本地播放音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
adjustAudioMixingPublishVolume: 调节音乐文件的远端播放音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
setVolumeOfEffect:withVolume: 调节指定音效文件的文件音量
getEffectVolume: 获取指定音效文件的文件音量
playEffect:filePath:loopback:cycle:withVolume: 开始播放指定音效文件。你可以在该方法中设置音效文件的播放次数、音量大小,以及远端用户是否能听到该音效。
preloadEffect:filePath: 预加载指定音效文件
unloadEffect: 卸载指定音效文件
pauseEffect: 暂停播放指定音效文件
resumeEffect: 恢复播放指定音效文件
stopEffect: 停止播放指定音效文件
setEffectsVolume: 调节所有音效文件的文件音量
unloadAllEffects 卸载所有音效文件
pauseAllEffects 暂停所有音效文件的播放
resumeAllEffects 恢复所有音效文件的播放
stopAllEffects 停止所有音效文件的播放

音频数据回调

方法 描述
setRecordingAudioFrameParameters:channels: 设置本地麦克风录制的音频数据回调参数
setPlaybackAudioFrameParameters:channels: 设置远端所有用户音频数据混音后的音频数据回调参数
setMixedAudioFrameParameters:channels: 设置本地麦克风录制音频数据和远端所有用户音频数据混音后的音频数据回调参数
setAudioFrameObserver: 设置音频数据回调观察者

音视频回退

方法 描述
setPublishFallbackOption: 设置发布的音视频流回退选项
setSubscribeFallbackOption: 设置订阅的音视频流回退选项
setRemoteUserPriority:uid: 设置用户优先级

加密

方法 描述
setEncryptType:key: 设置传输时使用内置加密的方式
setCustomizeEncryptHandler: 设置自定义加密和解密方式
需要实现对应的加密和解密方法。详情参考 ByteRTCEncryptHandler

回调

回调 描述
shouldInitialize 初始化渲染器
shouldStart 启动渲染器
shouldStop 停止渲染器
shouldDispose 释放渲染器
pixelFormat 获取PixelFormat格式
renderPixelBuffer:rotation:extendedData: 输出视频的 PixelBuffer
onLocalScreenFrame: 本地屏幕流的视频帧数据回调
onLocalVideoFrame: 本地视频流的视频帧数据回调
onRemoteScreenFrame:user:room: 远端屏幕流的视频帧数据回调
onRemoteVideoFrame:user:room: 远端视频流的视频帧数据回调
onStreamMixingEvent:eventData:error:mixType: 合流转推状态回调

CDN 推流

回调 描述
isSupportClientPushStream 是否具有推流能力。

+ false:不具备推流能力(默认值)

+ true:具备推流能力
onMixingAudioFrame: 端云一体合流音频 PCM 回调
onMixingVideoFrame: 端云一体合流视频 YUV 回调
onMixingDataFrame: 端云一体合流视频 SEI 数据
rtcEngine:onLiveTranscodingResult:errorCode: 合流转推错误回调。

调用 startLiveTranscoding:observer: 接口或直接在服务端启动合流转推功能后,你会通过此回调收到启动结果和推流过程中的错误。

警告码

回调 描述
rtcEngine:onWarning: 发生警告回调。

SDK 内部遇到可恢复错误时,在尝试自动恢复的同时,会通过此回调通知用户。此回调事件仅用作通知。

错误码

回调 描述
rtcEngine:onError: 发生错误回调。
SDK 运行时出现了网络或媒体相关的错误,且无法自动恢复时触发此回调。

引擎管理

回调 描述
rtcEngine:connectionChangedToState: SDK 与信令服务器连接状态改变回调。连接状态改变时触发。
rtcEngine:networkTypeChangedToType: SDK 当前网络连接类型改变回调。
rtcEngine:onMediaDeviceStateChanged:device_type:device_state:device_error: 媒体设备状态回调。媒体设备包括音频采集设备、音频渲染设备、视频采集设备三种类型。
rtcEngine:log: SDK 内部日志回调。

SDK 内部运行时,会把日志回调给业务方,方便排查问题。

房间管理

回调 描述
rtcEngine:onJoinRoomResult:withUid:errorCode:joinType:elapsed: 首次加入房间/重连加入房间的回调,表示用户调用 joinRoomByKey:roomId:roomProfile:userInfo:
的结果,根据错误码判断成功/失败以及区别是否为重连。
rtcEngine:onUserJoined:elapsed: 远端主播角色用户加入房间回调。

1.远端主播角色用户调用 joinRoomByKey:roomId:roomProfile:userInfo: 方法加入房间时,房间内其他用户将收到该事件。

2.远端主播角色用户断网后重新连入房间时,房间内其他用户将收到该事件。

3.远端静默观众角色用户调用 setUserRole: 方法将角色切换至主播时,房间内其他用户将收到该事件。

4.新进房用户会收到进房前已在房内的主播角色用户的进房回调通知。
rtcEngine:onUserLeave:reason: 远端主播角色用户离开房间回调。

发生以下情形时,房间内其他用户会收到此事件:

1.远端主播角色用户调用 leaveRoom: 方法离开房间时。

2.远端主播角色用户调用 setUserRole: 方法将角色切换至静默观众。

3.远端主播角色用户断网,且一直未恢复。
rtcEngine:onAudioFrameSendStateChanged:state: 音频首帧发送状态改变回调。
rtcEngine:onVideoFrameSendStateChanged:state: 视频首帧发送状态改变回调
rtcEngine:onScreenVideoFrameSendStateChanged:state: 屏幕共享流视频首帧发送状态改变回调
rtcEngine:onAudioFramePlayStateChanged:state: 音频首帧播放状态改变回调
rtcEngine:onVideoFramePlayStateChanged:state: 视频首帧播放状态改变回调
rtcEngine:onScreenVideoFramePlayStateChanged:state: 屏幕共享流视频首帧播放状态改变回调
rtcEngine:onStreamAdd: 房间内的用户发布新的音视频流时,房间内的其他用户会收到此回调通知。包括移除后又重新发布的流。
rtcEngine:didStreamRemoved:stream:reason: 房间内的远端用户停止发布音视频流时,本地用户会收到此回调通知。

音频事件回调

回调 描述
rtcEngine:onUserMuteAudio:muteState: 房间内某用户调用 muteLocalAudio:
改变本地音频发送状态时,房间内其他用户会收到此回调。
rtcEngine:didLocalAudioEnabled:byUid: 远端用户开启/关闭音频设备采集回调
提示有远端用户已开启/关闭音频设备采集,该回调由远端用户调用 startAudioCapture 方法触发
rtcEngine:onUserStartAudioCapture: 房间内的用户调用 startAudioCapture 开启音频采集时,房间内其他用户会收到此回调。
rtcEngine:onUserStopAudioCapture: 房间内的用户调用 stopAudioCapture 关闭音频采集时,房间内其他用户会收到此回调。
rtcEngine:onFirstRemoteAudioFrame: 当收到远端流的第一帧音频的时候上报该事件
rtcEngine:onAudioVolumeIndication:totalRemoteVolume: 提示本地采集的音量信息和在房间内订阅的远端用户的音量信息。

本回调默认不开启。你可以通过调用 setAudioVolumeIndicationInterval: 开启。
rtcEngine:onFirstLocalAudioFrame: 本地采集到第一帧音频帧时,收到该回调。
rtcEngine:onAudioPlaybackDeviceChanged: 音频播放设备变化时,收到该回调。
rtcEngine:onLocalAudioStateChanged:error: 本地音频流的状态发生改变时,该回调通知当前的本地音频状态。
rtcEngine:onRemoteAudioStateChanged:state:reason: 用户订阅来自远端的音频流状态发生改变时,会收到此回调,了解当前的远端音频流状态。

视频管理

回调 描述
rtcEngine:onUserMuteVideo:withMuteState: 房间内用户暂停/恢复发送视频流时,房间内其他用户会收到此回调。参看 muteLocalVideo:。
rtcEngine:onUserStartVideoCapture: 远端用户启用本地视频回调。房间中远端用户调用 startVideoCapture 时,本地用户将会收到该回调。
rtcEngine:onUserStopVideoCapture: 远端用户关闭本地视频回调。房间中远端用户调用 stopVideoCapture 时,本地用户将会收到该回调。
rtcEngine:onFirstLocalVideoFrameCaptured:withFrameInfo: 第一帧本地采集的视频/屏幕共享画面在本地视图渲染完成时,收到此回调。
rtcEngine:onFirstRemoteVideoFrameRendered:withFrameInfo: 第一帧远端视频流在视图上渲染成功后,收到此回调。
rtcEngine:onRemoteVideoSizeChanged:withFrameInfo: 远端视频大小或旋转信息发生变化时,收到此回调。
rtcEngine:onLocalVideoSizeChanged:withFrameInfo: 本地视频大小或旋转信息发生变化时,收到此回调。
rtcEngine:remoteVideoStateChangedOfUid:state: 远端视频流状态发生改变回调。
rtcEngine:didMirrorStateChanged: 本地视频镜像状态发生改变回调。
rtcEngine:onLocalVideoStateChanged:withStreamState:withStreamError: 本地视频流的状态发生改变时,收到该事件。
rtcEngine:onRemoteVideoStateChanged:withVideoState:withVideoStateReason: 远端视频流的状态发生改变时,房间内订阅此流的用户会收到该事件。

实时消息通信

回调 描述
rtcEngine:onRoomMessageReceived:message: 收到房间中广播文本消息时(Broadcast),会收到此回调。
rtcEngine:onRoomBinaryMessageReceived:message: 房间内所有用户接收到广播二进制消息的回调。(Broadcast)。
rtcEngine:onUserMessageReceived:message: 收到来自房间中其他用户发来的文本消息时(P2P),会收到此回调。
rtcEngine:onUserBinaryMessageReceived:message: 单个用户接收到同一房间内其他 uid 所属用户发来二进制消息的回调(P2P)。
rtcEngine:onUserMessageSendResult:error: 向房间内单个用户发送文本或二进制消息后(P2P),消息发送方会收到该消息发送结果回调。
rtcEngine:onRoomMessageSendResult:error: 向房间内所有用户发送文本或二进制消息后(Broadcast),消息发送方会收到该消息发送结果回调。

数据统计

回调 描述
rtcEngine:onRoomStats: 房间内通话统计信息回调。

用户进房开始通话后,每 2s 收到一次本回调。
rtcEngine:reportSysStats: 报告当前设备 cpu 与 memory 使用率,每 2s 触发一次。
rtcEngine:onLocalStreamStats: 本地流数据统计以及网络质量回调。

本地用户发布流成功后,SDK 会周期性(2s)的通过此回调事件通知用户发布的流在此次统计周期内的质量统计信息。

统计信息通过 ByteRTCLocalStreamStats 类型的回调参数传递给用户,其中包括发送音视频比特率、发送帧率、编码帧率,网络质量等。
rtcEngine:onRemoteStreamStats: 通话中本地设备接收订阅的远端音/视频流的统计信息以及网络状况,每 2s 触发一次。

混音

回调 描述
rtcEngineLocalAudioMixingDidFinish: 音乐文件混音结束回调。SDK通过此回调通知应用层音乐文件混音结束。
rtcEngineDidAudioEffectFinish:soundId: 音效文件混音结束回调。SDK通过此回调通知应用层音效文件混音结束

音视频回退

回调 描述
rtcEngine:onPerformanceAlarmsWithMode:roomId:reason:sourceWantedData: 本地未开启发布性能回退,检测到设备性能不足时,收到此回调。

本地开启发布性能回退,因设备性能/网络原因,造成发布性能回退/恢复时,收到此回调。
rtcEngine:OnSimulcastSubscribeFallback: 因发布/订阅性能回退或退出回退状态,订阅的音视频流,发生流的切换时,收到该回调。

网络代理

回调 描述
rtcEngine:onHttpProxyState: HTTP 代理连接状态改变时,收到该回调。
rtcEngine:onHttpsProxyState: HTTPS 代理连接状态改变时,收到该回调。
rtcEngine:onSocks5ProxyState:cmd:proxy_address:local_address:remote_address: SOCKS5 代理状态改变时,收到该回调。

音频数据回调

回调 描述
onRecordAudioFrame: 返回麦克风录制的音频数据
onPlaybackAudioFrame: 返回远端所有用户混音后的音频数据
onMixedAudioFrame: 返回本地麦克风录制和远端所有用户混音后的音频数据

视频数据回调

回调 描述
videoFrameMediaMetaDataAtTime: 当 SDK 准备发送一个视频帧时,会回调该接口,以确定是否需要在该视频帧中添加 metadata
receiveVideoFrameFromUID:withExtendedData:atTimestamp: 当 SDK 收到的视频帧包含 medatada 时,会回调该接口

加密

回调 描述
ByteRTCEncryptRawData: 自定义加密。

使用设定的自定义加密方式,对传输前的音视频帧数据进行加密。
ByteRTCDecryptRawData: 自定义解密。

对自定义加密后的音视频帧数据进行解密。关于自定义加密,参看 ByteRTCEncryptRawData:。

监控

回调 描述
onMonitorLog:withType: 埋点日志回调
isConsole 是否进行控制台输出
onVerboseLogWithLevel:filename:tag:line:functionName:format: 输出更多的调试信息