CloudHubSDK Android
频道事件
onConnectionStateChanged
网络连接状态已改变回调。
void onConnectionStateChanged(int state)
参数
参数 | 说明 |
---|---|
state | 当前的网络连接状态,取值如下: * CONNECTION_STATE_DISCONNECTED(1) * CONNECTION_STATE_CONNECTING(2) * CONNECTION_STATE_CONNECTED(3) * CONNECTION_STATE_RECONNECTING(4) * CONNECTION_STATE_FAILED(5) |
详情
该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态。
onJoinChannelSuccess
加入频道成功。
void onJoinChannelSuccess(String channelId,String uid)
参数
参数 | 说明 |
---|---|
channelId | 频道id |
uid | 用户ID。 如果在 joinChannel 方法中指定了 uid,它会返回指定的 ID; 如果没有,它将返回由SDK自动分配的ID |
详情
该回调方法表示该客户端成功加入了指定的频道。
onRejoinChannelSuccess
重新加入频道成功回调。
void onRejoinChannelSuccess(String channelId,String uid)
参数
参数 | 说明 |
---|---|
channelId | 频道id |
uid | 用户ID。 如果在 joinChannel 方法中指定了 uid,它会返回指定的 ID; 如果没有,它将返回由SDK自动分配的ID |
详情
有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法。
onLeaveChannel
离开频道回调。
void onLeaveChannel(Structs.RtcStats stats)
参数
参数 | 说明 |
---|---|
stats | 频道状态 |
详情
当用户调用 leaveChannel 离开频道后,SDK 会触发该回调。
onClientRoleChanged
直播场景下用户角色已改变回调。
void onClientRoleChanged(int oldRole, int newRole)
参数
参数 | 说明 |
---|---|
oldRole | 切换前的角色,取值如下: * CLIENT_ROLE_BROADCASTER(1), 主播; * CLIENT_ROLE_AUDIENCE(2), 听众 |
newRole | 切换后的角色,取值同上 |
详情
直播场景下,本地用户在加入频道后调用 setClientRole 切换角色时会触发此回调,即主播切换为观众时,或观众切换为主播时。
onUserJoined
远端用户(通信场景)/主播(直播场景)加入当前频道回调。
void onUserJoined(String uid, String properties, boolean isHistory, String fromChannelId)
参数
参数 | 说明 |
---|---|
uid | 加入频道的远端用户/主播 ID。如果在 joinChannel 中指定了 uid,则此处返回该 ID; 否则使用SDK自动分配的 ID |
properties | 该用户的自定义属性。通过 joinChannel 和 setProperty 接口可以指定用户自定义属性 |
isHistory | 该用户是否是在本地用户之前加入频道的 |
fromChannelId | 当有来自其他频道的跨频道媒体流转发到本频道时,该参数为转发媒体流的源频道ID。其他情况下,该参数值为空字符串 |
详情
- 通信场景下,该回调提示有远端用户加入了频道,并返回新加入用户的 ID; 如果加入之前,已经有其他用户在频道中了,新加入的用户也会收到这些已有用户加入频道的回调,此时 isHistory 为true。
- 直播场景下,该回调提示有主播加入了频道,并返回该主播的 ID。如果在加入之前,已经有主播在频道中了,新加入的用户也会收到已有主播加入频道的回调。
该回调在如下情况下会被触发:
- 远端用户/主播调用 joinChannel 方法加入频道
- 远端用户加入频道后调用 setClientRole 将用户角色改变为主播
- 远端用户/主播网络中断后重新加入频道
Note:
直播场景下,
- 主播间能相互收到新主播加入频道的回调,并能获得该主播的 uid
- 观众也能收到新主播加入频道的回调,并能获得该主播的 uid
onUserLeft
远端用户(通信场景)/主播(直播场景)离开当前频道回调。
void onUserLeft(String uid , int reason)
参数
参数 | 说明 |
---|---|
uid | 离开频道的远端用户/主播 ID |
reason | 用户离开的原因,有以下值: 1: 用户调用了 leaveChannel 主动离开频道 2: 因过长时间收不到对方数据包,超时掉线 3: 用户被踢出频道 4: 因为有相同的用户 id 进入频道而离开频道 5: 因为服务器主动关闭频道,踢出所有用户 6: 用户角色从主播切换为观众 0: 未知原因离开频道 8: 跨房间通道主动关闭 9: 跨房间通道连接断开 |
详情
提示有远端用户/主播离开了频道(或掉线)。用户离开频道有两个原因,即正常离开和超时掉线(超过30秒无法与服务器正常通信)。
onConnectionLost
网络连接丢失回调。
void onConnectionLost()
详情
本地用户发生超时掉线,即超过10分钟无法与服务器正常通信。
onTokenWillExpire
token即将在30秒内过期回调。
void onTokenWillExpire()
详情
在调用 joinChannel 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中如果 Token 即将失效,SDK 会提前 30 秒触发该回调,提醒应用程序更新 Token。 当收到该回调时,用户需要重新在服务端生成新的 Token,然后调用 renewToken 将新生成的 Token 传给 SDK。
onRequestToken
token已经过期,需要更新。
void onRequestToken()
详情
在调用 joinChannel 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中如果 Token 已经失效,SDK 会立刻触发该回调,提醒应用程序更新 Token。 当收到该回调时,用户需要重新在服务端生成新的 Token,然后调用 renewToken 将新生成的 Token 传给 SDK。
onLocalUserPermissionChanged
本地用户发布或订阅权限发生改变。
void onLocalUserPermissionChanged(int type, boolean hasPermission)
参数
参数 | 说明 |
---|---|
type | 发生改变的权限类型,取值如下: * PERMISSION_TYPE_PUBLISH(1), 发布; * PERMISSION_TYPE_SUBSCRIBE(2), 订阅 |
hasPermission | 当前是否有type参数指定的权限 |
详情
您可以通过后端api更改频道内任意一个用户的发布、订阅权限。 当一个用户的发布、订阅权限发生变化时,已经发布的音视频码流会立刻被中断,此时本地会收到 onLocalUserPermissionChanged 回调。 如果失去发布权限,频道内的其他人将无法接收到此用户的音视频; 如果失去订阅权限,此用户将法接收频道内其他人的音视频。
Note:
当重新获得发布权限后,如果希望立刻发布自己的音视频,则需要在收到 onLocalUserPermissionChanged 回调后,重新调用 publishStream 方法。
当重新获得订阅权限后,则订阅自动继续,只需要响应接下来的 onRemoteAudioStateChanged 和 onRemoteVideoStateChanged 即可。
onChannelForceClosed
频道被服务器关闭回调
void onChannelForceClosed(String channelId, int reason)
参数
参数 | 说明 |
---|---|
channelId | 频道id |
reason | 频道被关闭的原因,取值如下: * CLOSE_CHANNEL_REASON_UNKNOWN(1), 未知原因 * CLOSE_CHANNEL_REASON_CLOSECHANNEL(2), 服务器调用 |
详情
当服务器主动关闭某个频道时,该回调会被触发。
本地媒体事件
onLocalAudioStateChanged
本地音频状态改变回调。
void onLocalAudioStateChanged(int state, int error)
参数
详情
本地音频的状态发生改变时(包括本地麦克风录制状态和音频编码状态),SDK 会触发该回调报告当前的本地音频状态。在本地音频出现故障时,该回调可以帮助了解当前音频的状态以及出现故障的原因。
onLocalVideoStateChanged
本地视频状态改变回调。
void onLocalVideoStateChanged(int cameraId, int state, int error)
参数
详情
本地视频的状态发生改变时,SDK 会触发该回调报告当前的本地视频状态。在本地视频出现故障时,该回调可以帮助了解当前视频的状态以及出现故障的原因。
onFirstLocalAudioFrame
已捕获本地音频首帧回调。
void onFirstLocalAudioFrame()
onFirstLocalVideoFrame
已捕获本地视频首帧回调。
void onFirstLocalVideoFrame(int cameraId, int width, int height)
参数
参数 | 说明 |
---|---|
cameraId | 摄像头ID |
width | 首帧视频的宽 |
height | 首帧视频的高 |
详情
捕获本地视频第一帧时,触发此回调。
onLocalVideoSizeChange
本地视频宽高已变化回调。
void onLocalVideoSizeChange(int cameraId, int width, int height)
参数
参数 | 说明 |
---|---|
cameraId | 摄像头ID |
width | 新的视频宽 |
height | 新的视频高 |
onHookLocalVideoFrame
本地视频原始数据帧回调。
void onHookLocalVideoFrame(String cameraId,VideoFrame frame)
参数
参数 | 说明 |
---|---|
cameraId | 摄像头ID |
frame | 原始视频数据帧 |
远端媒体事件
onRemoteAudioStateChanged
远端音频流状态已变化回调。
void onRemoteAudioStateChanged(String uid, int state, int reason)
参数
详情
远端用户/主播音频状态发生改变时,SDK 会触发该回调向本地用户报告当前的远端音频流状态。
onRemoteVideoStateChanged
远端视频流状态已变化回调。
void onRemoteVideoStateChanged(String uid, int mediaType, String streamId, int state, int reason, String streamInfo)
参数
详情
远端用户/主播视频状态发生改变时,SDK 会触发该回调向本地用户报告当前的远端视频流状态。
每个用户可能有多个视频流,每路视频都有其类型(type)。streamID是一路视频流在频道内的唯一标识。
onFirstRemoteAudioFrame
已接收远端音频首帧回调。
void onFirstRemoteAudioFrame(String uid)
参数
参数 | 说明 |
---|---|
uid | 远端音频流的用户 uid |
onFirstRemoteVideoFrame
已接收远端视频首帧回调。
void onFirstRemoteVideoFrame(String uid, int mediaType, String streamId, int width, int height)
参数
参数 | 说明 |
---|---|
uid | 远端视频流的用户uid |
mediaType | 视频流类型,参见 onRemoteVideoStateChanged |
streamId | 该路视频流在频道内的唯一ID。在调用订阅/播放/设置远端视频流方法时,都需要传入此ID |
width | 首帧视频的宽 |
height | 首帧视频的高 |
详情
本地收到远端第一个视频帧并解码成功后,会触发该回调。有两种情况:
- 远端用户首次上线后发送视频
- 远端用户视频离线再上线发送视频。视频离线指本地在 15 秒内没有收到视频包,可能有如下原因:
- 远端用户离开频道
- 远端用户掉线
- 远端用户停止发送视频流(调用了 muteLocalVideoStream )
- 远端用户关闭视频(调用了 enableLocalVideo(false))
onRemoteVideoSizeChange
远端视频流宽高已变化回调。
void onRemoteVideoSizeChange(String uid, int mediaType,String streamId,int width, int height)
参数
参数 | 说明 |
---|---|
uid | 远端视频流的用户uid |
mediaType | 视频流类型,参见 onRemoteVideoStateChanged |
streamId | 该路视频流在频道内的唯一ID。在调用订阅/播放/设置远端视频流方法时,都需要传入此ID |
width | 新的视频宽 |
height | 新的视频高 |
数据统计事件
onRtcStats
当前通话统计。
void onRtcStats(Structs.RtcStats stats)
参数
参数 | 说明 |
---|---|
stats | 通话统计信息。详见 RtcStats |
onNetworkQuality
网络上下行质量报告回调。
void onNetworkQuality(String uid, int txQuality, int rxQuality)
参数
参数 | 说明 |
---|---|
uid | 用户 uid |
txQuality | 发送质量报告,取值如下: * QUALITY_UNKNOWN(0) * QUALITY_EXCELLENT(1) * QUALITY_GOOD(2) * QUALITY_POOR(3) * QUALITY_BAD(4) * QUALITY_VBAD(5) * QUALITY_DOWN(6) * QUALITY_UNSUPPORTED(7) * QUALITY_DETECTING(8) |
rxQuality | 接收质量报告,取值同上 |
onLocalAudioStats
本地音频流统计信息回调。
void onLocalAudioStats(Structs.LocalAudioStats stats)
参数
参数 | 说明 |
---|---|
stats | 本地音频统计数据。详见 LocalAudioStats |
详情
该回调描述本地设备发送音频流的统计信息。SDK 每 2 秒触发该回调一次。
onLocalVideoStats
本地视频流统计信息回调。
void onLocalVideoStats(Structs.LocalVideoStats stats)
参数
参数 | 说明 |
---|---|
stats | 本地视频统计数据。详见 LocalVideoStats |
详情
该回调描述本地设备发送视频流的统计信息。SDK 每 2 秒触发该回调一次。
onRemoteAudioStats
通话中远端音频流的统计信息回调。
void onRemoteAudioStats(Structs.RemoteAudioStats stats)
参数
参数 | 说明 |
---|---|
stats | 远端音频统计数据。详见 RemoteAudioStats |
详情
该回调描述远端用户在通话中端到端的音频流统计信息,针对每个远端用户/主播每 2 秒触发一次。
如果远端同时存在多个用户/主播,该回调每 2 秒会被触发多次。
onRemoteVideoStats
void onRemoteVideoStats(Structs.RemoteVideoStats stats)
参数
参数 | 说明 |
---|---|
stats | 远端视频统计数据。详见 RemoteVideoStats |
详情
该回调描述远端用户在通话中端到端的视频流统计信息,针对每个远端用户/主播每 2 秒触发一次。
如果远端同时存在多个用户/主播,该回调每 2 秒会被触发多次。
音乐文件播放事件
onMovieStateChanged
本地用户的音乐文件播放状态改变回调。
void onMovieStateChanged(String mediaFile, int state, int error)
参数
参数 | 说明 |
---|---|
mediaFile | 调用 startPlayingMovie 时,传入的文件路径 |
state | 播放状态,取值如下: * MOVIE_STATE_PLAYING(710) * MOVIE_STATE_PAUSED(711) * MOVIE_STATE_STOPPED(713) * MOVIE_STATE_FAILED(714) * MOVIE_STATE_PLAYCOMPLETE(715) |
error | 错误码,取值如下: * MOVIE_ERROR_OK(0) * MOVIE_ERROR_CAN_NOT_OPEN(701) * MOVIE_ERROR_TOO_FREQUENT_CALL(702) * MOVIE_ERROR_INTERRUPTED_EOF(703) |
onMovieProgress
本地用户的音乐文件播放进度回调。
void onMovieProgress(String mediaFile, long pos, long total)
参数
参数 | 说明 |
---|---|
mediaFile | 调用 startPlayingMovie 时,传入的文件路径 |
pos | 播放进度(毫秒) |
total | 文件总时长(毫秒) |
音效文件播放事件
onAudioEffectFinish
本地用户的音效文件播放状态改变回调。
void onAudioEffectFinish(int soundId)
参数
参数 | 说明 |
---|---|
soundId | 在startEffect时传入的音效ID。 |
跨频道媒体流转发事件
onChannelMediaRelayStateChanged
跨频道媒体流转发状态已变化回调。
void onChannelMediaRelayStateChanged(String channelId, int state, int error)
参数
参数 | 说明 |
---|---|
channelId | 目标频道号。在开始/更新跨房间媒体流转发时指定 |
state | 当前状态 * RELAY_STATE_IDLE(0), SDK正在初始化 * RELAY_STATE_CONNECTING(1), SDK正在尝试跨房间连接 * RELAY_STATE_RUNNING(2), 源频道主播成功加入目标频道 * RELAY_STATE_FAILURE(3), 发生异常, 详见error错误码 |
error | 转发出错时的错误码 * RELAY_ERROR_OK(0), 一切正常 * RELAY_ERROR_SERVER_ERROR_RESPONSE(1), 服务器回应出错 * RELAY_ERROR_SERVER_NO_RESPONSE(2), 服务器无回应 * RELAY_ERROR_NO_RESOURCE_AVAILABLE(3), 服务器资源不可用 * RELAY_ERROR_FAILED_JOIN_SRC(4), 发起转发请求失败 * RELAY_ERROR_FAILED_JOIN_DEST(5), 接受转发请求失败 * RELAY_ERROR_FAILED_PACKET_RECEIVED_FROM_SRC(6), 服务器接收媒体流失败 * RELAY_ERROR_FAILED_PACKET_SENT_TO_DEST(7), 服务器发送媒体流失败 * RELAY_ERROR_SERVER_CONNECTION_LOST(8), 网络不佳, 连接中断 * RELAY_ERROR_INTERNAL_ERROR(9), 内部错误 |
详情
当跨频道媒体流转发状态发生改变时,SDK会触发该回调,并报告当前的转发状态以及相关的错误信息。
音量提示事件
onAudioVolumeIndication
说话者音量提示回调。
void onAudioVolumeIndication(String uid, int volume, int vad)
参数
参数 | 说明 |
---|---|
uid | 用户 uid |
volume | 音量,0~255 |
vad | 用户是否正在说话 |
详情
该回调默认禁用。可以通过 enableAudioVolumeIndication 方法开启; 开启后,无论频道内是否有人说话,SDK 都会按 enableAudioVolumeIndication 方法中设置的时间间隔触发 onAudioVolumeIndication 回调。
onActiveSpeaker
说话者音量提示回调。
virtual void onActiveSpeaker(String uid)
参数
参数 | 说明 |
---|---|
uid | 远端最活跃用户的 ID |
详情 成功调用 enableAudioVolumeIndication 后,SDK 会持续监测音量 最大的远端用户,并统计该用户被判断为音量最大者的次数。当前时间段内,该次数累积最多的远端用户为最活跃的用户。
当频道内用户数量大于或等于 2 且有活跃用户时,SDK 会触发该回调并报告最活跃用户的 uid。
- 如果最活跃用户一直是同一位用户,则 SDK 不会再次触发 onActiveSpeaker 回调。
- 如果最活跃用户有变化,则 SDK 会再次触发该回调并报告新的最活跃用户的 uid。
通话前网络测试事件
onLastmileQuality
报告本地用户的网络质量。
void onLastmileQuality(int quality)
参数
参数 | 说明 |
---|---|
quality | 当前本地用户的网络质量。详见onNetworkQuality() |
onLastmileProbeResult
报告通话前网络测试的结果。
void onLastmileProbeResult(Structs.LastmileProbeResult result)
参数
参数 | 说明 |
---|---|
result | 通话前网络测试的结果。详见LastmileProbeResult |
原始音频数据事件
onRecordAudioFrame
void onRecordAudioFrame(byte[] data, int sampleRate, int channels, int samples);
设置采集数据回调的格式。
参数
参数 | 说明 |
---|---|
data | 接收到的数据 |
sampleRate | 采样率 |
channels | 声道数 |
samples | 每声道样本数 |
onPlaybackAudioFrame
void onPlaybackAudioFrame(byte[] data, int sampleRate, int channels, int samples);
设置播放数据回调的格式
参数
参数 | 说明 |
---|---|
data | 接收到的数据 |
sampleRate | 采样率 |
channels | 声道数 |
samples | 每声道样本数 |
内容审核事件
onAuditAlertFromLocalVideo
视频违规回调
void onAuditAlertFromLocalVideo(String atTime,String channelId,String uid,String streamId,String jsonDesc)
参数
参数 | 说明 |
---|---|
atTime | 违规时间点 |
channelId | 房间号 |
uid | 用户Id |
streamId | 流Id |
jsonDesc | 违规内容 |
onAuditAlertFromLocalAudio
音频违规回调
void onAuditAlertFromLocalAudio(String atTime,String channelId,String uid,String jsonDesc)
参数
参数 | 说明 |
---|---|
atTime | 违规时间点 |
channelId | 房间号 |
uid | 用户Id |
jsonDesc | 违规内容 |
onAuditAlertFromLocalChat
聊天违规回调
void onAuditAlertFromLocalChat(String atTime,String channelId,String uid,String jsonDesc)
参数
参数 | 说明 |
---|---|
atTime | 违规时间点 |
channelId | 房间号 |
uid | 用户Id |
jsonDesc | 违规内容 |
录制声音片段事件
onVoiceClipFileReady
录制声音片段回调
public void onVoiceClipFileReady(String clipBaseName, String currentClipFileName, long clipTs)
参数
参数 | 说明 |
---|---|
clipBaseName | 声音片段basename |
currentClipFileName | 声音片段完整name |
clipTs | 毫秒级时间戳 |
流 消 息 事 件
onStreamMessage
void onStreamMessage(String uid, byte[] message);
接收到对方数据流消息的回调。
该回调表示本地用户收到了远端用户调用 sendStreamMessage 方法发送的流消息。
参数
参数 | 说明 |
---|---|
uid | 用户 ID |
message | 接收到的数据 |
远端发布事件(仅用于手动订阅模式)
onUserPublished
远端用户开始发布音视频回调。
void onUserPublished(String uid, int mediaType,String streamId)
参数
参数 | 说明 |
---|---|
uid | 发布视频流的用户id |
mediaType | 视频流类型,参见 onRemoteVideoStateChanged |
streamId | 该路视频流在频道内的唯一ID。在调用订阅/播放/设置远端视频流方法时,都需要传入此ID |
详情
当频道内有用户发布音视频流成功后,本地如果关闭了自动订阅(详见setAutoSubscribe),会收到 onUserPublished 回调,此时如果决定收看此人,则需要调用subscribeStream,成功后收到 onRemoteVideoStateChanged 回调。 本地如果未关闭自动订阅,会直接收到 onRemoteVideoStateChanged 回调。当频道内有用户发布音视频流成功后,本地如果关闭了自动订阅(详见setAutoSubscribe),会收到 onUserPublished 回调,此时如果决定收看此人,则需要调用subscribeStream,成功后收到 onRemoteVideoStateChanged 回调。本地如果未关闭自动订阅,会直接收到 onRemoteVideoStateChanged 回调。
onUserUnPublished
远端用户停止发布音视频回调。
void onUserUnPublished(String uid, int mediaType,String streamId)
参数
参数 | 说明 |
---|---|
uid | 发布视频流的用户id |
mediaType | 视频流类型,参见 onRemoteVideoStateChanged |
streamId | 该路视频流在频道内的唯一ID。在调用订阅/播放/设置远端视频流方法时,都需要传入此ID |
详情
当频道内有用户停止音视频流后,本地如果关闭了自动订阅(详见setAutoSubscribe),会收到 onUserUnPublished 回调。此时无需主动调用 unSubscribe 方法。
服务器录制事件
onServerRecordStateChange
服务器录制状态发生改变回调。
void onServerRecordStateChange(int state, long startTS, long currTS, long pauseDuration, long recordDuration)
参数
参数 | 说明 |
---|---|
state | 当前录制状态。0 未开始,1 录制中,2 暂停。 |
startTS | 开始时间(自1970年1月1日0时起经历的毫秒) |
currTS | 当前服务器时间(自1970年1月1日0时起经历的毫秒) |
pauseDuration | 暂停总时长,毫秒。 |
recordDuration | 录制总时长(不含暂停时间),毫秒。 |
高级信令事件
onSetProperty
用户自定义属性变化回调。
void onSetProperty(String uid, String fromId, String properties)
参数
参数 | 说明 |
---|---|
uid | 属性变化的用户uid |
fromIid | 发起操作的用户uid |
properties | 发生变化的属性,json字符串 |
Note
仅当本地用户在调用 setProperty](../rtc-engine/#setproperty) 时指定的通知范围内(不指定即通知频道内所有人)时,本地用户才会收到该回调。
onChatMessageArrival
聊天消息回调。
void onChatMessageArrival(String fromId, String textMsg, String extraData)
参数
参数 | 说明 |
---|---|
fromId | 发起操作的用户uid |
textMsg | 消息文本内容 |
extraData | 附加数据,可能为空 |
Note
仅当本地用户在调用 sendChatMsg 时指定的通知范围内(不指定即通知频道内所有人)时,本地用户才会收到该回调。
onPubMsg
自定义消息发布回调。
void onPubMsg(String msgId,
String msgName,
String fromId,
String toId,
String data,
String associatedUserId,
String associatedMsgId,
long ts,
long seq,
String extraData,
boolean isHistory)
参数
参数 | 说明 |
---|---|
msgId | 消息id,是一条消息在频道内的唯一标识 |
msgName | 消息名称 |
fromId | 消息发送者的uid |
toId | 通知的目标uid,如果为空通知频道内的所有人 |
data | 消息内容。必须是json字符串。可以为空 |
associatedUserId | 关联用户的uid,一旦一条消息和一个用户关联,则该用户退出时,此条消息自动被删除 |
associatedMsgId | 关联消息的id,一旦一条消息和另一条消息关联,则被关联的消息被删除时,此条消息自动被删除 |
ts | 服务器最后一次收到该消息时的时间戳 |
seq | 该消息的全局序号 |
extraData | 保留参数 |
isHistory | 该消息是否是在本地用户进入频道前发送的 |
Note
仅当本地用户在调用 pubMsg 时指定的通知范围内(不指定即通知频道内所有人)时,本地用户才会收到该回调。
onDelMsg
自定义消息删除回调。
void onDelMsg(
String msgId,
String msgName,
String fromId,
String toId,
String associatedUserId,
String associatedMsgId,
long ts,
long seq,
String extraData
)
参数
参数 | 说明 |
---|---|
msgId | 消息id,是一条消息在频道内的唯一标识 |
msgName | 消息名称 |
fromId | 消息发送者的uid |
toId | 通知的目标uid,如果为空通知频道内的所有人 |
data | 消息内容。必须是json字符串。可以为空 |
associatedUserId | 关联用户的uid,一旦一条消息和一个用户关联,则该用户退出时,此条消息自动被删除 |
associatedMsgId | 关联消息的id,一旦一条消息和另一条消息关联,则被关联的消息被删除时,此条消息自动被删除 |
ts | 服务器最后一次收到该消息时的时间戳 |
seq | 该消息的全局序号 |
extraData | 保留参数 |
Note
仅当本地用户在调用 delMsg 时指定的通知范围内(不指定即通知频道内所有人)时,本地用户才会收到该回调。
onLocalUserEvicted
本地用户被踢出房间回调。
void onLocalUserEvicted(int reason)
参数
参数 | 说明 |
---|---|
reason | 被踢原因。由服务器填写,或调用 evictUser 时传入 |
详情
当收到该条回调时,可能有两种原因:
- 有另一个用户调用 joinChannel 时,使用了和本地用户相同的uid,服务器认为二者身份相同,将旧的用户踢出房间,此时reason为0。
- 有用户调用了 evictUser 接口将本地用户踢出房间,此时reason为对方调用时传入的reason值。
其他事件
onError
发生错误事件回调。
void onError(int err, String msg)
参数
Note
该回调发生表示SDK 运行时出现了(网络或媒体相关的)错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。
onServerTime
服务器当前时间通知。
void onServerTime(long serverTime)
参数
参数 | 说明 |
---|---|
serverTime | 服务器时间,UTC |