监测到最活跃用户回调。 成功调用 enableAudioVolumeIndication 后,SDK 会持续监测音量最大的远端用户,并统计该用户 被判断为音量最大者的次数。当前时间段内,该次数累积最多的远端用户为最活跃的用户。
当频道内用户数量大于或等于 2 且有活跃用户时,SDK 会触发该回调并报告最活跃用户的 uid
。
onActiveSpeaker
回调。uid
。远端最活跃用户的 ID。
API 方法已执行回调。
当该方法调用失败时 SDK 返回的错误码。如果方法调用失败,会返回错误码 ERROR_CODE_TYPE 。 如果该方法调用成功,SDK 将返回 0。
SDK 执行的 API。
SDK 调用 API 的调用结果。
音频设备变化回调。 提示系统音频设备状态发生改变,比如耳机被拔出。
设备 ID。
设备类型定义: MEDIA_DEVICE_TYPE 。
设备状态定义: MEDIA_DEVICE_STATE_TYPE 。
回放、录音设备、或 App 的音量发生改变。
设备类型定义: MEDIA_DEVICE_TYPE 。
音量:范围 [0,255]。
本地音效文件播放已结束回调。 当播放音效结束后,会触发该回调。
指定音效的 ID。每个音效均有唯一的 ID。
本地音乐文件播放已结束回调。
本地用户的音乐文件播放状态已改变回调。 该回调在音乐文件播放状态发生改变时触发,并报告当前的播放状态和错误码。 如果本地音乐文件不存在、文件格式不支持或无法访问在线音乐文件 URL,SDK 会返回警告码 WARN_AUDIO_MIXING_OPEN_ERROR (701)。
音乐文件播放状态,详见 AUDIO_MIXING_STATE_TYPE
错误码,详见 AUDIO_MIXING_ERROR_TYPE
音频发布状态改变回调。
频道名。
之前的发布状态,详见 STREAM_PUBLISH_STATE
当前的发布状态,详见 STREAM_PUBLISH_STATE
两次状态变化时间间隔(毫秒)。
用户 ID,指定是谁发的音频流。
语音质量,详见: QUALITY_TYPE 。
音频包从发送端到接收端的延迟(毫秒)。包括声音采样前处理、网络传输、网络抖动缓冲引起的延迟。
音频包从发送端到接收端的丢包率 (%)。
语音路由已发生变化回调。 当语音路由发生变化时,SDK 会触发此回调。
当前的语音路由。详见: AUDIO_ROUTE_TYPE 。
音频订阅状态发生改变回调。
频道名。
远端用户的 ID。
之前的订阅状态,详见 STREAM_SUBSCRIBE_STATE
当前的订阅状态,详见 STREAM_SUBSCRIBE_STATE
两次状态变化时间间隔(毫秒)。
用户音量提示回调。
该回调默认禁用,你可以通过 enableAudioVolumeIndication 开启。开启后,只要频道内有发流用户,
SDK 会在加入频道后按 enableAudioVolumeIndication
中设置的时间间隔触发 onAudioVolumeIndication
回调。每次会触发两个
onAudioVolumeIndication
回调,一个报告本地发流用户的音量相关信息,另一个报告瞬时音量最高的远端用户(最多 3 位)的音量相关信息。
Note
启用该功能后,如果有用户将自己静音(调用了 muteLocalAudioStream),SDK 行为会受如下影响:
用户音量信息,详见 AudioVolumeInfo 数组。
如果 speakers
为空,则表示远端用户不发流或没有远端用户。
用户数量。
speakerNumber
始终为 1
。speakerNumber
取值范围为 [0,3]
。如果远端发流用户数量大于 3,则此回调中 speakerNumber
值为 3
。混音后的总音量,取值范围为 [0,255]。
totalVolume
为本地发流用户的音量。totalVolume
为瞬时音量最高的远端用户(最多 3 位)混音后的总音量。如果用户调用了 startAudioMixing,则 totalVolume
为混音后的音量。
摄像头曝光区域已改变回调。
该回调是由本地用户调用 setCameraExposurePosition
方法改变曝光位置触发的。
发生改变的曝光区域的 x 坐标。
发生改变的曝光区域的 y 坐标。
发生改变的曝光区域的宽度。
发生改变的曝光区域的高度。
相机对焦区域已改变回调。 该回调表示相机的对焦区域发生了改变。 该回调是由本地用户调用 setCameraFocusPositionInPreview 方法改变对焦位置触发的。
发生改变的对焦区域的 x 坐标。
发生改变的对焦区域的 y 坐标。
发生改变的对焦区域的宽度。
发生改变的对焦区域的高度。
跨频道媒体流转发事件回调。
该回调报告跨频道媒体流转发过程中发生的事件。
跨频道媒体流转发事件码。详见 CHANNEL_MEDIA_RELAY_EVENT。
跨频道媒体流转发状态发生改变回调。
当跨频道媒体流转发状态发生改变时,SDK 会触发该回调, 并报告当前的转发状态以及相关的错误信息。
跨频道媒体流转发状态。详见 CHANNEL_MEDIA_RELAY_STATE 。
跨频道媒体流转发出错的错误码。详见 CHANNEL_MEDIA_RELAY_ERROR 。
直播场景下用户角色已切换回调。 直播场景下,当用户切换角色时会触发此回调,即主播切换为观众时,或观众切换为主播时。 该回调由本地用户在加入频道后调用 setClientRole 改变用户角色触发的。
切换前的角色: CLIENT_ROLE_TYPE 。
切换后的角色: CLIENT_ROLE_TYPE 。
网络连接中断回调。
网络连接丢失回调。 SDK 在调用 joinChannel 后无论是否加入成功,只要 10 秒和服务器无法连接就会触发该回调。
与 onConnectionInterrupted 的区别是:
onConnectionInterrupted
回调一定是发生在加入频道成功后,且 SDK 刚失去和服务器连接超过 4 秒时触发。onConnectionLost
回调是无论之前加入频道是否成功,只要 10 秒内和服务器无法建立连接都会触发。如果 SDK 在断开连接后,20 分钟内还是没能重新加入频道,SDK 会停止尝试重连。
网络连接状态已改变回调。 该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态和引起网络状态改变的原因。
详见: CONNECTION_STATE_TYPE 。
发生错误回调。 该回调方法表示 SDK 运行时出现了(网络或媒体相关的)错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。 比如启动通话失败时,SDK 会上报 ERR_START_CALL 错误。App 可以提示用户启动通话失败,并调用 leaveChannel 退出频道。
错误代码: ERROR_CODE_TYPE 。
错误描述。
报告本地人脸检测结果。
调用 enableFaceDetection (true) 开启本地人脸检测后,你可以通过该回调实时获取以下人脸检测的信息:
其中,人脸距设备屏幕的距离由 SDK 通过摄像头采集的画面大小和人脸在画面中的位置拟合计算得出。
Note
distance
)值有一定误差,请不要用它进行精确计算。摄像头采集画面的宽度 (px)。
摄像头采集画面的高度 (px)。
检测到的人脸信息:
x
:人脸在画面中的 x 坐标 (px)。以摄像头采集画面的左上角为原点,x 坐标为人脸左上角相对于原点的横向位移。y
:人脸在画面中的 y 坐标 (px)。以摄像头采集画面的左上角为原点,y 坐标为人脸左上角相对原点的纵向位移。width
:人脸在画面中的宽度 (px)。height
:人脸在画面中的高度 (px)。人脸距设备屏幕的距离 (cm)。
检测的人脸数量。如果为 0,则表示没有检测到人脸。
已发送本地音频首帧回调。
从调用 joinChannel 方法直至该回调被触发的时间。
已发布本地音频首帧回调。
SDK 会在以下三种时机触发该回调:
从调用 joinChannel 方法到触发该回调的时间间隔(毫秒)。
已显示本地视频首帧回调。 本地视频首帧显示在本地视图上时,SDK 会触发此回调。
本地渲染视频的宽 (px) 。
本地渲染视频的高 (px)。
从调用 joinChannel 到发生此事件过去的时间(毫秒)。如果在 joinChannel 前调用了 startPreview,则是从 startPreview 到发生此事件过去的时间。
已发布本地视频首帧回调。
SDK 会在以下三种时机触发该回调:
从调用 joinChannel 方法到触发该回调的时间间隔(毫秒)。
已解码远端音频首帧的回调。
远端用户 ID
从本地用户调用 joinChannel 直至该回调触发的延迟,单位为毫秒。
已接收远端音频首帧回调。
发送音频帧的远端用户的用户 ID。
从调用 joinChannel 方法直至该回调被触发的时间。
已接收到远端视频并完成解码回调。
用户 ID,指定是哪个用户的视频流。
视频流宽(px)。
视频流高(px)。
从本地调用 joinChannel 开始到该回调触发的延迟(毫秒)。
已显示首帧远端视频回调。 第一帧远端视频显示在视图上时,触发此调用。 App 可在此调用中获知出图时间(elapsed)。
用户 ID,指定是哪个用户的视频流。
视频流宽(px)。
视频流高(px)。
从本地调用 joinChannel 到发生此事件过去的时间(毫秒)。
加入频道回调。
该回调方法表示该客户端成功加入了指定的频道。
channel ID 基于 joinChannel 中指定的 channel name 分配。如果调用 joinChannel
时并没有指定 user ID。
服务器会自动分配一个。
频道名。
用户 ID。如果 joinChannel 中指定了 uid,则此处返回该 ID;否则使用声网服务器自动分配的 ID。
从 joinChannel 开始到发生此事件过去的时间(毫秒)。
通话前网络质量探测报告回调。 通话前网络上下行 Last mile 质量探测报告回调。在调用 startLastmileProbeTest 之后, SDK 会在约 30 秒内返回该回调。
上下行 Last mile 质量探测结果。 详见: LastmileProbeResult。
通话前网络上下行 last mile 质量报告回调。 该回调描述本地用户在加入频道前的 last mile 网络探测的结果,其中 last mile 是指设备到声网边缘服务器的网络状态。 在调用 enableLastmileTest 之后,该回调函数每 2 秒触发一次。如果远端有多个用户/主播,该回调 每 2 秒会被触发多次。
网络上下行质量,基于上下行网络的丢包率和抖动计算,探测结果主要反映上行网络的状态。 详见: QUALITY_TYPE 。
离开频道回调。 App 调用 leaveChannel 方法时,SDK提示 App 离开频道成功。在该回调方法中,App 可以得到此次通话的总通话时长、 SDK 收发数据的流量等信息。App 通过该回调获取通话时长以及 SDK 接收到或发送的数据统计信息。
本地音频状态发生改变回调。
本地音频的状态发生改变时(包括本地麦克风录制状态和音频编码状态), SDK 会触发该回调报告当前的本地音频状态。在本地音频出现故障时, 该回调可以帮助你了解当前音频的状态以及出现故障的原因,方便你排查问题。
当前的本地音频状态。详见 LOCAL_AUDIO_STREAM_STATE 。
本地音频出错原因。详见 LOCAL_AUDIO_STREAM_ERROR 。
通话中本地音频流的统计信息回调。
该回调描述本地设备发送音频流的统计信息。SDK 每 2 秒触发该回调一次。
本地音频统计数据。详见 LocalAudioStats。
本地发布流已回退为音频流回调。 如果你调用了 setLocalPublishFallbackOption 接口并将 option 设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY ,当上行网络环境不理想、 本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。
本地用户成功注册 User Account 回调。 本地用户成功调用 registerLocalUserAccount 方法注册用户 User Account 或 调用 joinChannelWithUserAccount 加入频道后, SDK 会触发该回调,并告知本地用户的 UID 和 User Account。
本地用户的 UID
本地用户的 User Account
本地视频状态发生改变回调 本地视频的状态发生改变时,SDK 会触发该回调返回当前的本地视频状态。 在本地视频出现故障时,你可以通过该回调了解当前视频的状态以及出现故障的原因,方便排查问题。
本地视频状态,详见: LOCAL_VIDEO_STREAM_STATE 。当本地视频状态为 LOCAL_VIDEO_STREAM_STATE_FAILED (3) 时,你可以在 error
参数中查看返回的错误原因。
本地视频出错原因,详见: LOCAL_VIDEO_STREAM_ERROR 。
本地视频流统计信息回调。 该回调描述本地设备发送视频流的统计信息,每 2 秒触发一次。
本地视频流统计信息。详见: LocalVideoStats。
媒体引擎成功加载的回调。
媒体引擎成功启动的回调。
接收端已收到 Metadata。 当接收到远端用户发送的 Metadata 时,SDK 会触发该回调。
麦克风状态已改变回调。
通话中每个用户的网络上下行 last mile 质量报告回调。 该回调描述每个用户在通话中的 last mile 网络状态,其中 last mile 是指设备到声网边缘服务器的网络状态。 该回调每 2 秒触发一次。如果远端有多个用户,该回调每 2 秒会被触发多次。
用户 ID。表示该回调报告的是持有该 ID 的用户的网络质量。当 uid 为 0 时,返回的是本地用户的网络质量。
该用户的上行网络质量,基于发送码率、上行丢包率、平均往返时延和网络抖动计算。该值代表当前的上行网络质量, 帮助判断是否可以支持当前设置的视频编码属性。假设上行码率是 1000 Kbps,那么支持直播场景下 640 × 480 的分辨率、15 fps 的帧率没有问题, 但是支持 1280 × 720 的分辨率就会有困难。详见 QUALITY_TYPE 。
该用户的下行网络质量,基于下行网络的丢包率、平均往返延时和网络抖动计算。详见 QUALITY_TYPE 。
本地网络类型发生改变回调。 本地网络连接类型发生改变时,SDK 会触发该回调,并在回调中明确当前的网络连接类型。 你可以通过该回调获取正在使用的网络类型;当连接中断时,该回调能辨别引起中断的原因是网络切换还是网络条件不好。
详见: NETWORK_TYPE 。
重新加入频道回调。 有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法。
频道名。
用户 ID。
从开始重连到重连成功的时间(毫秒)。
远端音乐文件播放已开始回调。 当远端有用户调用 startAudioMixing 播放本地音乐文件,会触发该回调。
远端音乐文件播放已结束回调。 当远端有用户播放本地音乐文件结束,会触发该回调。
远端音频流状态发生改变回调。 远端用户/主播音频状态发生改变时,SDK 会触发该回调向本地用户报告当前的远端音频流状态。
发生音频状态改变的远端用户 ID。
远端音频流状态。 详见 REMOTE_AUDIO_STATE 。
远端音频流状态改变的具体原因。详见 REMOTE_AUDIO_STATE_REASON 。
从本地用户调用 joinChannel 方法到发生本事件经历的时间,单位为 ms。
通话中远端音频流的统计信息回调。用于取代 onAudioQuality 回调。 该回调描述远端用户在通话中端到端的音频流统计信息。该回调函数针对每个发送音频流的远端用户/主播每 2 秒触发一次。如果远端有多个用户/主播发送音频流, 该回调每 2 秒会被触发多次。
接收到的远端音频统计数据,详细定义见: RemoteAudioStats。
用户 ID,指定是哪个用户/主播的音频包。
音频包从发送端到接收端的延时(毫秒)。
音频包从发送端到接收端的丢包率 (%)。
远端音频包的接收码率(Kbps)。
远端订阅流已回退为音频流回调。
如果你调用了 setRemoteSubscribeFallbackOption 接口并将 option 设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY ,当下行 网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
远端用户的用户 ID。
远端视频状态发生改变回调。
发生视频状态改变的远端用户 ID。
远端视频流状态。详见 REMOTE_VIDEO_STATE 。
远端视频流状态改变的具体原因。详见 REMOTE_VIDEO_STATE_REASON 。
从本地用户调用 joinChannel 方法到发生本事件经历的时间,单位为 ms。
通话中远端视频流的统计信息回调。
该回调描述远端用户在通话中端到端的视频流统计信息, 针对每个远端用户/主播每 2 秒触发一次。如果远端同时存在多个用户/主播, 该回调每 2 秒会被触发多次。
远端视频统计数据。详见: RemoteVideoStats 。
用户 ID,指定是哪个用户/主播的视频包。
视频包从发送端到接收端的延时(毫秒)。
视频包从发送端到接收端的丢包率 (%)。
远端视频包的接收码率(Kbps)。
Token 已过期回调。
在调用 joinChannel , 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中 SDK 可能由于网络原因
和服务器失去连接,重连时可能需要新的 Token。
该回调通知 App 需要生成新的 Token,然后调用 joinChannel
,使用新的 Token 重新加入频道。
当前通话统计回调。 SDK 定期向 App 报告当前通话的统计信息,每两秒触发一次。
RTMP 推流事件回调。
RTMP 推流 URL。
RTMP 推流事件码。详见 RTMP_STREAMING_EVENT。
RTMP 推流状态发生改变回调。
该回调返回本地用户调用 addPublishStreamUrl 或 removePublishStreamUrl 方法的结果。 RTMP 推流状态发生改变时,SDK 会触发该回调,并在回调中明确状态发生改变的 URL 地址及当前推流状态。 该回调方便推流用户了解当前的推流状态;推流出错时,你可以通过返回的错误码了解出错的原因,方便排查问题。
推流状态发生改变的 URL 地址。
当前的推流状态,详见 RTMP_STREAM_PUBLISH_STATE 。
推流错误信息,详见 RTMP_STREAM_PUBLISH_ERROR 。
接收到对方数据流消息的回调。 该回调表示本地用户收到了远端用户调用 sendStreamMessage 方法发送的流消息。
发送消息的用户 ID。
Stream ID。
接收到的数据。
数据长度。
接收对方数据流消息发生错误的回调。 该回调表示本地用户未收到远端用户调用 sendStreamMessage 方法发送的流消息。
发送消息的用户 ID。
Stream ID。
错误码: ERROR_CODE_TYPE。
丢失的消息数量。
数据流中断时,后面缓存的消息数量。
旁路推流已开启回调。
主播推流的 URL 地址 。
LiveTranscoding
,SDK 会回调
ERR_INVALID_ARGUMENT
。旁路推流已停止回调。
被删除的 RTMP 推流地址。
Token 服务即将过期回调。 在调用 joinChannel 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中如果 Token 即将失效,SDK 会提前 30 秒触发该回调,提醒 App 更新 Token。 当收到该回调时,用户需要重新在服务端生成新的 Token,然后调用 renewToken 将新生成的 Token 传给 SDK。
即将服务失效的 Token。
旁路推流设置已被更新回调。
setLiveTranscoding 方法中的直播参数 LiveTranscoding
更新时,onTranscodingUpdated
回调会被触发并向主播报告更新信息。
其他用户启用/关闭本地视频。
用户 ID,提示是哪个用户的视频流。
远端用户开关本地视频采集回调。
用户 ID,提示是哪个用户的视频流。
远端用户信息已更新回调。 远端用户加入频道后, SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表, 并在本地触发该回调。
远端用户(通信场景)/主播(直播场景)加入当前频道回调。
该回调在如下情况下会被触发:
Note
直播场景下,
新加入频道的远端用户/主播 ID。
从本地用户调用 joinChannel 到该回调触发的延迟(毫秒)。
远端用户静音回调。
用户 ID。
该用户是否静音:
远端用户暂停/恢复发送视频流回调。
远端用户 ID。
该用户是否暂停发送其视频流
远端用户(通信场景)/主播(直播场景)离开当前频道回调。 提示有远端用户/主播离开了频道(或掉线)。用户离开频道有两个原因,即正常离开和超时掉线:
离线用户或主播的用户 ID。
离线原因: USER_OFFLINE_REASON_TYPE 。
视频设备变化回调。 该回调提示系统视频设备状态发生改变,比如被拔出或移除。如果设备已使用外接摄像头采集,外接摄像头被拔开后,视频会中断。
设备 ID。
设备类型: MEDIA_DEVICE_TYPE 。
设备状态: MEDIA_DEVICE_STATE_TYPE 。
视频发布状态改变回调。
频道名。
之前的发布状态,详见 STREAM_PUBLISH_STATE
当前的发布状态,详见 STREAM_PUBLISH_STATE
两次状态变化时间间隔(毫秒)。
本地或远端视频大小和旋转信息发生改变回调。
图像尺寸和旋转信息发生变化的用户的用户 ID(本地用户的 uid 为 0)。
视频流的宽度(像素)。
视频流的高度(像素)。
旋转信息 [0,360)。
视频功能已停止回调。
视频订阅状态发生改变回调。
频道名。
远端用户的 ID。
之前的订阅状态,详见 STREAM_SUBSCRIBE_STATE
当前的订阅状态,详见 STREAM_SUBSCRIBE_STATE
两次状态变化时间间隔(毫秒)。
发生警告回调。 该回调方法表示 SDK 运行时出现了(网络或媒体相关的)警告。通常情况下,SDK 上报的警告信息 App 可以忽略,SDK 会自动恢复。比如和服务器失去连接时, SDK 可能会上报 WARN_OPEN_CHANNEL_TIMEOUT 警告,同时自动尝试重连。
警告代码: WARN_CODE_TYPE 。
警告描述。
AgoraRtcEvents
类用于向应用程序发送回调通知。