通过阅读本文,您可以了解iOS SDK和Mac SDK回调及监听的接口详情。

目录

AliRtcEngineDelegate回调如下所示。

说明 回调接口调用方式为异步调用。
API 描述 以上版本支持
onRemoteUserOnLineNotify 远端用户上线回调。 1.1
onRemoteUserOffLineNotify 远端用户下线回调。 1.1
onRemoteTrackAvailableNotify 远端用户音视频流发生变化时回调。 1.1
onSubscribeChangedNotify 订阅结果回调。 1.1
onNetworkQualityChanged 网络质量变化时回调。 1.4
onOccurWarning 警告回调。 1.1
onOccurError 错误回调。 1.1
onBye 被服务器踢出或者频道关闭时回调。 1.1
onFirstPacketSentWithAudioTrack 首帧数据发送成功回调。 1.11
onFirstRemoteVideoFrameDrawn 远端视频流首帧渲染完回调。 1.1
onFirstPacketReceivedWithAudioTrack 首包数据接收成功回调。
  • Mac:1.13
  • iOS:1.17.9
onVideoDetectCallback RTC采集视频数据回调(仅iOS)。 1.14
onUserAudioMuted 用户muteAudio通知回调(仅iOS)。 1.14
onUserVideoMuted 用户muteVideo通知回调(仅iOS)。 1.14
onUserAudioInterruptedBegin 用户音频被中断通知回调(仅iOS)。 1.14
onUserAudioInterruptedEnded 用户音频中断结束通知回调(仅iOS)。 1.14
onConnectionLost 网络断开回调。 1.14
onTryToReconnect 尝试网络重连回调。 1.14
onConnectionRecovery 网络重连成功回调。 1.14
onLeaveChannelResult 离开频道结果回调。 1.15
onUserWillResignActive 远端用户应用退到后台回调(仅iOS)。 1.15
onUserWillBecomeActive 远端用户应用返回前台回调(仅iOS)。 1.15
onPerformanceLow 当前设备性能不足回调。 1.16
onPerformanceRecovery 当前设备性能恢复回调。 1.16
onUpdateRoleNotifyWithOldRole 用户角色发生改变时回调。 1.16
onFirstLocalVideoFrameDrawn 本地预览渲染获取到第一帧回调(仅iOS)。 1.16.2
onAudioPlayingStateChanged 伴奏播放回调(仅iOS)。 1.16.2
onLastmileDetectResultWithQuality 网络质量探测回调。 1.16.2
onAudioDeviceRecordLevel 音频采集设备测试回调(仅Mac)。 1.16.2
onAudioDevicePlayoutLevel 音频播放设备测试回调(仅Mac)。 1.16.2
onAudioDevicePlayoutEnd 音频播放设备测试结束(仅Mac)。 1.16.2
onVideoSampleCallback 订阅的视频数据回调(仅Mac)。 1.16.2
onCaptureVideoSample 订阅的本地采集视频数据回调。 1.16.2
onRemoteVideoSample 订阅的远端视频数据回调。 1.16.2
onVideoTexture 订阅的视频Texture(纹理)回调。 1.16.2
onJoinChannelResult 加入频道结果回调。
  • Mac:1.17
  • iOS:1.17.9
onPublishResult 发布流状态变化回调。 1.17
onMediaRecordEvent 录制事件回调。 1.17
onRtcStats 实时数据回调(2s触发一次)。 1.17
onRtcLocalVideoStats 本地视频统计信息回调。 1.17
onRtcRemoteVideoStats 远端视频统计信息回调。 1.17
onAudioSampleCallback 订阅的音频数据回调。 1.17
onAudioVolumeCallback 用户音量大小回调。 1.17.9
onMediaExtensionMsgReceived 接收自定义数据回调。 1.17.1
onAudioEffectFinished 音效播放结束回调。 1.17.30
onVideoTextureCreated 订阅视频的Texture回调。 1.17
onVideoTextureDestory 订阅视频的Texture被销毁的回调。 1.17
onVideoPixelBuffer 订阅视频采集数据的回调。 1.17
onSubscribeResult 订阅远端用户媒体流的回调。 1.17.39
onUnsubscribeResult 取消订阅远端用户媒体流的回调。 1.17.39

接口详情

  • onRemoteUserOnLineNotify:远端用户上线回调。

    - (void)onRemoteUserOnLineNotify:(NSString *)uid;          
    参数 类型 描述
    uid NSString * 远端用户ID。
  • onRemoteUserOffLineNotify:远端用户下线回调。

    - (void)onRemoteUserOffLineNotify:(NSString *)uid;         
    参数 类型 描述
    uid NSString * 远端用户ID。
  • onRemoteTrackAvailableNotify:远端用户音视频流发生变化时回调。

    - (void)onRemoteTrackAvailableNotify:(NSString *)uid audioTrack:(AliRtcAudioTrack)audioTrack videoTrack:(AliRtcVideoTrack)videoTrack;              
    参数 类型 描述
    uid NSString * 远端用户ID。
    audioTrack AliRtcAudioTrack 远端用户发生变化后的音频流。
    videoTrack AliRtcVideoTrack 远端用户发生变化后的视频流。
  • onSubscribeChangedNotify:订阅结果回调。

    - (void)onSubscribeChangedNotify:(NSString *)uid audioTrack:(AliRtcAudioTrack)audioTrack videoTrack:(AliRtcVideoTrack)videoTrack;                   
    参数 类型 描述
    uid NSString * 远端用户ID。
    audioTrack AliRtcAudioTrack 订阅成功的音频流。
    videoTrack AliRtcVideoTrack 订阅成功的视频流。
  • onNetworkQualityChanged:网络质量变化时回调,建议在网络质量较差的时候可以在界面上提示用户。

    - (void)onNetworkQualityChanged:(NSString *)uid 
            upNetworkQuality:(AliRtcNetworkQuality)upQuality             
            downNetworkQuality:(AliRtcNetworkQuality)downQuality;
    参数 类型 描述
    uid NSString * 网络质量发生变化的用户ID,用户ID为空表示本地,其他表示远端。
    upQuality AliRtcNetworkQuality 上行网络质量。
    downQuality AliRtcNetworkQuality 下行网络质量。
  • onOccurWarning:警告回调。目前警告回调可以忽略,不会影响正常使用 。

    - (void)onOccurWarning:(int)warn;
    参数 类型 描述
    warn int 警告类型。
  • onOccurError:错误回调。

    当参数error为16908812或33620229时,您需要先调用destroy销毁实例,重新创建SDK实例,再调用joinChannel加入频道。

    - (void)onOccurError:(int)error;
    参数 类型 描述
    error int 错误类型。
  • onBye:被服务器踢出或者频道关闭时回调。

    - (void)onBye:(int)code;
    参数 类型 描述
    code int 消息类型。取值:
    • 1:被服务器踢出。
    • 2:频道关闭。
    • 3:同一个用户ID在其他端登录,被服务器踢出。
  • onFirstPacketSentWithAudioTrack:首帧数据发送成功回调。

    - (void)onFirstPacketSentWithAudioTrack:(AliRtcAudioTrack)audioTrack videoTrack:(AliRtcVideoTrack)videoTrack;
    参数 类型 描述
    audioTrack AliRtcAudioTrack 发送成功的音频流类型。
    videoTrack AliRtcVideoTrack 发送成功的视频流类型。
  • onFirstRemoteVideoFrameDrawn:远端视频流首帧渲染完回调。

    - (void)onFirstRemoteVideoFrameDrawn:(NSString *)uid videoTrack:(AliRtcVideoTrack)videoTrack;
    参数 类型 描述
    uid NSString * 远端用户ID。
    videoTrack AliRtcVideoTrack 渲染的流类型。
  • onFirstPacketReceivedWithAudioTrack:首包数据接收成功。

    • iOS代码,如下所示:
      - (void)onFirstPacketReceivedWithUid:(NSString *)uid                         audioTrack:(AliRtcAudioTrack)audioTrack                         videoTrack:(AliRtcVideoTrack)videoTrack;
    • Mac代码,如下所示:
      - (void)onFirstPacketReceivedWithAudioTrack:(AliRtcAudioTrack)audioTrack videoTrack:(AliRtcVideoTrack)videoTrack;
    参数 类型 描述
    audioTrack AliRtcAudioTrack 发送成功的音频流类型。
    videoTrack AliRtcVideoTrack 发送成功的视频流类型。
  • onVideoDetectCallback(仅iOS可用):RTC采集视频数据回调。

    说明 回调返回值为long类型。App层人脸识别模块中检测到的人脸数据,将此人脸数据存储的结构体指针返回给SDK。SDK接收到此指针后,会在onVideoTexture回调中再次透传回执给App。
    - (long)onVideoDetectCallback:(AliRtcVideoSource)type videoFrame:(AliRtcVideoDataSample *)videoFrame;
    参数 类型 描述
    type AliRtcVideoSource 视频流类型。
    videoFrame AliRtcVideoDataSample * 视频数据帧。
  • onUserAudioMuted(仅iOS可用):用户取消音频通知。

    - (void)onUserAudioMuted:(NSString *)uid audioMuted:(BOOL)isMute;
    参数 类型 描述
    uid NSString * 用户ID。
    isMute BOOL YES表示静音,NO表示未静音。
  • onUserVideoMuted(仅iOS可用):用户取消视频通知。

    - (void)onUserVideoMuted:(NSString *)uid videoMuted:(BOOL)isMute;
    参数 类型 描述
    uid NSString * 用户ID。
    isMute BOOL YES表示推流黑帧,NO表示正常推流。
  • onUserAudioInterruptedBegin(仅iOS可用):用户音频被中断通知(一般用户打电话等音频被抢占场景)。

    - (void)onUserAudioInterruptedBegin:(NSString *)uid;
    参数 类型 描述
    uid NSString * 音频被中断的用户ID。
  • onUserAudioInterruptedEnded(仅iOS可用):用户音频中断结束通知(对应onUserAudioInterruptedBegin)。

    - (void)onUserAudioInterruptedEnded:(NSString *)uid;
    参数 类型 描述
    uid NSString * 音频中断结束的用户ID。
  • onConnectionLost:网络断开回调。Mac环境从1.15版本开始支持该回调。

    - (void)onConnectionLost;
  • onTryToReconnect:尝试网络重连回调。Mac环境从1.15版本开始支持该回调。

    - (void)onTryToReconnect;
  • onConnectionRecovery:网络重连成功回调。Mac环境从1.15版本开始支持该回调。

    - (void)onConnectionRecovery;
  • onLeaveChannelResult:离开频道结果回调。调用leaveChannel接口后返回,如果调用leaveChannel后直接调用destroy,将不会收到此回调。

    - (void)onLeaveChannelResult:(int)result;
    参数 类型 描述
    result int 成功返回0,失败返回错误码。
  • onUserWillResignActive:远端用户应用退到后台。

    (void)onUserWillResignActive:(NSString *)uid
    参数 类型 描述
    uid NSString * 用户ID。
  • onUserWillBecomeActive:远端用户应用返回前台。

    (void)onUserWillBecomeActive:(NSString *)uid
    参数 类型 描述
    uid NSString * 用户ID。
  • onPerformanceLow:当前设备性能不足回调。

    - (void)onPerformanceLow;
  • onPerformanceRecovery:当前设备性能恢复回调。

    - (void)onPerformanceRecovery;
  • onUpdateRoleNotifyWithOldRole:用户角色发生改变时回调(调用setClientRole方法切换角色成功时触发此回调)。

    - (void)onUpdateRoleNotifyWithOldRole:(AliRtcClientRole)oldRole newRole:(AliRtcClientRole)newRole;
    参数 类型 描述
    oldRole AliRtcClientRole 变化前角色类型。
    newRole AliRtcClientRole 变化后角色类型。
  • onFirstLocalVideoFrameDrawn:本地预览渲染获取到第一帧回调。

    - (void)onFirstLocalVideoFrameDrawn;
  • onAudioPlayingStateChanged:伴奏播放回调。

    /**
     * @brief 伴奏播放状态回调
     * @param playState 当前播放状态
     * @param errorCode 播放错误码
     */
    - (void)onAudioPlayingStateChanged:(AliRtcAudioPlayingStateCode)playState errorCode:(AliRtcAudioPlayingErrorCode)errorCode;
    参数 类型 描述
    playStatus AliRtcAudioPlayingStateCode 当前播放状态。
    errorCode int 错误码。
  • onLastmileDetectResultWithQuality:网络质量探测回调。

    - (void)onLastmileDetectResultWithQuality:(AliRtcNetworkQuality)networkQuality;
    参数 类型 描述
    networkQuality AliRtcNetworkQuality 网络质量。
  • onAudioDeviceRecordLevel:音频采集设备测试回调。

    - (void)onAudioDeviceRecordLevel:(int)level;
    参数 类型 描述
    level int 音频采集设备音量值。
  • onAudioDevicePlayoutLevel:音频播放设备测试回调。

    - (void)onAudioDevicePlayoutLevel:(int) level;
    参数 类型 描述
    level int 音频播放设备音量值。
  • onAudioDevicePlayoutEnd:音频播放设备测试结束(音频文件播放完毕)。

    - (void)onAudioDevicePlayoutEnd;
  • onVideoSampleCallback:订阅的视频数据回调。

    - (void)onVideoSampleCallback:(NSString *)uid videoSource:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *)videoSample;
    参数 类型 描述
    uid NSString * 用户ID。
    type AliRtcVideoSource 视频流类型。
    videoSample AliRtcVideoDataSample * 视频帧率。
  • onCaptureVideoSample:订阅的本地采集视频数据回调。

    - (void)onCaptureVideoSample:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *)videoSample;
    参数 类型 描述
    videoSource AliRtcVideoSource 视频源。
    videoSample AliRtcVideoDataSample * 视频帧率。
  • onRemoteVideoSample:订阅的远端视频数据回调。

    - (void)onRemoteVideoSample:(NSString *)uid videoSource:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *)videoSample;
    参数 类型 描述
    uid NSString * 用户ID。
    videoSource AliRtcVideoSource 视频流类型。
    videoSample AliRtcVideoDataSample * 视频帧率。
  • onVideoTexture:订阅的视频Texture(纹理)回调。

    - (int)onVideoTexture:(NSString *)uid videoTextureType:(AliRtcVideoTextureType)videoTextureType textureId:(int)textureId width:(int)width height:(int)height rotate:(int)rotate extraData:(long)extraData ;
    参数 类型 描述
    uid NSString * 用户ID。
    videoTextureType AliRtcVideoTextureType 纹理类型。
    textureId int 纹理ID。
    width int 视频宽。
    height int 视频高。
    rotate int 视频方向。
    extraData long onVideoDetectCallback回调中返回long数据类型的人脸数据结构体指针。
  • onJoinChannelResult:加入频道结果回调(该回调等同于调用joinChannel接口的block操作,当您在处理加入频道之后的事件,选择其一即可)。

    • iOS代码,如下所示:
      (void)onJoinChannelResult:(int)result authInfo:(AliRtcAuthInfo *)authInfo;
    • Mac代码,如下所示:
      - (void)onJoinChannelResult:(int)result;
    参数 类型 描述
    result int 加入频道结果,成功返回0,失败返回错误码。
  • onPublishResult:发布流状态变化(该回调等同于调用publish接口的block操作,当您在处理发布之后的事件,选择其一即可)。

    - (void)onPublishResult:(int)result isPublished:(BOOL)isPublished;
    参数 类型 描述
    result int 当前推拉流结果。
    isPublished BOOL 是否处于推流状态,取值:
    • YES:是。
    • NO:否。
  • onMediaRecordEvent:录制事件回调。

    - (void)onMediaRecordEvent:(int)event filePath:(NSString *)filePath;
    参数 类型 描述
    event int 录制事件。取值:
    • 0:录制开始。
    • 1:录制结束。
    • 2:打开文件失败。
    • 3:写文件失败。
    filePath NSString * 录制文件路径。
  • onRtcStats:实时数据回调(2s触发一次)。

    - (void)onRtcStats:(AliRtcStats)stats;
    参数 类型 描述
    stats AliRtcStats 数据回调。
  • onRtcLocalVideoStats:本地视频统计信息回调,2s触发一次。

    - (void)onRtcLocalVideoStats:(AliRtcLocalVideoStats *)localVideoStats;
    参数 类型 描述
    localVideoStats AliRtcLocalVideoStats * 本地视频统计信息。
  • onRtcRemoteVideoStats:远端视频统计信息回调,2s触发一次。

    - (void)onRtcRemoteVideoStats:(AliRtcRemoteVideoStats *)remoteVideoStats;
    参数 类型 描述
    remoteVideoStats AliRtcLocalVideoStats * 远端视频统计信息。
  • onAudioSampleCallback:订阅的音频数据回调。

    - (void)onAudioSampleCallback:(AliRtcAudioSource)audioSource audioSample:(AliRtcAudioDataSample *)audioSample;
    参数 类型 描述
    audioSource AliRtcAudioSource 音频裸数据源类型。
    audioSample AliRtcAudioDataSample * 音频裸数据。
  • onAudioVolumeCallback:用户音量大小回调。语音状态和uid。

    - (void)onAudioVolumeCallback:(AliRtcAudioSource)audioSource userAudioinfo:(NSArray <AliRtcUserVolumeInfo *> *)array;
    参数 类型 描述
    audioSource AliRtcAudioSource 音频数据类型。
    array NSArray <AliRtcUserVolumeInfo*> * 回调用户音量信息数组,包含用户UID,语音状态以及音量。
  • onMediaExtensionMsgReceived:接收自定义数据回调,当房间中有用户发送自定义数据时,可以通过这个回调接收数据。
    - (void)onMediaExtensionMsgReceived:(NSString *)uid message:(NSData *)data;
    参数 类型 描述
    uid NSString 用户UID。
    data NSData 接收到的自定义数据。
  • onAudioEffectFinished:音效播放结束回调。
    - (void)onAudioEffectFinished:(int)soundId;
    参数 类型 描述
    soundId int 用户给该音效文件分配的ID。
  • onVideoTextureCreated:订阅视频的Texture回调。
    - (void)onVideoTextureCreated:(NSString *)uid videoTextureType:(AliRtcVideoTextureType)videoTextureType context:(void *)context;
    参数 类型 描述
    uid NSString * 用户的UID。
    videoTextureType AliRtcVideoTextureType 纹理类型。
    context void * OpenGL上下文。
  • onVideoTextureDestory:订阅视频的Texture被销毁的回调。
    - (void)onVideoTextureDestory:(NSString *)uid videoTextureType:(AliRtcVideoTextureType)videoTextureType;
    参数 类型 描述
    uid NSString * 用户的UID。
    videoTextureType AliRtcVideoTextureType 纹理类型。
  • onVideoPixelBuffer:订阅视频采集数据的回调。
    - (void)onVideoPixelBuffer:(NSString *)uid videoSource:(AliRtcVideoSource)videoSource pixelBuffer:(CVPixelBufferRef)pixelBuffer;
    参数 类型 描述
    uid NSString * 用户的UID。
    videoSource AliRtcVideoSource 视频裸数据源类型。
    pixelBuffer CVPixelBufferRef 视频纹理buffer。
  • onSubscribeResult:订阅远端用户媒体流的回调。
    - (void)onSubscribeResult:(NSString *)uid result:(int)result audioTrack:(AliRtcAudioTrack)audioTrack videoTrack:(AliRtcVideoTrack)videoTrack;
    参数 类型 描述
    uid NSString * 远端用户ID。
    result int 订阅结果,0表示订阅成功,失败返回错误码。
    audioTrack AliRtcAudioTrack 订阅成功的音频流。
    videoTrack AliRtcAudioTrack 订阅成功的视频流。
  • onUnsubscribeResult:取消订阅远端用户媒体流的回调。
    - (void)onUnsubscribeResult:(NSString *)uid result:(int)result;
    参数 类型 描述
    uid NSString * 远端用户ID。
    result int 订阅结果,0表示取消订阅成功,失败返回错误码。