API Reference for iOS - EngineCallback
# 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 | 耗费时间 |