BRTCDelegate
BRTCAudioCallbackDelegate
BRTCLogDelegate
错误回调
- (void)onError:(int)errCode errMsg:(nullable NSString *)errMsg extInfo:(nullable NSDictionary*)extInfo;
参数
详情
SDK 不可恢复的错误,一定要监听,并分情况给用户适当的界面提示。
加入房间成功与否的回调
- (void)onEnterRoom:(NSInteger)result;
离房回调
- (void)onExitRoom:(NSInteger)reason;
切换角色的事件回调
- (void)onSwitchRole:(BRTCLiteAVError)errCode errMsg:(nullable NSString *)errMsg;
有用户加入当前房间
- (void)onRemoteUserEnterRoom:(NSString *)userId;
有用户离开当前房间
- (void)onRemoteUserLeaveRoom:(NSString *)userId reason:(NSInteger)reason;
远端用户是否存在可播放的主路画面(一般用于摄像头)
- (void)onUserVideoAvailable:(NSString *)userId available:(BOOL)available;
某远端用户发布/取消了辅路视频画面
- (void)onUserSubStreamAvailable:(NSString *)userId available:(BOOL)available;
“辅路画面”一般被用于承载屏幕分享的画面。当您收到 onUserSubStreamAvailable(userId, YES) 通知时,表示该路画面已经有可播放的视频帧到达。 此时,您需要调用 startRemoteSubStreamView 接口订阅该用户的远程画面,订阅成功后,您会继续收到该用户的首帧画面渲染回调 onFirstVideoFrame(userid)。
远端用户是否存在可播放的音频数据
- (void)onUserAudioAvailable:(NSString *)userId available:(BOOL)available;
当您收到 onUserAudioAvailable(userId, YES) 通知时,表示该用户发布了自己的声音,此时 SDK 的表现为
开始渲染本地或远程用户的首帧画面
- (void)onFirstVideoFrame:(NSString *)userId streamType:(BRTCVideoStreamType)streamType width:(int)width height:(int)height;
开始播放远程用户的首帧音频(本地声音暂不通知)
- (void)onFirstAudioFrame:(NSString *)userId;
首帧本地视频数据已经被送出
- (void)onSendFirstLocalVideoFrame:(BRTCVideoStreamType)streamType;
首帧本地音频数据已经被送出
- (void)onSendFirstLocalAudioFrame;
技术指标统计回调
- (void)onStatistics:(BRTCStatistics *_Nonnull)statistics;
详情 该统计回调每间隔2秒抛出一次,用于通知 SDK 内部音频、视频以及网络相关的专业技术指标。
麦克风准备就绪
- (void)onMicDidReady;
当您调用 startLocalAudio 之后,SDK 会尝试启动麦克风,如果麦克风能够启动成功就会抛出本事件。 如果启动失败,大概率是因为当前应用没有获得访问麦克风的权限,或者麦克风当前正在被其他程序独占使用中。
用于提示音量大小的回调,包括每个 userId 的音量和远端总音量
- (void)onUserVoiceVolume:(NSArray<BRTCVolumeInfo *> *)userVolumes totalVolume:(NSInteger)totalVolume;
SDK 跟服务器的连接断开
- (void)onConnectionLost;
SDK 会在跟云端的连接断开时抛出此事件回调,导致断开的原因大多是网络不可用或者网络切换所致,比如用户在通话中走进电梯时就可能会遇到此事件。
在抛出此事件之后,SDK 会努力跟云端重新建立连接,重连过程中会抛出 onTryToReconnect,连接恢复后会抛出 onConnectionRecovery 。
SDK 尝试重新连接到服务器
- (void)onTryToReconnect;
SDK 会在跟云端的连接断开时抛出 onConnectionLost,之后会努力跟云端重新建立连接并抛出本事件,连接恢复后会抛出。
SDK 跟服务器的连接恢复
- (void)onConnectionRecovery;
SDK 会在跟云端的连接断开时抛出 onConnectionLost,之后会努力跟云端重新建立连接并抛出 onTryToReconnect,连接恢复后会抛出本事件回调。
回调每个媒体用户的连接质量评价级别
- (void)onNetworkQuality:(NSArray<BRTCCollectionQuality *> *)qualityArray;
此回调从 3.8.0 版本开始提供
每 2 秒回调一次
qualityArray 媒体用户的连接质量评价信息,包含用户ID和级别。
收到自定义消息回调
- (void)onRecvCustomCmdMsgUserId:(NSString *)userId cmdID:(NSInteger)cmdID seq:(UInt32)seq message:(NSData *)message;
自定义消息丢失回调
- (void)onMissCustomCmdMsgUserId:(NSString *)userId cmdID:(NSInteger)cmdID errCode:(NSInteger)errCode missed:(NSInteger)missed;
收到 SEI 消息的回调
- (void)onRecvSEIMsg:(NSString *)userId message:(NSData *)message;
当屏幕分享开始时,SDK 会通过此回调通知
- (void)onScreenCaptureStarted;
当屏幕分享暂停时,SDK 会通过此回调通知
- (void)onScreenCapturePaused:(int)reason;
当屏幕分享恢复时,SDK 会通过此回调通知
- (void)onScreenCaptureResumed:(int)reason;
当屏幕分享停止时,SDK 会通过此回调通知
- (void)onScreenCaptureStoped:(int)reason;
本地采集后的 PCM 数据回调
- (void)onAudioCapturedRawAudioFrame:(BRTCCustomAudioFrame *)frame;
本地采集并经过音频模块前处理(ANS、AEC、AGC)后的 PCM 数据回调
- (void)onAudioLocalProcessedAudioFrame:(BRTCCustomAudioFrame *)frame;
有日志打印时的回调
- (void)onLog:(nullable NSString*)log LogLevel:(BRTCLogLevel)level WhichModule:(nullable NSString*)module;
BLive 进房回调
- (void)onEnterBliveRoom:(NSInteger)result mixStreamTaskList:(NSArray<BRTCMixStreamTask *> *)mixStreamTaskList;
BLive 离房回调
- (void)onExitBliveRoom:(NSInteger)reason;
BLive 跟服务器的连接断开回调
- (void)onBliveConnectionLost;
BLive 正在尝试重新连接到服务器回调
- (void)onBliveTryToReconnect;
BLive 跟服务器的连接恢复回调
- (void)onBliveConnectionRecovery;
BLive 切换角色的事件回调
- (void)onBliveSwitchRole:(BRTCRoleType)roleType;
BLive 添加混流任务回调
- (void)onMixStreamAdded:(NSString *)streamId streamProp:(BRTCMixStreamAddressBean *)streamProp;
BLive 移除混流任务回调
- (void)onMixStreamRemoved:(NSString *)streamId;
BLive 更新混流任务回调
- (void)onMixStreamUpdate:(NSString *)streamId streamProp:(BRTCMixStreamAddressBean *)streamProp;
BLive 混流通知回调
- (void)onMixedNotification:(NSString *)taskId customData:(NSString *)customData;
BLive 房间重复加入回调
- (void)onBliveConflictLogin;
BLive 开始转码回调
- (void)onStartTranscode:(NSString *)taskId;
BLive 停止转码回调
- (void)onStopTranscode:(NSString *)taskId;
收到智能体消息回调
- (void)onRecvAIMsg:(NSString *)userId message:(NSString *)message;
AI 引擎回调消息回调的数据格式为以下 JSON 格式:
{ "cmd": Number, // 消息类型 "messageId": String, // 消息ID "peerUserId": String, // 消息接收者ID(可选字段) "payload": Json // 消息数据,不同的消息类型, payload 内容不同,具体见每种消息类型的说明 }
其中,cmd 包括以下消息类型:
cmd
messageId 是一串 uuid,是此条消息的唯一标识。
messageId
peerUserId 是消息接收者的用户 ID。此字段不是必需字段。
peerUserId
payload 是消息的具体数据内容。不同的 cmd 对应的数据格式不同。具体如下:
payload
{ "code": 0, // 错误码 "message": "", // 详细的错误信息 "errorType": "", // 错误类型。包括: // asr: 提问者(说话人)实时字幕 // llm: 回答者(智能体)实时字幕 // tts: 回答者(智能体)语音合成 // signal: 信令有关的错误 }
{ "roundId": "", // 一轮对话的唯一标识 "words": [{ // text: 单子/词内容;startMs:词开始时间戳;endMs:词结束时间戳 "text": "这是", "startMs": 1620000000000, "endMs": 1620000000100 }, { "text": "一句话", "startMs": 1620000000100, "endMs": 1620000000200 }], "end": false, // true 代表这是一句完整的话 "startMs": 1620000000000, // 这句话的开始时间戳 "endMs": 1620000000200, // 这句话的结束时间戳 "text": "这是一句话", // 本次识别的字幕文本内容 }
{ "roundId": "", // 一轮对话的唯一标识 "timestamp": 0, // 表示状态发生变化时的时间戳 "state": 0 // 状态代码 // 0:空闲中:vad检测无人讲话 // 1:聆听中:客户端讲话中 & asr 输入中 // 2:思考中:大模型输出中 // 3:讲话中:tts输出中 }
{ "roundId": "", // 一轮对话的唯一标识 "final": false, // 如果为 true,代表本次对话内容输出完毕 "text": "这是一句话", // 回答者(智能体)本次回答的完整内容 }
{ "roundId": "", // 唯一标识一轮对话的 ID "end": false, // 如果为 true,代表一句完整的句子输出完毕 "text": "这是一句话", // 翻译文本内容 "sourceLang":"cn", // 翻译的源语言 "targetLang":"en", // 翻译的目标语言 }
iOS
BRTCDelegate
BRTCAudioCallbackDelegate
BRTCLogDelegate
错误回调
参数
详情
SDK 不可恢复的错误,一定要监听,并分情况给用户适当的界面提示。
加入房间成功与否的回调
参数
详情
离房回调
参数
0:主动调用 exitRoom 退房
1:被服务器踢出当前房间
2:当前房间整个被解散
详情
切换角色的事件回调
参数
详情
有用户加入当前房间
参数
详情
有用户离开当前房间
参数
远端用户是否存在可播放的主路画面(一般用于摄像头)
参数
详情
某远端用户发布/取消了辅路视频画面
参数
详情
“辅路画面”一般被用于承载屏幕分享的画面。当您收到 onUserSubStreamAvailable(userId, YES) 通知时,表示该路画面已经有可播放的视频帧到达。 此时,您需要调用 startRemoteSubStreamView 接口订阅该用户的远程画面,订阅成功后,您会继续收到该用户的首帧画面渲染回调 onFirstVideoFrame(userid)。
远端用户是否存在可播放的音频数据
参数
详情
当您收到 onUserAudioAvailable(userId, YES) 通知时,表示该用户发布了自己的声音,此时 SDK 的表现为
开始渲染本地或远程用户的首帧画面
参数
详情
开始播放远程用户的首帧音频(本地声音暂不通知)
参数
首帧本地视频数据已经被送出
参数
详情
首帧本地音频数据已经被送出
详情
技术指标统计回调
参数
详情 该统计回调每间隔2秒抛出一次,用于通知 SDK 内部音频、视频以及网络相关的专业技术指标。
麦克风准备就绪
详情
当您调用 startLocalAudio 之后,SDK 会尝试启动麦克风,如果麦克风能够启动成功就会抛出本事件。 如果启动失败,大概率是因为当前应用没有获得访问麦克风的权限,或者麦克风当前正在被其他程序独占使用中。
用于提示音量大小的回调,包括每个 userId 的音量和远端总音量
参数
详情
SDK 跟服务器的连接断开
详情
SDK 会在跟云端的连接断开时抛出此事件回调,导致断开的原因大多是网络不可用或者网络切换所致,比如用户在通话中走进电梯时就可能会遇到此事件。
在抛出此事件之后,SDK 会努力跟云端重新建立连接,重连过程中会抛出 onTryToReconnect,连接恢复后会抛出 onConnectionRecovery 。
SDK 尝试重新连接到服务器
详情
SDK 会在跟云端的连接断开时抛出 onConnectionLost,之后会努力跟云端重新建立连接并抛出本事件,连接恢复后会抛出。
SDK 跟服务器的连接恢复
详情
SDK 会在跟云端的连接断开时抛出 onConnectionLost,之后会努力跟云端重新建立连接并抛出 onTryToReconnect,连接恢复后会抛出本事件回调。
回调每个媒体用户的连接质量评价级别
参数
详情
此回调从 3.8.0 版本开始提供
每 2 秒回调一次
qualityArray 媒体用户的连接质量评价信息,包含用户ID和级别。
收到自定义消息回调
参数
详情
自定义消息丢失回调
参数
详情
收到 SEI 消息的回调
参数
详情
当屏幕分享开始时,SDK 会通过此回调通知
当屏幕分享暂停时,SDK 会通过此回调通知
参数
当屏幕分享恢复时,SDK 会通过此回调通知
参数
当屏幕分享停止时,SDK 会通过此回调通知
参数
本地采集后的 PCM 数据回调
参数
本地采集并经过音频模块前处理(ANS、AEC、AGC)后的 PCM 数据回调
参数
有日志打印时的回调
参数
BLive 进房回调
参数
BLive 离房回调
参数
BLive 跟服务器的连接断开回调
BLive 正在尝试重新连接到服务器回调
BLive 跟服务器的连接恢复回调
BLive 切换角色的事件回调
参数
BLive 添加混流任务回调
参数
BLive 移除混流任务回调
参数
BLive 更新混流任务回调
参数
BLive 混流通知回调
参数
BLive 房间重复加入回调
BLive 开始转码回调
参数
BLive 停止转码回调
参数
收到智能体消息回调
参数
AI 引擎回调消息回调的数据格式为以下 JSON 格式:
其中,
cmd
包括以下消息类型:messageId
是一串 uuid,是此条消息的唯一标识。peerUserId
是消息接收者的用户 ID。此字段不是必需字段。payload
是消息的具体数据内容。不同的 cmd 对应的数据格式不同。具体如下: