本文为您介绍了Android SDK回调及监听的接口详情,RTC SDK为您提供了AliRtcEngineEventListener(本地用户行为回调)和AliRtcEngineNotify(远端用户行为回调)。

目录

说明 回调接口都在子线程。

AliRtcEngineEventListener:本地用户行为回调。

API 描述 以上版本支持
onJoinChannelResult 加入频道结果回调 1.1
onLeaveChannelResult 离开频道结果回调 1.1
onNetworkQualityChanged 网络质量变化时回调 1.1
onOccurWarning 警告回调 1.1
onOccurError 错误回调 1.1
onBye 被服务器踢出或者频道关闭时回调 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
onAliRtcLocalVideoStats 本地视频统计信息回调 1.17
onAliRtcRemoteVideoStats 远端视频统计信息回调 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
onAliRtcStats 实时数据回调(2s触发一次) 1.16
onUpdateRoleNotify 用户角色发生改变时回调 1.16
onAudioEffectFinished 音效播放结束回调 1.17.30

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
AliTextureObserver:视频流回调接口。
API 描述 以上版本支持
onTextureCreate 本地视频流纹理创建 1.15
onTexture 每一帧视频流处理 1.15
onTextureDestroy 本地视频流纹理销毁 1.15

废弃回调接口目录

AliRtcEngineEventListener:本地用户行为回调。

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

AliRtcEngineNotify:远端用户行为回调。

API 描述 以上版本支持
onRemoteUserUnPublish 当远端用户停止发布时回调 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
  • 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在其他端登录,被服务器踢出
  • 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 当前播放状态
    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 录制文件存储路径
  • onAliRtcLocalVideoStats:本地视频统计信息回调。

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

    public void onAliRtcRemoteVideoStats(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
  • 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