CloudHub 文档中心
下载中心 文档中心

RTC 实时音视频


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该用户的自定义属性。通过 joinChannelsetProperty 接口可以指定用户自定义属性
isHistory该用户是否是在本地用户之前加入频道的
fromChannelId当有来自其他频道的跨频道媒体流转发到本频道时,该参数为转发媒体流的源频道ID。其他情况下,该参数值为空字符串

详情

该回调在如下情况下会被触发:

Note:

直播场景下,

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 方法。
当重新获得订阅权限后,则订阅自动继续,只需要响应接下来的 onRemoteAudioStateChangedonRemoteVideoStateChanged 即可。

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)

参数

参数说明
state新的本地音频状态,取值如下:

* LOCAL_AUDIO_STREAM_STATE_STOPPED(0)
* LOCAL_AUDIO_STREAM_STATE_RECORDING(1)
* LOCAL_AUDIO_STREAM_STATE_ENCODING(2)
* LOCAL_AUDIO_STREAM_STATE_FAILED(3)
error错误码,取值如下:

* LOCAL_AUDIO_STREAM_ERROR_OK(0)
* LOCAL_AUDIO_STREAM_ERROR_FAILURE(1)
* LOCAL_AUDIO_STREAM_ERROR_DEVICE_NO_PERMISSION(2)
* LOCAL_AUDIO_STREAM_ERROR_DEVICE_BUSY(3)
* LOCAL_AUDIO_STREAM_ERROR_RECORD_FAILURE(4)
* LOCAL_AUDIO_STREAM_ERROR_ENCODE_FAILURE(5)
* LOCAL_AUDIO_STREAM_ERROR_MUTED(6)
* LOCAL_AUDIO_STREAM_ERROR_UNMUTED(7)

详情

本地音频的状态发生改变时(包括本地麦克风录制状态和音频编码状态),SDK 会触发该回调报告当前的本地音频状态。在本地音频出现故障时,该回调可以帮助了解当前音频的状态以及出现故障的原因。

onLocalVideoStateChanged

本地视频状态改变回调。

void onLocalVideoStateChanged(int cameraId, int state, int error)

参数

参数说明
cameraId摄像头ID
state新的本地视频状态,取值如下:

* LOCAL_VIDEO_STREAM_STATE_STOPPED(0)
* LOCAL_VIDEO_STREAM_STATE_CAPTURING(1)
* LOCAL_VIDEO_STREAM_STATE_ENCODING(2)
* LOCAL_VIDEO_STREAM_STATE_FAILED(3)
error错误码,取值如下:

* LOCAL_VIDEO_STREAM_ERROR_OK(0)
* LOCAL_VIDEO_STREAM_ERROR_FAILURE(1)
* LOCAL_VIDEO_STREAM_ERROR_DEVICE_NO_PERMISSION(2)
* LOCAL_VIDEO_STREAM_ERROR_DEVICE_BUSY(3)
* LOCAL_VIDEO_STREAM_ERROR_CAPTURE_FAILURE(4)
* LOCAL_VIDEO_STREAM_ERROR_ENCODE_FAILURE(5)

详情

本地视频的状态发生改变时,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)

参数

参数说明
uid远端音频流的用户uid
state新的音频流状态,取值如下:

* REMOTE_AUDIO_STATE_STOPPED(0)
* REMOTE_AUDIO_STATE_STARTING(1)
* REMOTE_AUDIO_STATE_DECODING(2)
* REMOTE_AUDIO_STATE_FROZEN(3)
* REMOTE_AUDIO_STATE_FAILED(4)
reason发生变化的原因 取值如下:

* REMOTE_AUDIO_REASON_INTERNAL(0)
* REMOTE_AUDIO_REASON_NETWORK_CONGESTION(1)
* REMOTE_AUDIO_REASON_NETWORK_RECOVERY(2)
* REMOTE_AUDIO_REASON_LOCAL_MUTED(3)
* REMOTE_AUDIO_REASON_LOCAL_UNMUTED(4)
* REMOTE_AUDIO_REASON_REMOTE_MUTED(5)
* REMOTE_AUDIO_REASON_REMOTE_UNMUTED(6)
* REMOTE_AUDIO_REASON_REMOTE_OFFLINE(7)

详情

远端用户/主播音频状态发生改变时,SDK 会触发该回调向本地用户报告当前的远端音频流状态。

onRemoteVideoStateChanged

远端视频流状态已变化回调。

void onRemoteVideoStateChanged(String uid, int mediaType, String streamId, int state, int reason, String streamInfo)

参数

参数说明
uid远端视频流的用户uid
mediaType流类型,取值如下:

* MEDIA_TYPE_AUDIO_ONLY(1)
* MEDIA_TYPE_AUDIO_AND_VIDEO(3)
* MEDIA_TYPE_ONLINE_MOVIE_VIDEO(4)
* MEDIA_TYPE_OFFLINE_MOVIE_VIDEO(5)
* MEDIA_TYPE_SCREEN_VIDEO(6)
streamId该路视频流在频道内的唯一ID。在调用订阅/播放/设置远端视频流方法时,都需要传入此ID
state新的流状态,取值如下:

* REMOTE_VIDEO_STATE_STOPPED(0)
* REMOTE_VIDEO_STATE_STARTING(1)
* REMOTE_VIDEO_STATE_FROZEN(2)
* REMOTE_VIDEO_STATE_FAILED(3)
reason发生变化的原因,取值如下:

* REMOTE_VIDEO_STATE_REASON_INTERNAL(0)
* REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION(1)
* REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY(2)
* REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED(3)
* REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED(4)
* REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED(5)
* REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED(6)
* REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE(7)
* REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK(8)
* REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY(9)
* REMOTE_VIDEO_STATE_REASON_ADD_REMOTESTREAM(10)
* REMOTE_VIDEO_STATE_REASON_REMOVE_REMOTESTREAM(11)
streamInfo用户自定义数据(Json字符串格式)

详情

远端用户/主播视频状态发生改变时,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首帧视频的高

详情

本地收到远端第一个视频帧并解码成功后,会触发该回调。有两种情况:

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。

通话前网络测试事件

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 时传入

详情

当收到该条回调时,可能有两种原因:

其他事件

onError

发生错误事件回调。

void onError(int err, String msg)

参数

参数说明
err错误码,取值如下:

* ERR_OK(0)
* ERR_FAILED(1)
* ERR_INVALID_ARGUMENT(2)
* ERR_NOT_READY(3)
* ERR_NOT_SUPPORTED(4)
* ERR_REFUSED(5)
* ERR_BUFFER_TOO_SMALL(6)
* ERR_NOT_INITIALIZED(7)
* ERR_JOIN_CHANNEL_REJECTED(17)
* ERR_LEAVE_CHANNEL_REJECTED(18)
* ERR_RESOURCE_LIMITED(22)
* ERR_INVALID_APP_ID(101)
*ERR_IN_BLACKLIST(104)
*ERR_ENTERPRISE_CONCURRENT_POINTS_EXCEED_LIMIT(107)
* ERR_TOKEN_EXPIRED(109)
* ERR_INVALID_TOKEN(110)
* ERR_NOT_IN_CHANNEL(113)
* ERR_PUBLISH_NOT_AUTHORIZED(501)
* ERR_PUBLISH_INTERNAL_SERVER_ERROR(502)
* ERR_SUBSCRIBE_NOT_AUTHORIZED(601)
* ERR_SUBSCRIBE_INTERNAL_SERVER_ERROR(602)
* ERR_MOVIE_ALREADY_PLAYING(701)
* ERR_MOVIE_ALREADY_PUBLISHING(702)
* ERR_UNKNOWN(-1)
msg错误消息提示

Note

该回调发生表示SDK 运行时出现了(网络或媒体相关的)错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。

onServerTime

服务器当前时间通知。

void onServerTime(long serverTime)

参数

参数说明
serverTime服务器时间,UTC