通过阅读本文,您可以了解Windows SDK的DingRtcEngineEventListener回调及监听接口详情。
接口说明
目录
视频数据回调及监听
API |
描述 |
支持的最低版本 |
视频格式采集偏好。 |
3.0 |
|
本地采集视频数据。 |
3.0 |
|
远端解码后视频数据。 |
3.1 |
|
本地编码前视频数据。 |
3.1 |
回调及监听
API |
描述 |
支持的最低版本 |
加入频道结果。 |
3.0 |
|
离开频道结果。 |
3.0 |
|
频道剩余时长回调。 |
3.0 |
|
远端用户加入频道回调。 |
3.0 |
|
远端用户离开频道回调。 |
3.0 |
|
被服务器踢出频道的消息。 |
3.0 |
|
网络连接状态改变的回调。 |
3.0 |
|
网络质量变化时发出的消息。 |
3.0 |
|
埋点log。 |
3.0 |
|
如果engine出现warning,通过这个消息通知app。 |
3.0 |
|
如果engine出现error,通过这个消息通知app。 |
3.0 |
|
埋点log。 |
3.0 |
|
质量报告,相对OnLocalAudioStats,OnRemoteVideoStats更加简练,适合在UI上展示。 |
3.0 |
|
本地音频统计信息。 |
3.0 |
|
本地视频统计信息。 |
3.0 |
|
远端音频统计信息。 |
3.0 |
|
远端视频统计信息。 |
3.0 |
|
当前会话统计信息回调。 |
3.0 |
|
音频推流变更回调。 |
3.0 |
|
视频推流变更回调。 |
3.0 |
|
屏幕分享推流变更回调。 |
3.0 |
|
远端用户的音视频流发生变化回调。 |
3.0 |
|
远端用户静音/取消静音回调。 |
3.0 |
|
远端用户暂停/恢复视频流发送的通知。 |
3.0 |
|
远端用户关闭相机流采集发送通知。 |
3.5 |
|
远端用户应用退到后台 |
3.5 |
|
远端用户应用返回前台 |
3.5 |
|
远端用户的第一帧视频帧显示时触发这个消息。 |
3.0 |
|
预览开始显示第一帧视频帧时触发这个消息。 |
3.0 |
|
视频首包发送回调。 |
3.0 |
|
视频首包接收回调。 |
3.0 |
|
收到远端用户视频首帧的回调。 |
3.0 |
|
音频首包发送回调。 |
3.0 |
|
音频首包接收回调。 |
3.0 |
|
视频渲染接收到远端视频分辨率有变化时触发此回调。 |
3.2.1 |
|
视频渲染接收到本地视频分辨率有变化时触发此回调。 |
3.2.1 |
|
音频订阅情况变更回调。 |
3.0 |
|
相机流订阅情况变更回调。 |
3.0 |
|
屏幕分享流订阅情况变更回调。 |
3.0 |
|
不同档次视频订阅情况变更回调。 |
3.0 |
|
音频采集设备音量回调。 |
3.0 |
|
音频播放设备音量回调。 |
3.0 |
|
本地音频设备状态变更。 |
3.0 |
|
本地摄像头状态变更。 |
3.4.1 |
|
API方法已执行回调。 |
3.0 |
|
视频截图回调。 |
3.0 |
|
收到媒体扩展信息回调 |
||
伴奏混音回调。 |
3.4 |
|
返回当前频道内所有的分组列表。 |
3.4 |
|
当调用JoinGroup加入某个group,触发此回调。注意:如果JoinGroup返回非0值,那么不会产生回调。 |
3.4 |
|
当调用LeaveGroup离开某个group,触发此回调。注意:如果LeaveGroup返回非0值,那么不会产生回调。 |
3.4 |
|
当调用DismissGroup解散某个group,触发此回调。注意:如果DismissGroup返回非0值,那么不会产生回调。 |
3.4 |
|
当调用MixAudioToGroup向分组或者大厅混流,触发此回调。注意:如果MixAudioToGroup返回非0值,那么不会产生回调。 |
3.4 |
|
分组中成员变化,触发此回调。 |
3.4 |
|
当前留在大厅中的所有的成员列表。 |
3.4 |
|
分组列表变化,触发此回调。 |
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
本次频道内会话的数据统计汇总。
-
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。
-
OnBye:被服务器踢出频道的消息。
void OnBye (RtcEngineOnByeType code)
参数
类型
描述
code
RtcEngineOnByeType
onBye类型,详见RtcEngineOnByeType。
-
OnConnectionStatusChanged:网络连接状态改变的回调。
void OnConnectionStatusChanged (RtcEngineConnectionStatus status, RtcEngineConnectionStatusChangeReason reason)
参数
类型
描述
status
当前网络链接状态。
reason
网络链接状态改变原因。
-
OnNetworkQualityChanged:网络质量变化时发出的消息。
void OnNetworkQualityChanged (const char *uid, RtcEngineNetworkQuality upQuality, RtcEngineNetworkQuality downQuality)
参数
类型
描述
uid
const char *
网络质量发生变化的用户uid。
upQuality
上行网络质量,详见RtcEngineNetworkQuality。
downQuality
下行网络质量,详见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
之前的推流状态。
newState
当前的推流状态。
elapseSinceLastState
int
状态变更时间间隔。
channel
const char *
当前频道id。
-
OnVideoPublishStateChanged:视频推流变更回调。
void OnVideoPublishStateChanged (RtcEnginePublishState oldState, RtcEnginePublishState newState, int elapseSinceLastState, const char *channel)
参数
类型
描述
oldState
之前的推流状态。
newState
当前的推流状态。
elapseSinceLastState
int
状态变更时间间隔。
channel
const char *
当前频道id。
-
OnRemoteTrackAvailableNotify:远端用户的音视频流发生变化回调。
void OnRemoteTrackAvailableNotify (const char *uid, RtcEngineAudioTrack audioTrack, RtcEngineVideoTrack videoTrack)
该回调在以下场景会被触发:
参数
类型
描述
uid
const char *
userId,从Appserver分配的唯一标示符。
audioTrack
音频流类型,详见RtcEngineAudioTrack。
videoTrack
视频流类型,详见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。
-
OnUserVideoEnabled:远端用户关闭相机流采集发送通知。
void OnUserVideoEnabled (const char *uid, bool enabled)
参数
类型
描述
uid
const char *
远端用户ID。
enabled
bool
true:打开相机流采集。
false:关闭相机流采集。
-
OnUserWillResignActive:远端用户应用退到后台
void OnUserWillResignActive (const char *uid)
参数
类型
描述
uid
const char *
远端用户ID
-
OnUserWillBecomeActive:远端用户应用返回前台
void OnUserWillBecomeActive (const char *uid)
参数
类型
描述
uid
const char *
远端用户ID
-
OnFirstRemoteVideoFrameDrawn:远端用户的第一帧视频帧显示时触发这个消息。
void OnFirstRemoteVideoFrameDrawn (const char *uid, RtcEngineVideoTrack videoTrack, int width, int height, int elapsed)
参数
类型
描述
uid
const char *
userid。
videoTrack
屏幕流或者相机流,参考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
发送视频track。
timeCost
int
耗时(毫秒)。
重要该接口用于视频首包发送的回调。
-
OnFirstVideoPacketReceived:视频首包接收回调。
void OnFirstVideoPacketReceived (const char *uid, RtcEngineVideoTrack videoTrack, int timeCost)
参数
类型
描述
uid
const char *
UserID,从Appserver分配的唯一标示符。
videoTrack
接收视频track。
timeCost
int
耗时(毫秒)。
重要该接口用于视频首包接收的回调。
-
OnFirstVideoFrameReceived:收到远端用户视频首帧的回调。
void OnFirstVideoFrameReceived (const char *uid, RtcEngineVideoTrack videoTrack, int timeCost)
参数
类型
描述
uid
const char *
UserID,从Appserver分配的唯一标示符。
videoTrack
接收视频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
接收视频track。
newWidth
int
变化后新的视频宽度
newHeight
int
变化后新的视频高度
oldWidth
int
变化前旧的视频宽度
oldHeight
int
变化前旧的视频高度
重要因为simulcast的存在,以及动态调整分辨率,横竖屏变化,视频大小和远端设置的最大推流分辨率不一定相同。
-
OnRenderLocalVideoSizeChanged:视频渲染接收到本地视频分辨率有变化时触发此回调。
void OnRenderLocalVideoSizeChanged (RtcEngineVideoTrack videoTrack, int newWidth, int newHeight, int oldWidth, int oldHeight)
参数
类型
描述
videoTrack
本地视频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
之前的订阅状态。
newState
当前的订阅状态。
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
之前的订阅状态。
newState
当前的订阅状态。
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
之前的订阅的视频档次。
newStreamType
当前的订阅的视频档次。
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
设备类型。
deviceState
设备状态。
-
OnVideoDeviceStateChanged:本地摄像头状态变更。
void OnVideoDeviceStateChanged (const char *deviceId, RtcEngineDeviceType deviceType, RtcEngineDeviceState deviceState)
参数
类型
描述
deviceId
const char *
摄像头id。
deviceType
设备类型。
deviceState
设备状态。
-
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
截图视频track,参考RtcEngineVideoTrack。
filePath
const char *
截图的本地保存路径。
width
int
截图宽度。
height
int
截图高度。
success
bool
截图是否成功。
重要该接口用于截图回调。
-
OnMediaExtensionMsgReceived:收到媒体扩展信息回调
void OnMediaExtensionMsgReceived (const char *uid, unsigned char *message, unsigned int size)
参数
类型
描述
uid
const char *
发送用户userId
message
unsigned char *
扩展信息内容
size
unsigned int
扩展信息长度
重要当一端通过SendMediaExtensionMsg发送信息后,其他端通过该回调接收数据
-
OnAudioMixingStateChanged:伴奏混音回调。
void OnAudioMixingStateChanged (const RtcEngineAudioMixingStatusConfig &status)
参数
类型
描述
status
const RtcEngineAudioMixingStatusConfig &
伴奏混音状态,详细参考RtcEngineAudioMixingStatusConfig。
重要该接口用于伴奏混音状态监控。
-
OnListAllAudioGroups:返回当前频道内所有的分组列表。
void OnListAllAudioGroups (const StringArray &groups)
参数
类型
描述
groups
const ding::rtc::StringArray &
分组列表。
重要该回调发生在加入频道的时候。App通过该回调可以获得当前频道内所有的分组。后续分组变化,通过回调OnAudioGroupListUpdate获得。
-
OnAudioGroupJoinResult:当调用JoinGroup加入某个group,触发此回调。注意:如果JoinGroup返回非0值,那么不会产生回调。
void OnAudioGroupJoinResult (int result, const String &errMsg, const String &group, RtcEngineAudioGroupMember *members, int memberCount)
参数
类型
描述
result
int
0表示成功,其他值表示失败。
errMsg
const ding::rtc::String &
如果result不为0,补充说明错误原因。
group
const ding::rtc::String &
加入的group。
members
RtcEngineAudioGroupMember *
该group的成员用户列表。
memberCount
int
成员列表长度。
-
OnAudioGroupLeaveResult:当调用LeaveGroup离开某个group,触发此回调。注意:如果LeaveGroup返回非0值,那么不会产生回调。
void OnAudioGroupLeaveResult (int result, const String &errMsg, const String &group)
参数
类型
描述
result
int
0表示成功,其他值表示失败。
errMsg
const ding::rtc::String &
如果result不为0,补充说明错误原因。
group
const ding::rtc::String &
离开的group。
-
OnAudioGroupDismissResult:当调用DismissGroup解散某个group,触发此回调。注意:如果DismissGroup返回非0值,那么不会产生回调。
void OnAudioGroupDismissResult (int result, const String &errMsg, const String &group)
参数
类型
描述
result
int
0表示成功,其他值表示失败。
errMsg
const ding::rtc::String &
如果result不为0,补充说明错误原因。
group
const ding::rtc::String &
解散的group。
-
OnAudioGroupMixResult:当调用MixAudioToGroup向分组或者大厅混流,触发此回调。注意:如果MixAudioToGroup返回非0值,那么不会产生回调。
void OnAudioGroupMixResult (const String &group, bool mix, int result, const String &reason)
参数
类型
描述
group
const ding::rtc::String &
目标分组。如果是HallID,则表示目标为大厅的音频,否则是普通分组的ID。非空。
mix
bool
true表示将本地音频流混进指定的channelaudio或者分组音频中;false表示取消。
result
int
0表示成功,其他值表示失败。
reason
const ding::rtc::String &
如果result不为0,用该字符串解释失败的原因。
-
OnAudioGroupMemberUpdate:分组中成员变化,触发此回调。
void OnAudioGroupMemberUpdate (int update_opt, const String &group, RtcEngineAudioGroupMember *members, int memberCount)
参数
类型
描述
update_opt
int
1表示新增成员列表,-1表示离开的成员列表。
group
const ding::rtc::String &
该回调发生的分组。
members
RtcEngineAudioGroupMember *
变动的成员列表。
memberCount
int
"members"的长度。
-
OnAudioGroupHallMembers:当前留在大厅中的所有的成员列表。
void OnAudioGroupHallMembers (RtcEngineAudioGroupMember *hallMembers, int hallMemberCount)
参数
类型
描述
hallMembers
RtcEngineAudioGroupMember *
大厅中的成员列表。
hallMemberCount
int
大厅中的成员数量。
重要留在大厅是指不在任何分组中。如果加入某个分组,意味着离开了大厅;从所有分组中离开,意味着回到了大厅。
-
OnAudioGroupListUpdate:分组列表变化,触发此回调。
void OnAudioGroupListUpdate (int update_opt, const String &group)
参数
类型
描述
update_opt
int
1表示新增的分组,-1表示删除的分组。
group
const ding::rtc::String &
该回调指示的分组。