通过阅读本文,您可以了解Android SDK回调及监听的接口详情。
目录
DingRtcVideoObserver:视频数据回调
API |
描述 |
支持的最低版本 |
订阅的本地采集视频数据回调。 |
3.0 |
|
订阅的远端视频数据回调。 |
3.0 |
|
订阅的本地编码前的视频数据回调。 |
3.0 |
|
视频数据输出格式。 |
3.0 |
DingRtcEngineEventListener:回调及监听
API |
描述 |
支持的最低版本 |
加入频道回调。 |
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.0 |
|
错误通知。 |
3.0 |
|
性能差通知。 |
3.0 |
|
性能恢复通知。 |
3.0 |
|
网络连接断开。 |
3.0 |
|
尝试重新建立与服务端的连接。 |
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 |
|
实时数据回调(2s触发一次)。 |
3.0 |
|
远端用户静音/取消静音回调。 |
3.0 |
|
远端用户暂停/恢复视频流发送的通知。 |
3.0 |
|
文件录制回调事件。 |
3.0 |
|
发布视频流的数据统计。 |
3.0 |
|
订阅视频流的数据统计。 |
3.0 |
|
订阅远端音频流的数据统计。 |
3.0 |
|
订阅本地音频流。 |
3.0 |
|
音频焦点变化回调(仅适用于Android平台)。 |
3.0 |
|
音频路由发生变化回调(仅适用于Android、iOS平台)。 |
3.0 |
|
远端用户音量提示回调。 |
3.0 |
|
采集音量提示回调 |
3.0 |
|
播放音量提示回调 |
3.0 |
|
远端用户视频分辨率变化通知。 |
3.0 |
|
API方法已执行回调。 |
3.0 |
|
截图回调。 |
3.0 |
DingRtcAudioFrameObserver:音频数据回调
API |
描述 |
支持的最低版本 |
采集裸数据回调。 |
3.0 |
|
3A后数据回调。 |
3.0 |
|
推流数据回调。 |
3.0 |
|
播放数据回调。 |
3.0 |
详情
-
onLocalVideoSample: 订阅的本地采集视频数据回调。
public boolean onLocalVideoSample (DingRtcEngine.DingRtcVideoSourceType sourceType, DingRtcEngine.DingRtcVideoSample videoSample)
参数
类型
描述
sourceType
DingRtcVideoSourceType
视频流类型。
videoSample
DingRtcVideoSample
视频裸数据。
返回说明
true:需要写回SDK(默认写回,需要操作DingRtcVideoSample.data时必须要写回)false:不需要写回SDK(需要直接操作DingRtcVideoSample.dataFrameY、DingRtcVideoSample.dataFrameU、DingRtcVideoSample.dataFrameV时使用)
-
onRemoteVideoSample: 订阅的远端视频数据回调。
public boolean onRemoteVideoSample (String callId, DingRtcEngine.DingRtcVideoSourceType sourceType, DingRtcEngine.DingRtcVideoSample videoSample)
参数
类型
描述
callId
String
用户ID。
sourceType
DingRtcVideoSourceType
视频流类型。
videoSample
DingRtcVideoSample
视频裸数据。
返回说明
true:需要写回SDK(默认写回,需要操作DingRtcVideoSample.data时必须要写回);false:不需要写回SDK(需要直接操作DingRtcVideoSample.dataFrameY、DingRtcVideoSample.dataFrameU、DingRtcVideoSample.dataFrameV时使用)。
-
onPreEncodeVideoFrame: 订阅的本地编码前的视频数据回调。
public boolean onPreEncodeVideoFrame (DingRtcEngine.DingRtcVideoSourceType sourceType, DingRtcEngine.DingRtcVideoSample videoSample)
参数
类型
描述
callId
用户ID。
sourceType
视频流类型。
videoSample
视频裸数据。
-
onGetVideoFormatPreference: 视频数据输出格式。
public onGetVideoFormatPreference ()
返回说明
期望视频输出格式,参考DingRtcVideoFormat。
-
onJoinChannelResult: 加入频道回调。
public void onJoinChannelResult (int result, String channel, String userId, int elapsed)
当应用调用joinChannel方法时,该回调表示成功/失败加入频道,并且返回频道加入的相关信息以及加入频道耗时。
参数
类型
描述
result
int
0:成功
ERR_JOIN_ERR_JOIN_BAD_PARAMBAD_CHANNEL:参数错误,请检查入会参数authinfo生成是否存在非法字符,或与官网文档是否一致。
ERR_JOIN_BAD_APPID:AppId不存在,请检查入会参数authinfo中appId是否正确。
ERR_JOIN_INVALID_APPID:AppId已失效,请检查入会参数authinfo中appId是否正确。
ERR_JOIN_BAD_CHANNEL:频道不存在,请检查入会参数authinfo中channelId是否正确。
ERR_JOIN_INVALID_CHANNEL:频道已失效,请检查入会参数authinfo中channelId是否正确。
ERR_JOIN_BAD_TOKEN:token不存在,请检查入会参数authinfo生成算法是否与官网文档一致。
ERR_JOIN_TIMEOUT:加入频道超时,请检查当前网络是否为弱网或限速。
ERR_JOIN_ERR_JOIN_BAD_PARAMBAD_CHANNEL:参数错误,请检查入会参数authinfo生成是否存在非法字符,或与官网文档是否一致。
channel
String
加入频道名。
userId
String
用户ID。
elapsed
int
加入频道耗时。
-
onLeaveChannelResult: 离开频道回调。
public void onLeaveChannelResult (int result, DingRtcStats stats)
应用调用leaveChannel方法时,该回调表示成功/失败离开频道,回调将会返回离会的result和该频道的基本信息。
参数
类型
描述
result
int
离开频道结果,成功返回0,失败返回错误码。
stats
本次频道内会话的数据统计信息。
重要调用leaveChannel接口后返回,如果leaveChannel后直接调用destroy将不会收到此回调。
-
onChannelRemainingTimeNotify: 频道剩余时长回调。
public void onChannelRemainingTimeNotify (int remainingTimeInSec)
参数
类型
描述
remainingTimeInSec
int
频道剩余时长,单位秒。
-
onAudioPublishStateChanged: 音频推流变更回调。
public void onAudioPublishStateChanged (DingRtcPublishState oldState, DingRtcPublishState newState, int elapseSinceLastState, String channel)
参数
类型
描述
oldState
之前的推流状态。
newState
当前的推流状态。
elapseSinceLastState
int
状态变更时间间隔(毫秒)。
channel
String
当前频道。
-
onVideoPublishStateChanged: 视频推流变更回调。
public void onVideoPublishStateChanged (DingRtcPublishState oldState, DingRtcPublishState newState, int elapseSinceLastState, String channel)
参数
类型
描述
oldState
之前的推流状态。
newState
当前的推流状态。
elapseSinceLastState
int
状态变更时间间隔(毫秒)。
channel
String
当前频道。
-
onDualStreamPublishStateChanged: 次要流推流变更回调。
public void onDualStreamPublishStateChanged (DingRtcPublishState oldState, DingRtcPublishState newState, int elapseSinceLastState, String channel)
参数
类型
描述
oldState
之前的推流状态。
newState
当前的推流状态。
elapseSinceLastState
int
状态变更时间间隔(毫秒)。
channel
String
当前频道。
-
onAudioSubscribeStateChanged: 音频订阅情况变更回调。
public void onAudioSubscribeStateChanged (String uid, DingRtcSubscribeState oldState, DingRtcSubscribeState newState, int elapseSinceLastState, String channel)
参数
类型
描述
uid
String
用户ID。
oldState
之前的订阅状态。
newState
当前的订阅状态。
elapseSinceLastState
int
状态变更时间间隔(毫秒)。
channel
String
当前频道。
-
onVideoSubscribeStateChanged: 相机流订阅情况变更回调。
public void onVideoSubscribeStateChanged (String uid, DingRtcSubscribeState oldState, DingRtcSubscribeState newState, int elapseSinceLastState, String channel)
参数
类型
描述
uid
String
用户ID。
oldState
之前的订阅状态。
newState
当前的订阅状态。
elapseSinceLastState
int
状态变更时间间隔(毫秒)。
channel
String
当前频道。
-
onSubscribeStreamTypeChanged: 大小流订阅情况变更回调。
public void onSubscribeStreamTypeChanged (String uid, DingRtcVideoStreamType oldStreamType, DingRtcVideoStreamType newStreamType, int elapseSinceLastState, String channel)
参数
类型
描述
uid
String
用户ID。
oldStreamType
之前的订阅状态。
newStreamType
当前的订阅状态。
elapseSinceLastState
int
状态变更时间间隔(毫秒)。
channel
String
当前频道。
-
onNetworkQualityChanged: 网络质量变化时发出的消息。
public void onNetworkQualityChanged (String uid, DingRtcNetworkQuality upQuality, DingRtcNetworkQuality downQuality)
参数
类型
描述
uid
String
用户ID,为空时表示本地用户上下行网络状态。
upQuality
上行网络状态。
downQuality
下行网络状态。
重要当网络质量发生变化时触发。
-
onOccurWarning: 警告通知。
public void onOccurWarning (int warn, String message)
如果engine出现warning,通过这个回调通知app。
参数
类型
描述
warn
int
警告类型。
message
String
警告消息。
-
onOccurError: 错误通知。
public void onOccurError (int error, String message)
如果engine出现error,通过这个回调通知app。
参数
类型
描述
error
int
错误类型,参考DingRtcErrorCode。
message
String
错误消息。
-
onPerformanceLow: 性能差通知。
public void onPerformanceLow ()
重要一般在Cpu过热或者过冷导致的降频情况下触发。
-
onPermormanceRecovery: 性能恢复通知。
public void onPermormanceRecovery ()
重要一般在Cpu过热或者过冷导致的降频后,重新恢复正常频率时触发。
-
onConnectionLost: 网络连接断开。
public void onConnectionLost ()
-
onTryToReconnect: 尝试重新建立与服务端的连接。
public void onTryToReconnect ()
-
onConnectionRecovery: 恢复与服务端的连接。
public void onConnectionRecovery ()
-
onConnectionStatusChanged: 网络连接状态改变。
public void onConnectionStatusChanged (DingRtcConnectionStatus status, DingRtcConnectionStatusChangeReason reason)
参数
类型
描述
status
连接状态。
reason
连接状态变化原因。
-
onRemoteUserOnLineNotify: 远端用户(通信模式)加入频道回调。
public void onRemoteUserOnLineNotify (String uid, int elapsed)
该回调在以下场景会被触发。
-
onRemoteUserOffLineNotify: 远端用户(通信模式)离开频道回调。
public void onRemoteUserOffLineNotify (String uid, DingRtcUserOfflineReason reason)
该回调在以下场景会被触发
-
onRemoteTrackAvailableNotify: 远端用户的音视频流发生变化回调。
public void onRemoteTrackAvailableNotify (String uid, DingRtcAudioTrack audioTrack, DingRtcVideoTrack videoTrack)
该回调在以下场景会被触发
-
onFirstRemoteVideoFrameDrawn: 远端用户的第一帧视频帧显示时触发这个消息。
public void onFirstRemoteVideoFrameDrawn (String uid, DingRtcVideoTrack videoTrack, int width, int height, int elapsed)
参数
类型
描述
uid
String
用户ID,从Appserver分配的唯一标示符。
videoTrack
屏幕流或者相机流。
width
int
视频宽度。
height
int
视频高度。
elapsed
int
本地用户加入频道直至该回调触发的延迟总耗时(毫秒)。
重要该接口用于远端用户的第一帧视频帧显示时的回调。
-
onRenderRemoteVideoSizeChanged: 视频渲染接收到远端视频分辨率有变化时触发此回调。
public void onRenderRemoteVideoSizeChanged (String uid, DingRtcVideoTrack videoTrack, int newWidth, int newHeight, int oldWidth, int oldHeight)
参数
类型
描述
uid
String
userId,从Appserver分配的唯一标示符。
videoTrack
接收视频track。
newWidth
int
变化后新的视频宽度
newHeight
int
变化后新的视频高度
oldWidth
int
变化前旧的视频宽度
oldHeight
int
变化前旧的视频高度
重要因为simulcast的存在,以及动态调整分辨率,横竖屏变化,视频大小和远端设置的最大推流分辨率不一定相同。
-
onRenderLocalVideoSizeChanged: 视频渲染接收到本地视频分辨率有变化时触发此回调。
public void onRenderLocalVideoSizeChanged (DingRtcVideoTrack videoTrack, int newWidth, int newHeight, int oldWidth, int oldHeight)
参数
类型
描述
videoTrack
本地视频track。
newWidth
int
变化后新的视频宽度
newHeight
int
变化后新的视频高度
oldWidth
int
变化前旧的视频宽度
oldHeight
int
变化前旧的视频高度
重要视频大小可能和摄像头采集到的视频大小不相等,比如在采集之后存在缩放等处理。
-
onFirstLocalVideoFrameDrawn: 预览开始显示第一帧视频帧时触发这个消息。
public void onFirstLocalVideoFrameDrawn (int width, int height, int elapsed)
参数
类型
描述
width
int
本地预览视频宽度。
height
int
本地预览视频高度。
elapsed
int
从本地用户加入频道直至该回调触发的延迟总耗时(毫秒)。
重要该接口用于预览开始显示第一帧视频帧时的回调。
-
onFirstVideoFrameReceived: 收到远端用户视频首帧的回调。
public void onFirstVideoFrameReceived (String uid, DingRtcVideoTrack videoTrack, int timeCost)
参数
类型
描述
uid
String
用户ID,从Appserver分配的唯一标示符。
videoTrack
接收视频track。
timeCost
int
耗时(毫秒)。
重要该接口用于收到远端用户视频首帧的回调。
-
onFirstVideoPacketSend: 视频首包发送回调。
public void onFirstVideoPacketSend (DingRtcVideoTrack videoTrack, int timeCost)
参数
类型
描述
videoTrack
发送视频track。
timeCost
int
耗时(毫秒)。
重要该接口用于视频首包发送的回调。
-
onFirstAudioPacketSent: 音频首包发送回调。
public void onFirstAudioPacketSent (String uid, int timeCost)
在首个音频数据包发送出去时触发此回调。
参数
类型
描述
uid
String
用户ID,从Appserver分配的唯一标识符。
timeCost
int
发送耗时,从入会开始到音频首包发送出去的耗时。
-
onFirstVideoPacketReceived: 视频首包接收回调。
public void onFirstVideoPacketReceived (String uid, DingRtcVideoTrack videoTrack, int timeCost)
参数
类型
描述
uid
String
远端用户ID,从Appserver分配的唯一标示符。
videoTrack
接收视频track。
timeCost
int
耗时(毫秒)。
重要该接口用于视频首包接收的回调
-
onFirstAudioPacketReceived: 音频首包接收回调。
public void onFirstAudioPacketReceived (String uid, int timeCost)
在接收到远端首个音频数据包时触发此回调。
参数
类型
描述
uid
String
远端用户ID,从Appserver分配的唯一标识符。
timeCost
int
接收耗时,从入会开始到音频首包接收到的耗时。
-
onBye: 被服务器踢出/会议结束频道的消息。
public void onBye (int code)
参数
类型
描述
code
int
原因参考DingRtcOnByeType。
-
onDingRtcStats: 实时数据回调(2s触发一次)。
public void onDingRtcStats (DingRtcStats DingRtcStats)
参数
类型
描述
DingRtcStats
统计信息。
-
onUserAudioMuted: 远端用户静音/取消静音回调。
public void onUserAudioMuted (String uid, boolean isMute)
参数
类型
描述
uid
String
远端用户ID。
isMute
boolean
该用户是否静音。
true:静音。
false:取消静音。
-
onUserVideoMuted: 远端用户暂停/恢复视频流发送的通知。
public void onUserVideoMuted (String uid, boolean isMute, DingRtcVideoTrack track)
参数
类型
描述
uid
String
远端用户ID。
isMute
boolean
true:该用户暂停视频流的发送。
false:该用户恢复视频流的发送。
track
屏幕流或者相机流。
-
onMediaRecordEvent: 文件录制回调事件。
public void onMediaRecordEvent (int event, String filePath)
参数
类型
描述
event
int
录制事件,0:录制开始,1:录制结束,2:打开文件失败,3:写文件失败。
filePath
String
录制文件路径。
重要该接口用于文件录制时的事件回调。
-
onRtcLocalVideoStats: 发布视频流的数据统计。
public void onRtcLocalVideoStats (DingRtcLocalVideoStats DingRtcStats)
参数
类型
描述
DingRtcStats
统计信息。
-
onRtcRemoteVideoStats: 订阅视频流的数据统计。
public void onRtcRemoteVideoStats (DingRtcRemoteVideoStats DingRtcStats)
参数
类型
描述
DingRtcStats
统计信息。
-
onRtcRemoteAudioStats: 订阅远端音频流的数据统计。
public void onRtcRemoteAudioStats (DingRtcRemoteAudioStats DingRtcStats)
参数
类型
描述
DingRtcStats
统计信息。
-
onRtcLocalAudioStats: 订阅本地音频流。
public void onRtcLocalAudioStats (DingRtcLocalAudioStats DingRtcStats)
参数
类型
描述
DingRtcStats
统计信息。
-
onAudioFocusChange: 音频焦点变化回调(仅适用于Android平台)。
public void onAudioFocusChange (int focusChange)
音频焦点变化的结果通知,SDK内部会请求音频焦点,如外部再次使用音频焦点需要在收到SDK改变的回调中再次请求。
参数
类型
描述
focusChange
int
焦点状态类型,取值同android.media.AudioManager焦点类型定义。
-
onAudioRouteChanged: 音频路由发生变化回调(仅适用于Android、iOS平台)。
public void onAudioRouteChanged (DingRtcAudioRouteType routing)
所谓“音频路由”,是指声音是从手机的扬声器还是从听筒中播放出来,音频路由变化也就是声音的播放位置发生了变化。
-
onAudioVolumeIndication: 远端用户音量提示回调。
public void onAudioVolumeIndication (List< DingRtcAudioVolumeInfo > speakers)
参数
类型
描述
speakers
List< DingRtcAudioVolumeInfo >
用户音量信息,详见参考DingRtcEngine.DingRtcAudioVolumeInfo,如果speakers为空,则表示远端用户不发流或没有远端用户。uid为"0"表示本地说话人。
-
onRecordingDeviceAudioLevel: 采集音量提示回调
public void onRecordingDeviceAudioLevel (int level)
参数
类型
描述
level
int
音量值[0,100]
-
onPlayoutDeviceAudioLevel: 播放音量提示回调
public void onPlayoutDeviceAudioLevel (int level)
参数
类型
描述
level
int
音量值[0,100]
-
onRemoteVideoResolutionChanged: 远端用户视频分辨率变化通知。
public void onRemoteVideoResolutionChanged (String uId, DingRtcVideoTrack videoTrack, int oldWidth, int oldHeight, int newWidth, int newHeight)
参数
类型
描述
uId
String
远端用户ID,从Appserver分配的唯一标识符。
videoTrack
视频流的类型。
oldWidth
int
视频分辨率变化前的宽。
oldHeight
int
视频分辨率变化前的高。
newWidth
int
视频分辨率变化后的宽。
newHeight
int
视频分辨率变化后的高。
-
onApiCalledExecuted: API方法已执行回调。
public void onApiCalledExecuted (int error, String api, String result)
参数
类型
描述
error
int
当该方法调用失败时SDK返回的错误码。如果该方法调用成功,SDK将返回0。失败,非0。
api
String
SDK执行的API。
result
String
SDK调用API的调用结果。
-
onSnapshotComplete: 截图回调。
public void onSnapshotComplete (String uid, DingRtcVideoTrack track, String path, boolean success)
参数
类型
描述
uid
String
用户id。
track
DingRtcVideoTrack
截图视频track。
path
String
截图图像保存路径。
success
boolean
截图是否成功。
重要该接口用于截图回调。
-
onCapturedAudioFrame: 采集裸数据回调。
public boolean onCapturedAudioFrame (DingRtcAudioFrame frame)
参数
类型
描述
frame
音频数据。
返回说明
true:success;false:fail。
重要默认关闭,需要通过enableAudioFrameObserver(true,DingRtcAudioSourceCaptured)开启。该接口支持设置采样率、声道数。该接口支持读写模式。请不要在此回调函数中做任何耗时操作,否则可能导致声音异常。
-
onProcessCapturedAudioFrame: 3A后数据回调。
public boolean onProcessCapturedAudioFrame (DingRtcAudioFrame frame)
参数
类型
描述
frame
音频数据。
返回说明
true:success;false:fail。
重要默认关闭,需要通过enableAudioFrameObserver(true,DingRtcAudioSourceCaptured)开启。该接口支持设置采样率、声道数。该接口支持读写模式。请不要在此回调函数中做任何耗时操作,否则可能导致声音异常。
-
onPublishAudioFrame: 推流数据回调。
public boolean onPublishAudioFrame (DingRtcAudioFrame frame)
参数
类型
描述
frame
音频数据。
返回说明
true:success;false:fail。
重要默认关闭,需要通enableAudioFrameObserver(true,DingRtcAudioSourcePublish)开启。该接口支持设置采样率、声道数。该接口只支持只读模式。请不要在此回调函数中做任何耗时操作,否则可能导致声音异常。
-
onPlaybackAudioFrame: 播放数据回调。
public boolean onPlaybackAudioFrame (DingRtcAudioFrame frame)
参数
类型
描述
frame
音频数据。
返回说明
true:success;false:fail。
重要默认关闭,需要通过enableAudioFrameObserver(true,DingRtcAudioSourcePlayback)开启。该接口支持设置采样率、声道数。该接口支持读写模式。请不要在此回调函数中做任何耗时操作,否则可能导致声音异常。