监测到远端最活跃用户回调。
该回调获取当前时间段内累积音量最大者。
如果该用户开启了 enableAudioVolumeIndication
功能,
则当音量检测模块监测到频道内有新的活跃用户说话时,会通过本回调返回该用户的 uid。
Note
enableAudioVolumeIndication
方法才能收到该回调。uid
返回的是当前时间段内声音最大的用户 ID,而不是瞬时声音最大的用户 ID。API 方法已执行回调。
本地音效文件播放已结束回调。
当调用 playEffect
播放音效结束后,会触发该回调。
本地音乐文件播放已结束回调。
当调用 startAudioMixing
播放伴奏音乐结束后,会触发该回调。
如果该方法调用失败,会在 Warning
回调里,返回
警告码 AudioMixingOpenError
。
本地用户的音乐文件播放状态改变。
自从 v3.4.2
该回调在音乐文件播放状态发生改变时触发,并报告当前的播放状态和播放状态改变的原因。
音频发布状态改变回调。
自从 v3.1.2。
远端音频质量回调。
音频路由已变更回调。
该回调返回当前的音频路由已切换至听筒、扬声器、耳机或蓝牙。
音频订阅状态发生改变回调。
自从 v3.1.2。
提示频道内谁正在说话、说话者音量及本地用户是否在说话的回调。
该回调提示频道内瞬时音量最高的几个用户(最多三个)的用户 ID、他们的音量及本地用户是否在说话。
该回调默认禁用。可以通过启用说话者音量提示 enableAudioVolumeIndication
方法开启;
开启后,无论频道内是否有人说话,都会按方法中设置的时间间隔返回提示音量。
每次触发,用户会收到两个独立的 AudioVolumeIndication
回调,其中一个包含本地用户的音量信息,另一个包含远端所有用户的音量信息,详见下方参数描述。
Note
speakers
数组中的 vad
参数(即本地人声检测功能),请在 enableAudioVolumeIndication
方法中设置 report_vad
为 true
。muteLocalAudioStream
方法会对 SDK 行为产生影响:摄像头曝光区域已改变回调。
该回调是由本地用户调用 setCameraExposurePosition
方法改变曝光位置触发的。
摄像头对焦区域已改变回调。
该回调是由本地用户调用 setCameraFocusPositionInPreview
方法改变对焦位置触发的。
摄像头就绪回调。
跨频道媒体流转发事件回调。
该回调报告跨频道媒体流转发过程中发生的事件。
跨频道媒体流转发状态发生改变回调。
当跨频道媒体流转发状态发生改变时,SDK 会触发该回调,并报告当前的转发状态以及相关的错误信息。
直播场景下用户角色切换成功回调。
直播场景下,本地用户加入频道后调用 setClientRole
成功改变用户角色时,
例如主播切换为观众,或观众切换为主播,SDK 会触发该回调,报告切换前和切换后的角色。
网络连接已被服务器禁止回调。
网络连接中断回调。
网络连接中断,且 SDK 无法在 10 秒内连接服务器回调。
SDK 在调用 joinChannel
后,无论是否加入成功,只要 10 秒和服务器无法连接就会触发该回调。
如果 SDK 在断开连接后,20 分钟内还是没能重新加入频道,SDK 会停止尝试重连。
网络连接状态已改变回调。
该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态,和引起网络状态改变的原因。
发生错误回调。
表示 SDK 运行时出现了(网络或媒体相关的)错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,
需要 App 干预或提示用户。例如启动通话失败时,SDK 会上报 StartCall
错误。
App 可以提示用户启动通话失败,并调用 leaveChannel
退出频道。
报告本地人脸检测结果。
调用 enableFaceDetection
开启本地人脸检测后,你可以通过该回调实时获取以下人脸检测的信息:
其中,人脸距设备屏幕的距离由 SDK 通过摄像头采集的画面大小和人脸在画面中的位置拟合计算得出。
Note
distance
)值有一定误差,请不要用它进行精确计算。已发送本地音频首帧回调。
已发布本地音频首帧回调。
自从 v3.1.2。
SDK 会在以下三种时机触发该回调:
joinChannel
成功加入频道后。muteLocalAudioStream(true)
,再调用 muteLocalAudioStream(false)
后。disableAudio
,再调用 enableAudio
后。已显示本地视频首帧回调。
第一帧本地视频显示在本地视图上时,触发此回调。
已发布本地视频首帧回调。
自从 v3.1.2。
SDK 会在以下三种时机触发该回调:
joinChannel
成功加入频道后。muteLocalVideoStream(true)
,再调用muteLocalVideoStream(false)
后。disableVideo
,再调用enableVideo
后。已解码远端音频首帧回调。
已接收远端音频首帧回调。
已完成远端视频首帧解码回调。
已显示远端视频首帧回调。
加入频道回调。
表示客户端已经登入服务器,且分配了频道 ID 和用户 ID。频道 ID 的分配是
根据 joinChannel
方法中指定的频道名称。如果调用 joinChannel
时
并未指定用户 ID,服务器就会分配一个。
通话前网络上下行 Last mile 质量探测报告回调。
在调用 startLastmileProbeTest
之后,SDK 会在约 30 秒内返回该回调。
通话前网络上下行 last mile 质量报告回调。
该回调描述本地用户在加入频道前的 last mile 网络探测的结果,其中 last mile 是指设备到声网边缘服务器的网络状态。
在 enableLastmileTest
之后,该回调函数每 2 秒触发一次。
离开频道回调。
App 调用 leaveChannel
方法时,SDK 提示 App 离开频道成功。
在该回调方法中,App 可以得到此次通话的总通话时长、SDK 收发数据的流量等信息。
本地音频状态发生改变回调。
本地音频的状态发生改变时(包括本地麦克风录制状态和音频编码状态),SDK 会触发该回调报告当前的本地音频状态。 在本地音频出现故障时,该回调可以帮助你了解当前音频的状态以及出现故障的原因,方便你排查问题。
Note
当状态为 Failed
时,你可以在 error
参数中查看返回的错误信息。
通话中本地音频流的统计信息回调。
该回调描述本地设备发送音频流的统计信息。SDK 每 2 秒触发该回调一次。
本地发布流已回退为音频流回调。
如果你调用了设置本地推流回退选项 setLocalPublishFallbackOption
接口并将 option
设置为 AudioOnly
时,当上行网络环境不理想、本地发布的媒体流回退为音频流时,
或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。
如果本地推流已回退为音频流,远端的 App 上会收到 RemoteVideoStateChanged
的回调。
本地用户成功注册 User Account 回调。
本地用户成功调用 registerLocalUserAccount
方法注册用户 User Account,或
调用 joinChannelWithUserAccount
加入频道后,SDK 会触发该回调,
并告知本地用户的 UID 和 User Account。
本地视频状态发生改变回调。
本地视频的状态发生改变时,SDK 会触发该回调返回当前的本地视频状态;
当状态为 Failed
时,你可以在 error
参数中查看返回的错误信息。
该接口在本地视频出现故障时,方便你了解当前视频的状态以及出现故障的原因,方便排查问题。
通话中本地视频流的统计信息回调。
该回调描述本地设备发送视频流的统计信息,每 2 秒触发一次。
媒体引擎成功加载的回调。
媒体引擎成功启动的回调。
接收端已接收 Metadata。
麦克风状态已改变回调。
通话中每个用户的网络上下行 last mile 质量报告回调。
该回调描述每个用户在通话中的 last mile 网络状态,其中 last mile 是指设备到声网边缘服务器的网络状态。 该回调每 2 秒触发一次。如果远端有多个用户/主播,该回调每 2 秒会被触发多次。
Note
用户不发流时,txQuality
为 Unknown
;用户不收流时,rxQuality
为 Unknown
。
本地网络类型发生改变回调。
本地网络连接类型发生改变时,SDK 会触发该回调,并在回调中明确当前的网络连接类型。 你可以通过该回调获取正在使用的网络类型;当连接中断时,该回调能辨别引起中断的原因是网络切换还是网络条件不好。
代理连接状态回调。
重新加入频道回调。
有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法。
远端音频状态发生改变回调。
远端用户(通信场景)或主播(直播场景)音频状态发生改变时,SDK 会触发该回调向本地用户报告当前的远端音频流状态。
Note
当频道内的用户(通信场景)或主播(直播场景)的人数超过 17 时,该回调可能不准确。
通话中远端音频流的统计信息回调。
该回调描述远端用户在通话中端到端的音频流统计信息,针对每个远端用户/主播每 2 秒触发一次。 如果远端同时存在多个用户/主播,该回调每 2 秒会被触发多次。
当网络发生丢包时,因 FEC(Forward Error Correction,向前纠错码)或重传恢复,最终的音频丢帧率不高,则可以认为整个质量较好。
通话中远端音频流传输的统计信息回调。
远端订阅流已回退为音频流回调或因网络质量改善,恢复为音视频流。
如果你调用了设置远端订阅流回退选项 setRemoteSubscribeFallbackOption
接口并
将 option
设置为 AudioOnly
时,当下行网络环境不理想、仅接收远端音频流时,
或当下行网络改善、恢复订阅音视频流时,会触发该回调。
Note
远端订阅流因弱网环境不能同时满足音视频而回退为小流时,你可以使用 [RemoteVideoStats
]{RtcEngineEvents.RemoteVideoStats} 来监控远端视频大小流的切换。
远端用户视频状态发生已变化回调。
通话中远端视频流的统计信息回调。
该回调描述远端用户在通话中端到端的视频流状态,针对每个远端用户/主播每 2 秒触发一次。 如果远端同时存在多个用户/主播,该回调每 2 秒会被触发多次。
通话中远端视频流传输的统计信息回调。
Token 过期回调。
在调用 joinChannel
时如果指定了 Token,
由于 Token 具有一定的时效,在通话过程中 SDK 可能由于网络原因和服务器失去连接,重连时可能需要新的 Token。该回调通知 App 需要生成新的 Token,
并需调用 joinChannel
重新加入频道。
当前通话统计回调。 该回调在通话中每两秒触发一次。
RTMP/RTMPS 推流事件回调。
自从 v3.1.2。
RTMP/RTMPS 推流状态发生改变回调。该回调返回本地用户调用 addPublishStreamUrl
或 removePublishStreamUrl
方法的结果。
RTMP/RTMPS 推流状态发生改变时,SDK 会触发该回调,并在回调中明确状态发生改变的 URL 地址及当前推流状态;当推流状态为 Failure
时,你可以在 errCode
参数中查看返回的错误信息。
该回调方便推流用户了解当前的推流状态;推流出错时,你可以通过返回的错误码了解出错的原因,方便排查问题。
接收到对方数据流消息的回调。
该回调表示本地用户收到了远端用户调用 sendStreamMessage
方法发送的流消息。
接收对方数据流消息发生错误的回调。
该回调表示本地用户未收到远端用户调用 sendStreamMessage
方法发送的流消息。
开启旁路推流的结果回调。
停止旁路推流的结果回调。
Token 服务即将过期回调。
在调用 joinChannel
时如果指定了 Token,
由于 Token 具有一定的时效,在通话过程中如果 Token 即将失效,SDK 会提前 30 秒触发该回调,提醒 App 更新 Token。
当收到该回调时,你需要重新在服务端生成新的 Token,然后调用 renewToken
将新生成的 Token 传给 SDK。
旁路推流设置被更新回调。
setLiveTranscoding
方法中的直播转码参数 LiveTranscoding
更新时,
该回调会被触发,并向主播报告更新信息。
Note
首次调用 setLiveTranscoding
方法设置转码参数时,不会触发该回调。
远端用户开/关视频模块回调。
提示有远端用户启用/关闭了视频功能。
该回调是由远端用户调用 enableVideo
或 disableVideo
方法
开启或关闭视频模块触发的。
Note
当频道内的用户(通信场景)或主播(直播场景)的人数超过 17 时,声网建议你不要使用该回调。
远端用户信息已更新回调。
远端用户加入频道后, SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表, 并在本地触发该回调。
远端用户(通信场景)/主播(直播场景)加入当前频道回调。
该回调在如下情况下会被触发:
joinChannel
方法加入频道。setClientRole
将用户角色改变为主播。Note
直播场景下:
远端用户停止/恢复发送音频流回调。
提示有其他用户将他的音频流静音/取消静音。
该回调是由远端用户调用 muteLocalAudioStream
方法关闭或开启音频发送触发的。
Note
当频道内的用户(通信场景)或主播(直播场景)的人数超过 17 时,声网建议你不要使用该回调。
远端用户停止/恢复发送视频流回调。
该回调是由远端用户调用 muteLocalVideoStream
方法关闭或开启视频发送触发的。
Note
当频道内的用户(通信场景)或主播(直播场景)的人数超过 17 时,声网建议你不要使用该回调。
远端用户(通信场景)/主播(直播场景)离开当前频道回调。
提示有远端用户/主播离开了频道(或掉线)。用户离开频道有两个原因,即正常离开和超时掉线:
视频发布状态改变回调。
自从 v3.1.2。
本地或远端视频大小或旋转信息发生改变回调。
视频功能停止回调。
视频订阅状态发生改变回调。
自从 v3.1.2。
发生警告回调。
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)警告。通常情况下,
SDK 上报的警告信息 App 可以忽略,SDK 会自动恢复。 例如和服务器失去连接时,SDK 可能会
上报 LookupChannelTimeout
警告,同时自动尝试重连。
直播场景下切换用户角色失败回调。
报告本地用户的语音音调。
录制信息更新回调。
录制状态发生改变回调。
报告超分辨率功能是否成功开启。(beta 功能)
自从 v3.5.2
调用 enableRemoteSuperResolution
后,SDK 触发该回调报告超分辨率是否成功开启。如果未成功开启,请通过 reason
排查问题。
报告虚拟背景是否成功开启。
自从 v3.5.0
调用 enableVirtualBackground
后,SDK 触发该回调报告虚拟背景是否成功开启。
Note
如果虚拟背景中自定义的背景图为 PNG、JPG 格式的图片,该回调的触发时机会延迟到图片读取完毕。
报告 Wi-Fi 连接质量不佳的原因和改善 Wi-Fi 连接的操作建议。
报告 Wi-Fi 加速效果。
主回调事件。
RtcEngineEvents
接口类用于 SDK 向 App 发送回调事件通知, App 通过继承该接口类的方法获取 SDK 的事件通知。 接口类的所有方法都有缺省(空)实现, App 可以根据需要只继承关心的事件。在回调方法中,App 不应该做耗时或者调用可能会引起阻塞的 API(如 SendMessage),否则可能影响 SDK 的运行。