回调及监听

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

接口说明

目录

视频数据回调及监听

API

描述

支持的最低版本

GetVideoFormatPreference

视频格式采集偏好。

3.0

OnCaptureVideoFrame

本地采集视频数据。

3.0

OnRemoteVideoFrame

远端解码后视频数据。

3.1

OnPreEncodeVideoFrame

本地编码前视频数据。

3.1

回调及监听

API

描述

支持的最低版本

OnJoinChannelResult

加入频道结果。

3.0

OnLeaveChannelResult

离开频道结果。

3.0

OnChannelRemainingTimeNotify

频道剩余时长回调。

3.0

OnRemoteUserOnLineNotify

远端用户加入频道回调。

3.0

OnRemoteUserOffLineNotify

远端用户离开频道回调。

3.0

OnBye

被服务器踢出频道的消息。

3.0

OnConnectionStatusChanged

网络连接状态改变的回调。

3.0

OnNetworkQualityChanged

网络质量变化时发出的消息。

3.0

OnStatisticsLog

埋点log。

3.0

OnOccurWarning

如果engine出现warning,通过这个消息通知app。

3.0

OnOccurError

如果engine出现error,通过这个消息通知app。

3.0

OnStatisticsLevelLog

埋点log。

3.0

OnQualityReport

质量报告,相对OnLocalAudioStats,OnRemoteVideoStats更加简练,适合在UI上展示。

3.0

OnLocalAudioStats

本地音频统计信息。

3.0

OnLocalVideoStats

本地视频统计信息。

3.0

OnRemoteAudioStats

远端音频统计信息。

3.0

OnRemoteVideoStats

远端视频统计信息。

3.0

OnStats

当前会话统计信息回调。

3.0

OnAudioPublishStateChanged

音频推流变更回调。

3.0

OnVideoPublishStateChanged

视频推流变更回调。

3.0

OnScreenSharePublishStateChanged

屏幕分享推流变更回调。

3.0

OnRemoteTrackAvailableNotify

远端用户的音视频流发生变化回调。

3.0

OnUserAudioMuted

远端用户静音/取消静音回调。

3.0

OnUserVideoMuted

远端用户暂停/恢复视频流发送的通知。

3.0

OnFirstRemoteVideoFrameDrawn

远端用户的第一帧视频帧显示时触发这个消息。

3.0

OnFirstLocalVideoFrameDrawn

预览开始显示第一帧视频帧时触发这个消息。

3.0

OnFirstVideoPacketSend

视频首包发送回调。

3.0

OnFirstVideoPacketReceived

视频首包接收回调。

3.0

OnFirstVideoFrameReceived

收到远端用户视频首帧的回调。

3.0

OnFirstAudioPacketSend

音频首包发送回调。

3.0

OnFirstAudioPacketReceived

音频首包接收回调。

3.0

OnRenderRemoteVideoSizeChanged

视频渲染接收到远端视频分辨率有变化时触发此回调。

3.2.1

OnRenderLocalVideoSizeChanged

视频渲染接收到本地视频分辨率有变化时触发此回调。

3.2.1

OnAudioSubscribeStateChanged

音频订阅情况变更回调。

3.0

OnVideoSubscribeStateChanged

相机流订阅情况变更回调。

3.0

OnScreenShareSubscribeStateChanged

屏幕分享流订阅情况变更回调。

3.0

OnSubscribeStreamTypeChanged

不同档次视频订阅情况变更回调。

3.0

OnRecordingDeviceAudioLevel

音频采集设备音量回调。

3.0

OnPlayoutDeviceAudioLevel

音频播放设备音量回调。

3.0

OnAudioDeviceStateChanged

音频设备状态变更。

3.0

OnApiCalledExecuted

API方法已执行回调。

3.0

OnSnapshotComplete

视频截图回调。

3.0

OnAudioMixingStateChanged

伴奏混音回调。

3.4

接口详情

  • GetVideoFormatPreference:视频格式采集偏好。

    RtcEngineVideoPixelFormat GetVideoFormatPreference ()=0

  • OnCaptureVideoFrame:本地采集视频数据。

    bool OnCaptureVideoFrame (RtcEngineVideoFrame &frame)=0

  • OnRemoteVideoFrame:远端解码后视频数据。

    bool OnRemoteVideoFrame (String uid, RtcEngineVideoTrack track, RtcEngineVideoFrame &frame)=0

  • OnPreEncodeVideoFrame:本地编码前视频数据。

    bool OnPreEncodeVideoFrame (RtcEngineVideoTrack track, RtcEngineVideoFrame &frame)=0

  • OnJoinChannelResult:加入频道结果。

    void OnJoinChannelResult (int result, const char *channel, const char *userId, int elapsed)

    当应用调用JoinChannel方法时,该回调表示成功/失败加入频道,并且返回频道加入的相关信息以及加入频道耗时。

    参数

    类型

    描述

    result

    int

    加入频道结果,成功返回0,失败返回错误码。

    channel

    const char *

    频道id。

    userId

    const char *

    用户ID。

    elapsed

    int

    加入频道耗时。

  • OnLeaveChannelResult:离开频道结果。

    void OnLeaveChannelResult (int result, RtcEngineStats stats)

    应用调用LeaveChannel方法时,该回调表示成功/失败离开频道,回调将会返回离会的result和该频道的基本信息,如果LeaveChannel后直接DestroySDK,将不会收到此回调。

    参数

    类型

    描述

    result

    int

    离开频道结果,成功返回0,失败返回错误码。

    stats

    RtcEngineStats

    本次频道内会话的数据统计汇总。

  • OnChannelRemainingTimeNotify:频道剩余时长回调。

    void OnChannelRemainingTimeNotify (int remainingTimeInSec)

    参数

    类型

    描述

    remainingTimeInSec

    int

    频道剩余时长,单位秒。

  • OnRemoteUserOnLineNotify:远端用户加入频道回调。

    void OnRemoteUserOnLineNotify (const char *uid, int elapsed)

    参数

    类型

    描述

    uid

    const char *

    用户ID从Appserver分配的唯一标示符。

    elapsed

    int

    用户加入频道时的耗时。

  • OnRemoteUserOffLineNotify:远端用户离开频道回调。

    void OnRemoteUserOffLineNotify (const char *uid, RtcEngineUserOfflineReason reason)

    参数

    类型

    描述

    uid

    const char *

    用户ID从Appserver分配的唯一标示符。

    reason

    RtcEngineUserOfflineReason

    用户离线的原因,详见RtcEngineUserOfflineReason

  • OnBye:被服务器踢出频道的消息。

    void OnBye (RtcEngineOnByeType code)

    参数

    类型

    描述

    code

    RtcEngineOnByeType

    onBye类型,详见RtcEngineOnByeType

  • OnConnectionStatusChanged:网络连接状态改变的回调。

    void OnConnectionStatusChanged (RtcEngineConnectionStatus status, RtcEngineConnectionStatusChangeReason reason)

    参数

    类型

    描述

    status

    RtcEngineConnectionStatus

    当前网络链接状态。

    reason

    RtcEngineConnectionStatusChangeReason

    网络链接状态改变原因。

  • OnNetworkQualityChanged:网络质量变化时发出的消息。

    void OnNetworkQualityChanged (const char *uid, RtcEngineNetworkQuality upQuality, RtcEngineNetworkQuality downQuality)

    参数

    类型

    描述

    uid

    const char *

    网络质量发生变化的用户uid。

    upQuality

    RtcEngineNetworkQuality

    上行网络质量,详见RtcEngineNetworkQuality

    downQuality

    RtcEngineNetworkQuality

    下行网络质量,详见RtcEngineNetworkQuality

    重要

    当网络质量发生变化时触发,uid为空时代表用户自己的网络质量发生变化。

  • OnStatisticsLog:埋点log。

    void OnStatisticsLog (String const &log)

    参数

    类型

    描述

    log

    String const &

    埋点统计信息。

    重要

    用处不大,将来版本移除。

  • OnOccurWarning:如果engine出现warning,通过这个消息通知app。

    void OnOccurWarning (int warn, const char *msg)

    参数

    类型

    描述

    warn

    int

    警告类型。

    msg

    const char *

    警告信息。

  • OnOccurError:如果engine出现error,通过这个消息通知app。

    void OnOccurError (int error, const char *msg)

    参数

    类型

    描述

    error

    int

    错误类型,参考RtcEngineErrorCode

    msg

    const char *

    错误描述。

  • OnStatisticsLevelLog:埋点log。

    void OnStatisticsLevelLog (int level, const String &log)

    参数

    类型

    描述

    level

    int

    日志等级。

    log

    const String &

    埋点统计信息。

    重要

    用处不大,将来版本移除。

  • OnQualityReport:质量报告,相对OnLocalAudioStats,OnRemoteVideoStats更加简练,适合在UI上展示。

    void OnQualityReport (const QualityReport &quality)

    参数

    类型

    描述

    quality

    QualityReport &

    采集到的各项指标数据。

  • OnLocalAudioStats:本地音频统计信息。

    void OnLocalAudioStats (const LocalAudioStats &localAudioStats)

    参数

    类型

    描述

    localAudioStats

    LocalAudioStats &

    本地音频统计信息。

    重要

    SDK周期触发一次此统计信息回调。

  • OnLocalVideoStats:本地视频统计信息。

    void OnLocalVideoStats (const LocalVideoStats &localVideoStats)

    参数

    类型

    描述

    localVideoStats

    LocalVideoStats &

    本地视频统计信息。

    重要

    SDK周期触发一次此统计信息回调。

  • OnRemoteAudioStats:远端音频统计信息。

    void OnRemoteAudioStats (const RemoteAudioStats &remoteAudioStats)

    参数

    类型

    描述

    remoteAudioStats

    RemoteAudioStats &

    远端音频统计信息。

    重要

    SDK周期触发一次此统计信息回调。

  • OnRemoteVideoStats:远端视频统计信息。

    void OnRemoteVideoStats (const RemoteVideoStats &remoteVideoStats)

    参数

    类型

    描述

    remoteVideoStats

    RemoteVideoStats &

    远端视频统计信息。

    重要

    SDK周期触发一次此统计信息回调。

  • OnStats:当前会话统计信息回调。

    void OnStats (const RtcEngineStats &stats)

    参数

    类型

    描述

    stats

    RtcEngineStats &

    会话统计信息。

    重要

    SDK周期触发一次此统计信息回调。

  • OnAudioPublishStateChanged:音频推流变更回调。

    void OnAudioPublishStateChanged (RtcEnginePublishState oldState, RtcEnginePublishState newState, int elapseSinceLastState, const char *channel)

    参数

    类型

    描述

    oldState

    RtcEnginePublishState

    之前的推流状态。

    newState

    RtcEnginePublishState

    当前的推流状态。

    elapseSinceLastState

    int

    状态变更时间间隔。

    channel

    const char *

    当前频道id。

  • OnVideoPublishStateChanged:视频推流变更回调。

    void OnVideoPublishStateChanged (RtcEnginePublishState oldState, RtcEnginePublishState newState, int elapseSinceLastState, const char *channel)

    参数

    类型

    描述

    oldState

    RtcEnginePublishState

    之前的推流状态。

    newState

    RtcEnginePublishState

    当前的推流状态。

    elapseSinceLastState

    int

    状态变更时间间隔。

    channel

    const char *

    当前频道id。

  • OnScreenSharePublishStateChanged:屏幕分享推流变更回调。

    void OnScreenSharePublishStateChanged (RtcEnginePublishState oldState, RtcEnginePublishState newState, int elapseSinceLastState, const char *channel)

    参数

    类型

    描述

    oldState

    RtcEnginePublishState

    之前的推流状态。

    newState

    RtcEnginePublishState

    当前的推流状态。

    elapseSinceLastState

    int

    状态变更时间间隔。

    channel

    const char *

    当前频道id。

  • OnRemoteTrackAvailableNotify:远端用户的音视频流发生变化回调。

    void OnRemoteTrackAvailableNotify (const char *uid, RtcEngineAudioTrack audioTrack, RtcEngineVideoTrack videoTrack)

    该回调在以下场景会被触发:

    参数

    类型

    描述

    uid

    const char *

    userId,从Appserver分配的唯一标示符。

    audioTrack

    RtcEngineAudioTrack

    音频流类型,详见RtcEngineAudioTrack

    videoTrack

    RtcEngineVideoTrack

    视频流类型,详见RtcEngineVideoTrack

  • OnUserAudioMuted:远端用户静音/取消静音回调。

    void OnUserAudioMuted (const char *uid, bool isMute)

    参数

    类型

    描述

    uid

    const char *

    远端用户ID。

    isMute

    bool

    该用户是否静音。

    true:静音。

    false:取消静音。

  • OnUserVideoMuted:远端用户暂停/恢复视频流发送的通知。

    void OnUserVideoMuted (const char *uid, bool isMute, RtcEngineVideoTrack videoTrack)

    参数

    类型

    描述

    uid

    const char *

    远端用户ID。

    isMute

    bool

    true:该用户暂停视频流的发送。

    false:该用户恢复视频流的发送。

    videoTrack

    RtcEngineVideoTrack

    屏幕流或者相机流,参考RtcEngineVideoTrack。

  • OnFirstRemoteVideoFrameDrawn:远端用户的第一帧视频帧显示时触发这个消息。

    void OnFirstRemoteVideoFrameDrawn (const char *uid, RtcEngineVideoTrack videoTrack, int width, int height, int elapsed)

    参数

    类型

    描述

    uid

    const char *

    userid。

    videoTrack

    RtcEngineVideoTrack

    屏幕流或者相机流,参考RtcEngineVideoTrack

    width

    int

    视频宽度。

    height

    int

    视频高度。

    elapsed

    int

    本地用户加入频道直至该回调触发的延迟总耗时(毫秒)。

    重要

    该接口用于远端用户的第一帧视频帧显示时的回调。

  • OnFirstLocalVideoFrameDrawn:预览开始显示第一帧视频帧时触发这个消息。

    void OnFirstLocalVideoFrameDrawn (int width, int height, int elapsed)

    参数

    类型

    描述

    width

    int

    本地预览视频宽度。

    height

    int

    本地预览视频高度。

    elapsed

    int

    从本地用户加入频道直至该回调触发的延迟总耗时(毫秒)。

    重要

    该接口用于预览开始显示第一帧视频帧时的回调。

  • OnFirstVideoPacketSend:视频首包发送回调。

    void OnFirstVideoPacketSend (RtcEngineVideoTrack videoTrack, int timeCost)

    参数

    类型

    描述

    videoTrack

    RtcEngineVideoTrack

    发送视频track。

    timeCost

    int

    耗时(毫秒)。

    重要

    该接口用于视频首包发送的回调。

  • OnFirstVideoPacketReceived:视频首包接收回调。

    void OnFirstVideoPacketReceived (const char *uid, RtcEngineVideoTrack videoTrack, int timeCost)

    参数

    类型

    描述

    uid

    const char *

    UserID,从Appserver分配的唯一标示符。

    videoTrack

    RtcEngineVideoTrack

    接收视频track。

    timeCost

    int

    耗时(毫秒)。

    重要

    该接口用于视频首包接收的回调。

  • OnFirstVideoFrameReceived:收到远端用户视频首帧的回调。

    void OnFirstVideoFrameReceived (const char *uid, RtcEngineVideoTrack videoTrack, int timeCost)

    参数

    类型

    描述

    uid

    const char *

    UserID,从Appserver分配的唯一标示符。

    videoTrack

    RtcEngineVideoTrack

    接收视频track。

    timeCost

    int

    耗时(毫秒)。

    重要

    该接口用于收到远端用户视频首帧的回调。

  • OnFirstAudioPacketSend:音频首包发送回调。

    void OnFirstAudioPacketSend (int timeCost)

    在首个音频数据包发送出去时触发此回调。

    参数

    类型

    描述

    timeCost

    int

    发送耗时,从入会开始到音频首包发送出去的耗时。

  • OnFirstAudioPacketReceived:音频首包接收回调。

    void OnFirstAudioPacketReceived (const char *uid, int timeCost)

    在接收到远端首个音频数据包时触发此回调。

    参数

    类型

    描述

    uid

    const char *

    远端用户ID,从Appserver分配的唯一标识符。

    timeCost

    int

    接收耗时,从入会开始到音频首包接收到的耗时。

  • OnRenderRemoteVideoSizeChanged:视频渲染接收到远端视频分辨率有变化时触发此回调。

    void OnRenderRemoteVideoSizeChanged (const char *uid, RtcEngineVideoTrack videoTrack, int newWidth, int newHeight, int oldWidth, int oldHeight)

    参数

    类型

    描述

    uid

    const char *

    userId,从Appserver分配的唯一标示符。

    videoTrack

    RtcEngineVideoTrack

    接收视频track。

    newWidth

    int

    变化后新的视频宽度

    newHeight

    int

    变化后新的视频高度

    oldWidth

    int

    变化前旧的视频宽度

    oldHeight

    int

    变化前旧的视频高度

    重要

    因为simulcast的存在,以及动态调整分辨率,横竖屏变化,视频大小和远端设置的最大推流分辨率不一定相同。

  • OnRenderLocalVideoSizeChanged:视频渲染接收到本地视频分辨率有变化时触发此回调。

    void OnRenderLocalVideoSizeChanged (RtcEngineVideoTrack videoTrack, int newWidth, int newHeight, int oldWidth, int oldHeight)

    参数

    类型

    描述

    videoTrack

    RtcEngineVideoTrack

    本地视频track。

    newWidth

    int

    变化后新的视频宽度

    newHeight

    int

    变化后新的视频高度

    oldWidth

    int

    变化前旧的视频宽度

    oldHeight

    int

    变化前旧的视频高度

    重要

    视频大小可能和摄像头采集到的视频大小不相等,比如在采集之后存在缩放等处理。

  • OnAudioSubscribeStateChanged:音频订阅情况变更回调。

    void OnAudioSubscribeStateChanged (const char *uid, RtcEngineSubscribeState oldState, RtcEngineSubscribeState newState, int elapseSinceLastState, const char *channel)

    参数

    类型

    描述

    uid

    const char *

    userId,从Appserver分配的唯一标示符。

    oldState

    RtcEngineSubscribeState

    之前的订阅状态。

    newState

    RtcEngineSubscribeState

    当前的订阅状态。

    elapseSinceLastState

    int

    两次状态变更时间间隔(毫秒)。

    channel

    const char *

    当前频道id。

  • OnVideoSubscribeStateChanged:相机流订阅情况变更回调。

    void OnVideoSubscribeStateChanged (const char *uid, RtcEngineSubscribeState oldState, RtcEngineSubscribeState newState, int elapseSinceLastState, const char *channel)

    参数

    类型

    描述

    uid

    const char *

    userId,从Appserver分配的唯一标示符。

    oldState

    RtcEngineSubscribeState

    之前的订阅状态。

    newState

    RtcEngineSubscribeState

    当前的订阅状态。

    elapseSinceLastState

    int

    两次状态变更时间间隔(毫秒)。

    channel

    const char *

    当前频道id。

  • OnScreenShareSubscribeStateChanged:屏幕分享流订阅情况变更回调。

    void OnScreenShareSubscribeStateChanged (const char *uid, RtcEngineSubscribeState oldState, RtcEngineSubscribeState newState, int elapseSinceLastState, const char *channel)

    参数

    类型

    描述

    uid

    const char *

    userId,从Appserver分配的唯一标示符。

    oldState

    RtcEngineSubscribeState

    之前的订阅状态。

    newState

    RtcEngineSubscribeState

    当前的订阅状态。

    elapseSinceLastState

    int

    两次状态变更时间间隔(毫秒)。

    channel

    const char *

    当前频道id。

  • OnSubscribeStreamTypeChanged:不同档次视频订阅情况变更回调。

    void OnSubscribeStreamTypeChanged (const char *uid, RtcEngineVideoStreamType oldStreamType, RtcEngineVideoStreamType newStreamType, int elapseSinceLastState, const char *channel)

    参数

    类型

    描述

    uid

    const char *

    userId,从Appserver分配的唯一标示符。

    oldStreamType

    RtcEngineVideoStreamType

    之前的订阅的视频档次。

    newStreamType

    RtcEngineVideoStreamType

    当前的订阅的视频档次。

    elapseSinceLastState

    int

    视频档次变更时间间隔(毫秒)。

    channel

    const char *

    当前频道id。

    重要

    订闭某个视频档次,并不表示一定能够收到该档次的视频。接收到的档次取決于推流情況以及网络情況。

  • OnRecordingDeviceAudioLevel:音频采集设备音量回调。

    void OnRecordingDeviceAudioLevel (int level)

    参数

    类型

    描述

    level

    int

    音频采集设备音量值,取值[0,100]。

  • OnPlayoutDeviceAudioLevel:音频播放设备音量回调。

    void OnPlayoutDeviceAudioLevel (int level)

    参数

    类型

    描述

    level

    int

    音频播放设备音量值,取值[0,100]。

  • OnAudioDeviceStateChanged:音频设备状态变更。

    void OnAudioDeviceStateChanged (const char *deviceId, RtcEngineDeviceType deviceType, RtcEngineDeviceState deviceState)

    参数

    类型

    描述

    deviceId

    const char *

    设备id。

    deviceType

    RtcEngineDeviceType

    设备类型。

    deviceState

    RtcEngineDeviceState

    设备状态。

  • OnApiCalledExecuted:API方法已执行回调。

    void OnApiCalledExecuted (int error, const char *api, const char *result)

    参数

    类型

    描述

    error

    int

    当该方法调用失败时SDK返回的错误码。如果该方法调用成功,SDK将返回0。失败,非0。

    api

    const char *

    SDK执行的API。

    result

    const char *

    SDK调用API的调用结果。

  • OnSnapshotComplete:视频截图回调。

    void OnSnapshotComplete (const char *userId, RtcEngineVideoTrack videoTrack, const char *filePath, int width, int height, bool success)

    参数

    类型

    描述

    userId

    const char *

    用户id,为空或者为""代表本地用户。

    videoTrack

    RtcEngineVideoTrack

    截图视频track,参考RtcEngineVideoTrack

    filePath

    const char *

    截图的本地保存路径。

    width

    int

    截图宽度。

    height

    int

    截图高度。

    success

    bool

    截图是否成功。

    重要

    该接口用于截图回调。

  • OnAudioMixingStateChanged:伴奏混音回调。

    void OnAudioMixingStateChanged (const RtcEngineAudioMixingStatusConfig &status)

    参数

    类型

    描述

    status

    const RtcEngineAudioMixingStatusConfig &

    伴奏混音状态,详细参考RtcEngineAudioMixingStatusConfig

    重要

    该接口用于伴奏混音状态监控。