本文为您介绍了Windows SDK回调及监听的接口详情。

目录

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

AliRtcEventListener(AliRtcEngine回调)

API 描述 以上版本支持
onRemoteUserOnLineNotify 远端用户上线回调 1.1
onRemoteUserOffLineNotify 远端用户下线回调 1.1
onRemoteTrackAvailableNotify 远端用户音视频流发生变化时回调 1.1
onSubscribeChangedNotify 订阅结果回调 1.1
onFirstRemoteVideoFrameDrawn 远端视频流首帧渲染完回调 1.1
onOccurWarning 警告回调 1.1
onOccurError 错误回调 1.1
onBye 被服务器踢出或者频道关闭时回调 1.1
onExternalDeviceStateChange 外接设备状态变更回调 1.11
onFirstPacketReceived 首包数据接收成功回调 1.13
onFirstPacketSent 首帧数据发送成功回调 1.11
onLeaveChannelResult 离开频道结果回调 1.15
onConnectionLost 网络断开回调 1.15
onTryToReconnect 尝试网络重连回调 1.15
onConnectionRecovery 网络重连成功回调 1.15
onNetworkQualityChanged 网络质量变化时回调 1.15
onUpdateRoleNotify 用户角色发生改变时回调 1.16
onRTCStats 实时数据回调(2s触发一次) 1.17
onPerformanceLow 当前设备性能不足回调 1.16.2
onPerformanceRecovery 当前设备性能恢复回调 1.17.19
onLastmileDetectResultWithQuality 网络质量探测回调 1.16.2
onAudioSampleCallback 订阅的音频数据回调 1.16.2
onCaptureVideoSample 订阅的本地采集视频数据回调 1.16.2
onRemoteVideoSample 订阅的远端视频数据回调 1.16.2
onJoinChannelResult 加入频道结果回调 1.17
onPublishChangedNotify 推流结果回调 1.17
onRTCLocalVideoStats 本地视频统计信息回调 1.17
onRTCRemoteVideoStats 远端视频统计信息回调 1.17
onMediaRecordEvent 录制事件回调 1.17.9
onAudioVolumeCallback 用户音量大小回调 1.17.9
onMediaExtensionMsgReceived 接收自定义数据回调 1.17.1

接口详情

Windows端的回调及监听接口详情如下所示。

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

    void onRemoteUserOnLineNotify(const AliRtc::String& uid)        
    参数 类型 描述
    uid const AliRtc::String& 远端用户ID
  • onRemoteUserOffLineNotify:远端用户下线回调。

    void onRemoteUserOffLineNotify(const AliRtc::String& uid)      
    参数 类型 描述
    uid const AliRtc::String& 远端用户ID
  • onRemoteTrackAvailableNotify:远端用户音视频流发生变化时回调。

    说明 远端用户停止发布,也会触发此回调。
    void onRemoteTrackAvailableNotify(const AliRtc::String& uid, AliRtcAudioTrack audioTrack, AliRtcVideoTrack videoTrack)
    参数 类型 描述
    uid const AliRtc::String& 远端用户ID
    audioTrack AliRtcAudioTrack 远端用户发生变化后的音频流
    videoTrack AliRtcVideoTrack 远端用户发生变化后的视频流
  • onSubscribeChangedNotify:订阅结果回调。

    void onSubscribeChangedNotify(const AliRtc::String& uid, AliRtcAudioTrack audioTrack, AliRtcVideoTrack videoTrack)
    参数 类型 描述
    uid const AliRtc::String& 远端用户ID
    audioTrack AliRtcAudioTrack 订阅成功的音频流
    videoTrack AliRtcVideoTrack 订阅成功的视频流
  • onFirstRemoteVideoFrameDrawn:远端视频流首帧渲染完回调。

    void onFirstRemoteVideoFrameDrawn(const AliRtc::String& uid, AliRtcVideoTrack videoTrack)
    参数 类型 描述
    uid const AliRtc::String& 远端用户ID
    videoTrack AliRtcVideoTrack 渲染的流类型
  • 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在其他端登录,被服务器踢出
  • onExternalDeviceStateChange:外接设备状态变更。
    virtual void onExternalDeviceStateChange(const AliRtc::String &deviceName, AliRtcExternalDeviceType type, AliRtcExternalDeviceState state) {};
    参数 类型 描述
    deviceName AliRtc::String 外接设备名称
    state AliRtcExternalDeviceState 外接设备状态
  • onFirstPacketReceived:首包发送回调函数。
    virtual void onFirstPacketReceived(const AliRtc::String &uid, AliRtcAudioTrack audioTrack, AliRtcVideoTrack videoTrack) {};
    参数 类型 描述
    audioTrack AliRtcAudioTrack 音频ID
    videoTrack AliRtcVideoTrack 视频ID
  • onFirstPacketSent:首帧数据发送成功回调。

    void onFirstPacketSent(AliRtcAudioTrack audioTrack, AliRtcVideoTrack videoTrack)
    参数 类型 描述
    audioTrack AliRtcAudioTrack 音频首包发送
    videoTrack AliRtcVideoTrack 视频首包发送
  • onLeaveChannelResult:离开频道结果回调。

    void onLeaveChannelResult(int result)
    参数 类型 描述
    result int 成功返回0,失败返回错误码信息
  • onConnectionLost:网络断开回调。

    void onConnectionLost()
  • onTryToReconnect:尝试网络重连回调。

    void onTryToReconnect()
  • onConnectionRecovery:网络重连成功回调。

    void onConnectionRecovery()
  • onNetworkQualityChanged:网络质量变化时回调。

    void onNetworkQualityChanged(const AliRtc::String &uid,AliRtcNetworkQuality upQuality,AliRtcNetworkQuality downQuality)
    参数 类型 描述
    uid AliRtc::String 网络质量发生变化的用户ID
    upQuality AliRtcNetworkQuality 上行网络质量
    downQuality AliRtcNetworkQuality 下行网络质量
  • onUpdateRoleNotify:用户角色发生改变时回调。

    void onUpdateRoleNotify(const AliRtcClientRole old_role, const AliRtcClientRole new_role) {};
    参数 类型 描述
    old_role AliRtcClientRole 切换前的角色
    new_role AliRtcClientRole 切换后的角色
  • onRTCStats:实时数据回调(2s触发一次),SDK每两秒触发一次此统计信息回调。

    说明 1.17及以上版本方法名由onAliRTCStats变更为onRTCStats。
    virtual void onRTCStats(const AliRtcStats& stats)
    参数 类型 描述
    stats const AliRtcStats& 会话统计信息
  • onPerformanceLow:当前设备性能不足回调。

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

    virtual void onPerformanceRecovery()
  • onLastmileDetectResultWithQuality:网络质量探测回调。

    virtual void onLastmileDetectResultWithQuality(AliRtcNetworkQuality networkQuality)
    参数 类型 描述
    networkQuality AliRtcNetworkQuality 网络质量
  • onAudioSampleCallback:订阅的音频数据回调。

    virtual void onAudioSampleCallback(AliRtcAudioSource type, AliRtcAudioDataSample *audioSample)
    参数 类型 描述
    type AliRtcAudioSource 音频源类型
    audioSample AliRtcAudioDataSample * 音频数据
  • onAudioVolumeCallback :用户音量大小回调,AliRtcUserVolumeInfo中user_id为0表示本地推流音量,1表示远端混音音量,其他表示用户的音量。

    virtual void onAudioVolumeCallback(const AliRtcUserVolumeInfo* userVolumeInfo, int userVolumeNumber, int totalVolume) {};
    参数 类型 描述
    userVolumeInfo const AliRtcUserVolumeInfo* 用户音量信息数组
    userVolumeNumber int 用户音量信息数量
    totalVolume int 混音后的总音量。取值范围[0-255]。在本地用户的回调中,totalVolume为本地用户混音后的音量。在远端用户的回调中,totalVolume为所有说话者混音后的总音量。
  • onMediaExtensionMsgReceived:接收自定义数据回调,当房间中有用户发送自定义数据时,可以通过这个回调接收数据。
    virtual void onMediaExtensionMsgReceived(const AliRtc::String &uid, unsigned char* message, int size) {};
    参数 类型 描述
    uid const AliRtc::String & 用户uid
    message unsigned char* 接收到的自定义数据
    size int 接收到的数据长度
  • onCaptureVideoSample :订阅的本地采集视频数据回调。

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

    virtual void onRemoteVideoSample(const AliRtc::String &uid, AliRtcVideoSource videoSource, AliRtcVideoDataSample *videoSample)
    参数 类型 描述
    uid const AliRtc::String & 用户ID
    videoSource AliRtcVideoSource 视频源类型
    videoSample AliRtcVideoDataSample * 视频数据
  • onJoinChannelResult:加入频道结果回调。

     virtual void onJoinChannelResult(int result) {};
    参数 类型 描述
    result int 加入频道结果,成功返回0,失败返回错误码
  • onPublishChangedNotify:推流结果回调。

    virtual void onPublishChangedNotify(int result, bool isPublished) {};
    参数 类型 说明
    result int 返回结果,成功返回0,失败返回错误码
    isPublished int 是否处于推流状态,取值:true|false
  • onRTCLocalVideoStats:本地视频统计信息回调。

    virtual void onRTCLocalVideoStats(const AliRtcLocalVideoStats& local_video_stats) {};
    参数 类型 描述
    local_video_stats AliRtcLocalVideoStats 本地视频统计信息
  • onRTCRemoteVideoStats:远端视频统计信息回调。

    vvirtual void onRTCRemoteVideoStats(const AliRtcRemoteVideoStats& remote_video_stats) {};
    参数 类型 描述
    remote_video_stats AliRtcRemoteVideoStats 远端视频统计信息
  • onMediaRecordEvent:录制事件回调。

    virtual void onMediaRecordEvent(int event, const AliRtc::String &filePath) {};
    参数 类型 说明
    event int 录制事件。取值:
    • 0:录制开始
    • 1:录制结束
    • 2:打开文件失败
    • 3:写文件失败
    filePath const AliRtc::String & 录制文件路径