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

目录

说明 回调接口调用方式为异步调用。

AliRtcEngineEventListener:本地用户行为回调。

API 描述 以上版本支持
onJoinChannelResult 加入频道结果回调。 1.1
onLeaveChannelResult 离开频道结果回调。 1.1
onNetworkQualityChanged 网络质量变化时回调。 1.1
onOccurWarning 警告回调。 1.1
onOccurError 错误回调。 1.1
onFirstPacketSent 首帧数据发送成功回调。 1.1
onFirstPacketReceived 首包数据接收成功回调。 1.13
onConnectionLost 网络断开回调。 1.14
onTryToReconnect 尝试网络重连回调。 1.14
onConnectionRecovery 网络重连成功回调。 1.14
onParticipantStatusNotify 远端用户状态改变回调。 1.14
onPerformanceLow 当前设备性能不足回调。 1.16
onPerformanceRecovery 当前设备性能恢复回调。 1.16
onFirstLocalVideoFrameDrawn 本地预览渲染获取到第一帧回调。 1.17.2
onAudioPlayingStateChanged 伴奏播放回调。 1.16.2
onNetworkQualityProbeTest 网络质量探测回调。 1.16.2
onFirstRemoteVideoFrameDrawn 远端视频流首帧渲染完回调。 1.16.2
onUserAudioMuted 用户muteAudio通知回调。 1.16.3
onUserVideoMuted 用户muteVideo通知回调。 1.16.3
onMediaRecordEvent 录制事件回调。 1.17
onRtcLocalVideoStats 本地视频统计信息回调。 1.17
onRtcRemoteVideoStats 远端视频统计信息回调。 1.17
onPublishChangedNotify 推流结果回调。 1.17.1
onSubscribeChangedNotify 订阅结果回调。 1.17.1
onMediaExtensionMsgReceived 接收自定义数据回调。 1.17.1

AliRtcEngineNotify:远端用户行为回调。

API 描述 以上版本支持
onRemoteUserOnLineNotify 远端用户上线回调。 1.1
onRemoteUserOffLineNotify 远端用户下线回调。 1.1
onRemoteTrackAvailableNotify 远端用户音视频流发生变化时回调。 1.1
onRemoteUserUnPublish 远端用户停止发布时的回调。 1.1
onAliRtcStats 实时数据回调(2s触发一次)。 1.16
onUpdateRoleNotify 用户角色发生改变时回调。 1.16
onAudioEffectFinished 音效播放结束回调。 1.17.30
onBye 被服务器踢出或者频道关闭时回调。 1.1
onParticipantSubscribeNotify 远端用户订阅的回调(已经过期不建议使用)。 1.17
onFirstFramereceived 收到首帧的回调。 1.17
onParticipantUnsubscribeNotify 远端用户取消订阅的回调。 1.17
onUserAudioInterruptedBegin 用户audio被中断(例如用户打电话时音频被抢占)的通知。 1.17
onUserAudioInterruptedEnded 用户audio中断结束的通知。 1.17
onUserWillResignActive 远端用户应用切换到后台。 1.17
onUserWillBecomeActive 远端用户应用返回前台。 1.17
onAudioFocusChange 音频焦点变化的结果通知(SDK内部会请求音频焦点,如外部再次使用音频焦点需要在此回调中再次请求)。 1.17

AliRtcAudioVolumeObserver:注册音量回调。

API 描述 以上版本支持
AliRtcAudioVolumeObserver 音量回调。 1.16.2

AliAudioObserver:音频数据回调。

API 描述 以上版本支持
onCaptureRawData 音频原始数据。 1.17
onCaptureData 本地推流音频数据。 1.17
onRenderData 远端音频数据。 1.17
AliVideoObserver:视频数据回调。
API 描述 以上版本支持
onLocalVideoSample 本地采集的视频数据。 1.17
onRemoteVideoSample 订阅远端的视频数据。 1.17
AliDetectObserver:人脸识别预处理接口。
API 描述 以上版本支持
onData 人脸识别回调接口。 1.15
AliRtcTextureObserver:视频流回调接口。
API 描述 以上版本支持
onTextureCreate 本地视频流纹理创建。 1.15
onTexture 每一帧视频流处理。 1.15
onTextureDestroy 本地视频流纹理销毁。 1.15

废弃回调接口目录

AliRtcEngineEventListener:本地用户行为回调。

API 描述 以上版本支持
onPublishResult 发布音视频流回调。 1.1
onUnpublishResult 停止发布音视频流回调。 1.1
onSubscribeResult 订阅回调。 1.1
onUnsubscribeResult 取消订阅回调。 1.1

接口详情

  • onJoinChannelResult:加入频道结果回调。
    void onJoinChannelResult(int result);
    参数 类型 描述
    result int 0为加入频道成功,非0为失败。
  • onLeaveChannelResult:离开频道结果回调。
    void onLeaveChannelResult(int result);
    参数 类型 描述
    result int 0为离开频道成功,非0为失败。
  • onNetworkQualityChanged:网络质量变化时回调。

    建议在网络质量较差的时候可以在界面上提示用户。

    void onNetworkQualityChanged(String uid, AliRtcNetworkQuality upQuality, AliRtcNetworkQuality downQuality);
    参数 类型 描述
    downQuality AliRtcNetworkQuality 下行网络质量。
    upQuality AliRtcNetworkQuality 上行网络质量。
    uid String 网络质量发生变化的用户ID,用户ID为空表示本地,其他表示远端。
  • onOccurWarning:警告回调。

    目前警告回调可以忽略,不会影响正常使用。

    void onOccurWarning(int warn);
    参数 类型 描述
    warn int 警告类型。更多信息,请参见错误码表
  • onOccurError:错误回调。

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

    void onOccurError(int error);
    参数 类型 描述
    error int 错误类型。更多信息,请参见错误码表
  • onFirstPacketSent:首帧数据发送成功回调。
    public void onFirstPacketSent(String callId, String streamLabel, String trackLabel, int timeCost);
    参数 类型 描述
    callId String 远端callId。
    streamLabel String stream标签。
    trackLabel String 流的标签。
    timeCost int 耗时,单位:ms。
  • onFirstPacketReceived:首包数据接收成功。
    void onFirstPacketReceived(String callId, String streamLabel, String trackLabel, int timeCost);
    参数 类型 描述
    callId String 远端callId。
    streamLabel String stream标签。
    trackLabel String 流的标签。
    timeCost int 耗时,单位:ms。
  • onConnectionLost:网络断开回调。
    void onConnectionLost();
  • onTryToReconnect:尝试网络重连回调。
    void onTryToReconnect();
  • onConnectionRecovery:网络重连成功回调。
    void onConnectionRecovery();
  • onParticipantStatusNotify:远端用户状态改变通知。
    void onParticipantStatusNotify(AliStatusInfo[] status_info_list, int count);
    参数 类型 描述
    status_info_list AliStatusInfo[] 用户状态数组。
    count int 数组长度。
  • onPerformanceLow:当前设备性能不足回调。

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

    void onPermormanceRecovery();
  • onFirstLocalVideoFrameDrawn:本地预览渲染获取到第一帧回调。

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

    public void onAudioPlayingStateChanged(AliRtcAudioPlayingStateCode playState, AliRtcAudioPlayingErrorCode errorCode) {}
    参数 类型 描述
    playStatus AliRtcAudioPlayingStatus 当前播放状态。取值:
    • AliRtcAudioPlayingStarted:开始播放。
    • AliRtcAudioPlayingStopped:停止播放。
    • AliRtcAudioPlayingPaused:暂停播放。
    • AliRtcAudioPlayingResumed:恢复播放。
    • AliRtcAudioPlayingEnded:停止播放。
    • AliRtcAudioPlayingBuffering:正在缓冲。
    • AliRtcAudioPlayingBufferingEnd:缓冲结束。
    • AliRtcAudioPlayingFailed:播放失败。
    errorCode AliRtcAudioPlayingErrorCode 错误码。
  • onNetworkQualityProbeTest:网络质量探测回调。

    void onNetworkQualityProbeTest(AliRtcNetworkQuality networkQuality);
    参数 类型 描述
    networkQuality AliRtcNetworkQuality 网络质量。
  • onFirstRemoteVideoFrameDrawn:远端视频流首帧渲染完回调。

     void onFirstRemoteVideoFrameDrawn(String uid, AliRtcVideoTrack videoTrack);
    参数 类型 描述
    uid String 用户ID
    VideoTrack AliRtcVideoTrack 视频流类型。
  • onUserAudioMuted:用户muteAudio通知。

    void onUserAudioMuted(String uid, boolean mute);
    参数 类型 描述
    uid String 用户ID,从AppServer分配的唯一标示符。
    mute boolean true:静音,false:未静音。
  • onUserVideoMuted:用户muteVideo通知。

    void onUserVideoMuted(String uid, boolean mute);
    参数 类型 描述
    uid String 用户ID,从AppServer分配的唯一标示符。
    mute boolean true:表示推流黑帧,false:表示正常推流。
  • onMediaRecordEvent:录制事件回调。

    public void onMediaRecordEvent(int result, String filePath);
    参数 类型 描述
    result int
    • 0:录制开始。
    • 1:录制结束。
    • 2:打开文件失败。
    • 3:写文件失败。
    filePath String 录制文件存储路径。
  • onRtcLocalVideoStats:本地视频统计信息回调。

    public void onRtcLocalVideoStats(AliRTCLocalVideoStats aliRtcStats);
    参数 类型 描述
    aliRtcStats AliRTCLocalVideoStats 发布端视频流数据。
  • onRtcRemoteVideoStats:远端视频统计信息回调。

    public void onRtcRemoteVideoStats(AliRTCRemoteVideoStats aliRtcStats);
    参数 类型 描述
    aliRtcStats AliRTCRemoteVideoStats 订阅端视频流数据。
  • onPublishChangedNotify:推流结果回调。

    public void onPublishChangedNotify(int result, boolean isPublished);
    参数 类型 描述
    result int 返回0表示成功,返回其他表示失败。
    isPublished boolean true表示推流成功,false表示停止推流。
  • onSubscribeChangedNotify:订阅结果回调。

    public void onSubscribeChangedNotify(String uid, AliRtcAudioTrack audioTrack, AliRtcVideoTrack videoTrack);
    参数 类型 描述
    uid String 用户ID。
    audioTrack AliRtcAudioTrack 音频流。
    videoTrack AliRtcVideoTrack 视频流。
  • onMediaExtensionMsgReceived:接收自定义数据回调,当房间中有用户发送自定义数据时,可以通过这个回调接收数据。
    public void onMediaExtensionMsgReceived(String uid byte[]message) {}
    参数 类型 描述
    uid String 用户uid。
    message byte[] 接收到的自定义数据。
  • onRemoteUserOnLineNotify:远端用户上线回调。
    void onRemoteUserOnLineNotify(String uid);
    参数 类型 描述
    uid String 远端用户ID。
  • onRemoteUserOffLineNotify:远端用户下线回调。
    void onRemoteUserOffLineNotify(String uid);
    参数 类型 描述
    uid String 远端用户ID。
  • onRemoteTrackAvailableNotify:远端用户音视频流发生变化时回调。
    void onRemoteTrackAvailableNotify(String uid, AliRtcAudioTrack audioTrack, AliRtcVideoTrack videoTrack);
    参数 类型 描述
    uid String 远端用户ID。
    audioTrack AliRtcAudioTrack 远端用户发生变化后的音频流。
    videoTrack AliRtcVideoTrack 远端用户发生变化后的视频流。
  • onAliRtcStats:实时数据回调(2s触发一次)。

    void onAliRtcStats(AliRtcStats stats);
    参数 类型 描述
    stats AliRtcStats 用户实时数据。
  • onUpdateRoleNotify:用户角色发生改变时回调。

    void onUpdateRoleNotify(AliRTCSDK_Client_Role old_role , AliRTCSDK_Client_Role new_role);
    参数 类型 描述
    old_role AliRTCSDK_Client_Role 变化前角色。
    new_role AliRTCSDK_Client_Role 变化后角色。
  • onAudioEffectFinished:音效播放结束回调。
    public void onAudioEffectFinished(int soundId) {}
    参数 类型 描述
    soundId int 用户给该音效文件分配的ID。
  • onBye:被服务器踢出或者频道关闭时回调。
    void onBye(int code);
    参数 类型 描述
    code int 消息类型。
    • 1:被服务器踢出。
    • 2:频道关闭。
    • 3:同一个用户ID在其他端登录,被服务器踢出。
  • onParticipantSubscribeNotify:远端用户订阅的回调(已经过期不建议使用)。
    public void onParticipantSubscribeNotify(AliSubscriberInfo[] subcribeinfoList, int feedCount){}
    参数 类型 描述
    subcribeinfoList AliSubscriberInfo[] 远端参与订阅的用户信息。
    feedCount int 订阅的数量。
  • onFirstFramereceived:收到首帧的回调。
    public void onFirstFramereceived(String userId, AliRtcVideoTrack videoTrack, AliRtcAudioTrack audioTrack, int timeCost) {}
    参数 类型 描述
    userId String 用户UID。
    videoTrack AliRtcVideoTrack 接收成功的视频流类型。
    audioTrack AliRtcVideoTrack 接收成功的音频流类型。
    timeCost int 耗时。单位:ms。
  • onParticipantUnsubscribeNotify:远端用户取消订阅的回调。
    void onParticipantUnsubscribeNotify(AliParticipantInfo[] participantList, int feedCount)
    参数 类型 描述
    participantList AliParticipantInfo 远端取消订阅的用户信息。
    feedCount int 取消订阅的用户数。
  • onUserAudioInterruptedBegin:用户audio被中断(例如用户打电话时音频被抢占)的通知。
    void onUserAudioInterruptedBegin(String uid);
    参数 类型 描述
    uid String 用户ID,从AppServer分配的唯一标示符。
  • onUserAudioInterruptedEnded:用户audio中断结束的通知。
    void onUserAudioInterruptedEnded(String uid);
    参数 类型 描述
    uid String 用户ID,从AppServer分配的唯一标示符。
  • onUserWillResignActive:远端用户应用切换到后台。
    void onUserWillResignActive(String uid);
    参数 类型 描述
    uid String 用户ID,从AppServer分配的唯一标示符。
  • onUserWillBecomeActive:远端用户应用返回前台。
    void onUserWillBecomeActive(String uid);
    参数 类型 描述
    uid String 用户ID,从AppServer分配的唯一标示符。
  • onAudioFocusChange:音频焦点变化的结果通知(SDK内部会请求音频焦点,如外部再次使用音频焦点需要在此回调中再次请求)。
    public void onAudioFocusChange(int focusChange){}
    参数 类型 描述
    focusChange int 音频状态。取值:
    • AudioManager.AUDIOFOCUS_GAIN:长时间音频焦点获取。
    • AudioManager.AUDIOFOCUS_GAIN_TRANSIENT:临时音频焦点获取。
    • AudioManager.AUDIOFOCUS_LOSS:长时间音频焦点丢失。
    • AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:临时音频焦点丢失。
  • AliRtcAudioVolumeObserver:注册音量回调。
    void onAudioVolume(List<AliRtcEngine.AliRtcAudioVolume> list, int volume);
    参数 类型 描述
    list List<AliRtcEngine.AliRtcAudioVolume> uid为0表示本地音量,uid有值表示某个远端用户的音量。
    volume int 当前远端混音音量。
  • onCaptureRawData:音频原始数据。
    void onCaptureRawData(long dataPtr, int numSamples, int bytesPerSample, int numChannels, int sampleRate, int samplesPerSec);
    参数 类型 描述
    dataPtr long 音频数据。
    numOfSamples int 采样点数。
    bytesPerSample int 每个样本的字节数。对于PCM来说,一般使用16Bit,即两个字节。
    numOfChannels int 声道数。取值:
    • 1:单声道。
    • 2:双声道。
    sampleRate int 采样率。
    samplesPerSec int 每一个声道每秒的采样点数。
  • onCaptureData:本地推流音频数据。
    public void onCaptureData(long dataPtr, int numSamples, int bytesPerSample, int numChannels, int sampleRate, int samplesPerSec);
    参数 类型 描述
    dataPtr long 音频数据。
    numOfSamples int 采样点数。
    bytesPerSample int 每个样本的字节数。对于PCM来说,一般使用16Bit,即两个字节。
    numOfChannels int 声道数。取值:
    • 1:单声道。
    • 2:双声道。
    sampleRate int 采样率。
    samplesPerSec int 每一个声道每秒的采样点数。
  • onRenderData:远端音频数据。
    public void onRenderData(long dataPtr, int numSamples, int bytesPerSample, int numChannels, int sampleRate, int samplesPerSec);
    参数 类型 描述
    dataPtr long 音频数据。
    numOfSamples int 采样点数。
    bytesPerSample int 每个样本的字节数。对于PCM来说,一般使用16Bit,即两个字节。
    numOfChannels int 声道数。取值:
    • 1:单声道。
    • 2:双声道。
    sampleRate int 采样率。
    samplesPerSec int 每一个声道每秒的采样点数。
  • onLocalVideoSample:本地采集的视频数据。
    void onLocalVideoSample(AliRtcEngine.AliVideoSourceType videoSourceType, AliRtcEngine.AliVideoSample videoSample);
    参数 类型 描述
    videoSourceType AliVideoSourceType 视频源。
    videoSample AliVideoSample 视频样本。
  • onRemoteVideoSample:订阅远端的视频数据。
    void onRemoteVideoSample(String userId, AliRtcEngine.AliVideoSourceType videoSourceType, AliRtcEngine.AliVideoSample videoSample);
    参数 类型 描述
    userId String 用户ID。
    videoSourceType AliVideoSourceType 视频源。
    videoSample AliVideoSample 视频样本。
  • onData:人脸识别回调接口。
    long onData(long dataFrameY, long dataFrameU, long dataFrameV, AliRtcEngine.AliRTCImageFormat aliRTCImageFormat, int width, int height, int strideY, int strideU, int strideV, int rotate, long extraData);
    参数 类型 描述
    dataFrameY long Y分量指针。
    dataFrameU long U分量指针。
    dataFrameV long V分量指针,NV12和NV21该指针为null。
    aliRTCImageFormat AliRtcEngine.AliRTCImageFormat 图像数据格式。
    width int 图像宽度。
    height int 图像高度。
    strideY int 图像Y分量stride。
    strideU int 图像U分量stride。
    strideV int 图像V分量stride。
    rotate int 图像旋转角度。
    extraData long 附加字段(非定制化可忽略)。
  • onTextureCreate:本地视频流纹理创建。
    void onTextureCreate(String userId, long context);
    参数 类型 描述
    userId String 订阅的用户ID,通常本地需要美颜,可填写空字符串("")或者本地uid。
    context long opengl的上下文EGLContext指针。
  • onTexture:每一帧视频流处理。
    int onTexture(String userId, int textureId, int width, int height, int stride, int rotate, long extraData);
    参数 类型 描述
    userId String 订阅的用户ID,通常本地需要美颜,可填写空字符串("")或者本地uid。
    textureId int 视频流纹理的输入texture Id。
    width int 视频流纹理的宽度。
    height int 视频流纹理的高度。
    stride int 视频流纹理的stride。
    rotate int 视频流纹理的rotate角度。
    extraData long 检测的人脸数据,取值:
    • 带人脸识别时:为AliDetectObserver的onData返回的人脸结构数据指针。
    • 不带人脸识别时:为0。

    返回说明

    返回处理之后的texture Id,如果不需要美颜,请把处理前的texture Id传回。

  • onTextureDestroy:本地视频流纹理销毁。
    void onTextureDestroy(String userId);
    参数 类型 描述
    userId String 订阅的用户ID,通常本地需要美颜,可填写空字符串("")或者本地uid。
  • onPublishResult:发布音视频流回调。
    void onPublishResult(int result, String publishId);
    参数 类型 描述
    result int 0为发布成功,非0为失败。
    publishId String 流ID。
  • onUnpublishResult:停止发布音视频流回调。
    void onUnpublishResult(int result);
    参数 类型 描述
    result int 0为停止发布成功,非0为失败。
  • onSubscribeResult:订阅回调。
    void onSubscribeResult(String uid, int result, AliRtcVideoTrack vt, AliRtcAudioTrack at);
    参数 类型 描述
    uid String 用户ID。
    result int 0表示订阅成功,非0表示失败。
    vt AliRtcVideoTrack 订阅成功的视频流。
    at AliRtcAudioTrack 订阅成功的音频流。
  • onUnsubscribeResult:取消订阅回调。
    void onUnsubscribeResult(int result, String userId);
    参数 类型 描述
    result int 0表示取消订阅成功,非0表示失败。
    userId String 用户ID。
  • onRemoteUserUnPublish:当远端用户停止发布时回调。
    void onRemoteUserUnPublish(AliRtcEngine rtcEngine, String userId);
    参数 类型 描述
    rtcEngine AliRtcEngine AliRtcEngine实例。
    userId String 远端用户ID。