API Reference for iOS - EngineCallback

更新时间: 2023-10-23 16:45:52

# EngineCallback

# RTCEngineDelegate

说明

回调监听接口

# rtcEngine:didOccurError:

- (void)rtcEngine:(RTCEngine*_Nonnull)engine didOccurError:(RTCEngineErrorCode)code

说明

发生错误回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
code RTCEngineErrorCode 错误值

# rtcEngine:didCreateEngineErrorWithType:reason:

- (void)rtcEngine:(RTCEngine*_Nonnull)engine didCreateEngineErrorWithType:(NSInteger)type reason:(NSString*_Nonnull)reason

说明 rtcEngine:reportRtcStats:

创建引擎失败回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
type NSInteger 引擎类型
reason NSString* 失败原因

# rtcEngine:localUserJoindWithUid:

- (void)rtcEngine:(RTCEngine*_Nonnull)engine localUserJoindWithUid:(NSUInteger)uid

说明

本地用户进入房间回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
uid NSUInteger 用户ID

# rtcEngine:localUserDidLeavedWithUid:

- (void)rtcEngine:(RTCEngine*_Nonnull)engine localUserDidLeavedWithUid:(NSUInteger)uid

说明

本地用户离开房间回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
uid NSUInteger 用户ID

# rtcEngine:localUserReJoindWithUid:

- (void)rtcEngine:(RTCEngine*_Nonnull)engine localUserReJoindWithUid:(NSUInteger)uid

说明

本地用户重新进入房间回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
uid NSUInteger 用户ID

# rtcEngine:localVideoStateChange:error:

- (void)rtcEngine:(RTCEngine*_Nonnull)engine localVideoStateChange:(RTCLocalVideoStreamState)state error:(RTCLocalVideoStreamError)error

说明

本地视频状态发生改变

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
state RTCLocalVideoStreamState 视频状态
error RTCLocalVideoStreamError 错误值

# rtcEngine:remoteUserJoinWithUid:

- (void)rtcEngine:(RTCEngine*_Nonnull)engine remoteUserJoinWithUid:(NSUInteger)uid

说明

远端用户进入房间回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
uid NSUInteger 远端用户ID

# rtcEngine:remotefirstAudioRecvWithUid:

- (void)rtcEngine:(RTCEngine *_Nonnull )engine remotefirstAudioRecvWithUid:(NSUInteger)uid

说明

已接收远端音频首帧的回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
uid NSUInteger 远端用户ID

# rtcEngine:remotefirstVideoRecvWithUid:

- (void)rtcEngine:(RTCEngine *_Nonnull )engine remotefirstVideoRecvWithUid:(NSUInteger)uid

说明

已完成远端视频首帧解码回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
uid NSUInteger 远端用户ID

# rtcEngine:remotefirstVideoFrameOfUid:size:elapsed:

- (void)rtcEngine:(RTCEngine *_Nonnull )engine remotefirstVideoFrameOfUid:(NSUInteger)uid size:(CGSize)size elapsed:(NSInteger)elapsed

说明

已显示远端视频首帧回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
uid NSUInteger 远端用户ID
size CGSize 视频尺寸(宽和高)
elapsed NSInteger 从本地用户调用joinChannelByToken到发生此事件消耗的时间(ms)

# rtcEngine:remoteVideoStateChangedOfUid:state:reason:elapsed:

- (void)rtcEngine:(RTCEngine *_Nonnull )engine remoteVideoStateChangedOfUid:(NSUInteger)uid state:(RTCEngineVideoRemoteState)state reason:(RTCEngineVideoRemoteStateReason)reason elapsed:(NSInteger)elapsed

说明

远端视频状态发生改变回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
uid NSUInteger 远端用户ID
state RTCEngineVideoRemoteState 视频状态
reason RTCEngineVideoRemoteStateReason 改变原因
elapsed NSInteger 耗费时间

# rtcEngine:didOfflineOfUid:

- (void)rtcEngine:(RTCEngine*_Nonnull)engine didOfflineOfUid:(NSUInteger)uid

说明

远端用户离开当前房间回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
uid NSUInteger 远端用户ID

# rtcEngine:didOfflineOfUid:

- (void)rtcEngine:(RTCEngine*_Nonnull)engine didOfflineOfUid:(NSUInteger)uid reason:(RTCChannelUserOfflineReason)reason

说明

远端用户离开当前房间回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
uid NSUInteger 远端用户ID
reason RTCChannelUserOfflineReason 离开原因

# rtcEngine:didOfflineOfUid:

- (void)rtcEngineConnectionDidLost:(RTCEngine*_Nonnull)engine

说明

网络连接中断,且 SDK 无法在 10 秒内连接服务器回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象

# rtcEngine:connectionChangedToState:reason:

- (void)rtcEngine:(RTCEngine * _Nonnull)engine connectionChangedToState:(RTCConnectionStateType)state reason:(NSString*)reason

说明

网络连接状态已改变回调(该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态,和引起网络状态改变的原因)

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
state RTCConnectionStateType 当前的网络连接状态
reason NSString* 引起网络连接状态发生改变的原因

# rtcEngine:didAudioMuted:byUid:

- (void)rtcEngine:(RTCEngine *_Nonnull)engine didAudioMuted:(BOOL)muted byUid:(NSUInteger)uid

说明

远端用户音频静音回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
muted BOOL 远端用户是否静音,YES:静音;NO:取消静音
uid NSUInteger 远端用户ID

# rtcEngine:didVideoMuted:byUid:

- (void)rtcEngine:(RTCEngine *_Nonnull)engine didVideoMuted:(BOOL)muted byUid:(NSUInteger)uid

说明

远端用户暂停/重新发送视频回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
muted BOOL 远端用户是否停止发送视频,YES:该用户已暂停发送其视频流;NO:该用户已恢复发送其视频流
uid NSUInteger 远端用户ID

# rtcEngine:reportAudioVolumeOfSpeaker:volume:

- (void)rtcEngine:(RTCEngine * _Nonnull)engine reportAudioVolumeOfSpeaker:(NSUInteger)uid volume:(NSInteger)volume

说明

远端用户暂停/重新发送视频回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
uid NSUInteger 用户ID
volume NSInteger 混音后的总音量,取值范围为

# rtcEngine:didAudioSpeakerChanged:

- (void)rtcEngine:(RTCEngine * _Nonnull)engine didAudioSpeakerChanged:(RTCEngineAudioOutputRouting)routetype

说明

音频路由已发生变化回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
routetype RTCEngineAudioOutputRouting 当前的音频路由

# rtcEngine:onOnceLastMileQuality:

- (void)rtcEngine:(RTCEngine* _Nonnull)engine onOnceLastMileQuality:(RTCLastMileQuality) quality

说明

通话前网络上下行 last mile 质量报告回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
quality RTCLastMileQuality 网络上下行质量,基于上下行网络的丢包率和抖动计算,探测结果主要反映上行网络的状态

# rtcEngine:networkQuality:txQuality:rxQuality:

- (void)rtcEngine:(RTCEngine *  _Nonnull)engine networkQuality:(NSUInteger)uid txQuality:(RTCLastMileQuality)txQuality rxQuality:(RTCLastMileQuality)rxQuality

说明

网络质量回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
uid RTCEngine* 引擎对象
txQuality RTCLastMileQuality 发送端网络质量
rxQuality RTCLastMileQuality 接收端网络质量

# rtcEngine:reportRtcStats:

- (void)rtcEngine:(RTCEngine* _Nonnull)engine reportRtcStats:(RTCStats* _Nonnull)stats

说明

当前通话统计回调。 该回调在通话或直播中每两秒触发一次

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
stats RTCStats* 统计信息

# rtcEngine:reportLocalAudioStats:

- (void)rtcEngine:(RTCEngine* _Nonnull)engine reportLocalAudioStats:(RTCLocalAudioStats *_Nullable)stats

说明

本地音频统计回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
stats RTCLocalAudioStats* 统计信息

# rtcEngine:reportLocalVideoStats:

- (void)rtcEngine:(RTCEngine* _Nonnull)engine reportLocalVideoStats:(RTCLocalVideoStats *_Nullable)stats

说明

本地视频统计回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
stats RTCLocalVideoStats* 统计信息

# rtcEngine:reportRemoteAudioStats:

- (void)rtcEngine:(RTCEngine* _Nonnull)engine reportRemoteAudioStats:(RTCRemoteAudioStats * _Nonnull)stats

说明

远端音频统计回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
stats RTCRemoteAudioStats* 统计信息

# rtcEngine:reportRemoteVideoStats:

- (void)rtcEngine:(RTCEngine* _Nonnull)engine reportRemoteVideoStats:(RTCRemoteVideoStats * _Nonnull)stats

说明

远端视频统计回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
stats RTCRemoteVideoStats* 统计信息

# rtcEngine:rtmpStreamingChangedToState:state:errorCode:

- (void)rtcEngine:(RTCEngine* _Nonnull)engine rtmpStreamingChangedToState:(NSString *_Nonnull)url state:(RTCRtmpStreamingState)state errorCode:(RTCRtmpStreamingErrorCode)errorCode

说明

rtmp 推流状态改变回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
url NSString* 推流地址
state RTCRtmpStreamingState 推流状态
errorCode RTCRtmpStreamingErrorCode 错误信息

# rtcEngine:streamPublishedWithUrl:errorCode:

- (void)rtcEngine:(RTCEngine* _Nonnull)engine streamPublishedWithUrl:(NSString *_Nonnull)url errorCode:(RTCRtmpErrorCode)errorCode

说明

rtmp 发布回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
url NSString* 推流地址
errorCode RTCRtmpErrorCode 如果发现任意一个错误码:ERR_TIMEDOUT

# rtcEngine:streamUnpublishedWithUrl:

- (void)rtcEngine:(RTCEngine* _Nonnull)engine streamUnpublishedWithUrl:(NSString *_Nonnull)url

说明

rtmp 取消发布回调,应用层监控到:rtcEngine:streamUnpublishedWithUrl:表示停止推流成功,应用层可再调用:addPublishStreamUrl重新推流

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
url NSString* 推流地址

# rtcEngineTranscodingUpdated:

- (void)rtcEngineTranscodingUpdated:(RTCEngine* _Nonnull)engine

说明

rtmp 改变编码回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象

# rtcEngine:playMusicStateChanged:errorCode:

- (void)rtcEngine:(RTCEngine* _Nonnull)engine playMusicStateChanged:(RTCAudioMixingStateCode)state errorCode:(RTCAudioMixingErrorCode)errorCode

说明

播放音乐文件回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
state RTCAudioMixingStateCode 播放状态
errorCode RTCAudioMixingErrorCode 错误信息

# rtcEnginePlayMusicDidFinish:

- (void)rtcEnginePlayMusicDidFinish:(RTCEngine* _Nonnull)engine

说明

播放音乐文件结束回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象

# rtcEngineChangedNotify:

- (void)rtcEngineChangedNotify:(RTCEngine* _Nonnull)engine

说明

切换引擎通知

参数

变量名 类型 描述
engine RTCEngine* 引擎对象

# rtcEngine:videoBufferingStateChangedOfUid:state:timestampInMs:

- (void)rtcEngine:(RTCEngine* _Nonnull)engine videoBufferingStateChangedOfUid:(NSUInteger)uid state:(RTCVideoBufferingState)state timestampInMs:(NSInteger)timestampInMs

说明

卡顿回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
uid NSUInteger 用户ID
state RTCVideoBufferingState 卡顿状态
timestampInMs NSInteger 时间戳

# rtcEngineDestroyed:

- (void)rtcEngineDestroyed:(RTCEngine* _Nonnull)engine

说明

RTCEngine销毁回调,建议在收到该回调后再创建新的引擎

参数

变量名 类型 描述
engine RTCEngine* 引擎对象

# rtcEngine:receiveStreamMessageFromUid:data:

- (void)rtcEngine:(RTCEngine* _Nonnull)engine receiveStreamMessageFromUid:(NSString *)uid data:(NSData *)data

说明

接收到消息回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
uid NSString* 用户ID
data NSData* 消息数据

# rtcEngine:channelMediaRelayStateDidChange:error:

- (void)rtcEngine:(RTCEngine* _Nonnull)engine channelMediaRelayStateDidChange:(RTCChannelMediaRelayState)state error:(RTCChannelMediaRelayError)error

说明

跨频道媒体流转发状态发生改变

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
state RTCChannelMediaRelayState 流转发状态
error RTCChannelMediaRelayError 错误信息

# rtcEngine:didReceiveChannelMediaRelayEvent:

- (void)rtcEngine:(RTCEngine* _Nonnull)engine didReceiveChannelMediaRelayEvent:(RTCChannelMediaRelayEvent)event

说明

跨频道媒体流转发事件回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
event RTCChannelMediaRelayEvent 流转发事件

# rtcEngine:didRemoteStreamSubscribeAdvice:withUid:currentStream:suitableStream:

- (void)rtcEngine:(RTCEngine* _Nonnull)engine didRemoteStreamSubscribeAdvice:(NSString *)channel withUid:(NSUInteger)uid currentStream:(OmniRtcLiveSubscriptionStreamType)currentStream suitableStream:(OmniRtcLiveSubscriptionStreamType)suitableStream

说明

大小流切换建议回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
uid NSUInteger 用户ID
currentStream OmniRtcLiveSubscriptionStreamType 当前流类型
suitableStream OmniRtcLiveSubscriptionStreamType 建议流类型

# rtcEngine:didRemoteSubscribeFallbackToAudioOnly:byUid:

- (void)rtcEngine:(RTCEngine* _Nonnull)engine didRemoteSubscribeFallbackToAudioOnly:(BOOL)isFallbackOrRecover byUid:(NSUInteger)uid

说明

切换大小流流状态回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
isFallbackOrRecover BOOL 是否回退到音频
uid NSUInteger 用户ID

# rtcEngine:localViewSnapshot:

- (void)rtcEngine:(RTCEngine *_Nonnull)engine localViewSnapshot:(CGImageRef _Nonnull)image

说明

本地视频帧的预览图像回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
image CGImageRef 图像信息

# rtcEngine:remoteViewSnapshot:image:

- (void)rtcEngine:(RTCEngine *_Nonnull)engine remoteViewSnapshot:(NSUInteger)uid image:(CGImageRef _Nonnull)image

说明

远端视频帧的预览图像回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
uid NSUInteger 用户id
image CGImageRef 图像信息

# rtcEngine:didPublishAudioStateChanged:oldState:newState:elapseSinceLastState:

- (void)rtcEngine:(RTCEngine *_Nonnull)engine didPublishAudioStateChanged:(NSString *_Nonnull)channel oldState:(OmniRtcLiveStreamPublishState)oldState newState:(OmniRtcLiveStreamPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState

说明

音频推流状态改变回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
channel NSString* 频道ID
oldState OmniRtcLiveStreamPublishState 发布状态
newState OmniRtcLiveStreamPublishState 发布状态
elapseSinceLastState NSInteger 耗费时间

# rtcEngine:didPublishVideoStateChanged:oldState:newState:elapseSinceLastState:

- (void)rtcEngine:(RTCEngine *_Nonnull)engine didPublishVideoStateChanged:(NSString *_Nonnull)channel oldState:(OmniRtcLiveStreamPublishState)oldState newState:(OmniRtcLiveStreamPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState

说明

视频推流状态改变回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
channel NSString* 频道ID
oldState OmniRtcLiveStreamPublishState 发布状态
newState OmniRtcLiveStreamPublishState 发布状态
elapseSinceLastState NSInteger 耗费时间

# rtcEngine:didSubscribeAudioStateChanged:withUid:oldState:newState:elapseSinceLastState:

- (void)rtcEngine:(RTCEngine *_Nonnull)engine didSubscribeAudioStateChanged:(NSString *_Nonnull)channel withUid:(NSUInteger)uid oldState:(OmniRtcLiveStreamSubscribeState)oldState newState:(OmniRtcLiveStreamSubscribeState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState

说明

音频拉流状态改变回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
channel NSString* 频道ID
uid NSUInteger 用户ID
oldState OmniRtcLiveStreamSubscribeState 拉流状态
newState OmniRtcLiveStreamSubscribeState 拉流状态
elapseSinceLastState NSInteger 耗费时间

# rtcEngine:didSubscribeVideoStateChanged:withUid:oldState:newState:elapseSinceLastState:

- (void)rtcEngine:(RTCEngine *_Nonnull)engine didSubscribeVideoStateChanged:(NSString *_Nonnull)channel withUid:(NSUInteger)uid oldState:(OmniRtcLiveStreamSubscribeState)oldState newState:(OmniRtcLiveStreamSubscribeState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState

说明

视频拉流状态改变回调

参数

变量名 类型 描述
engine RTCEngine* 引擎对象
channel NSString* 频道ID
uid NSUInteger 用户ID
oldState OmniRtcLiveStreamSubscribeState 拉流状态
newState OmniRtcLiveStreamSubscribeState 拉流状态
elapseSinceLastState NSInteger 耗费时间