io.agora.rtc.ILocalUserObserver接口 参考

  • Java

更新时间不可用

ILocalUserObserver 接口。

成员函数说明

onAudioMetaDataReceived()

void io.agora.rtc.ILocalUserObserver.onAudioMetaDataReceived(AgoraLocalUser agoraLocalUser, String userId, byte[] metaData)

接收到对方音频 Metadata 数据的回调。该回调表示本地用户收到了远端用户调用 sendAudioMetaData 方法发送的音频 Metadata 数据。

参数
参数名描述
agoraLocalUser

一个 AgoraLocalUser 对象。

userId

发送音频 Metadata 数据的用户 ID。

metaData

音频 Metadata 数据。

表格内容超出当前宽度,可横向滚动查看更多列。

onAudioPublishStateChanged()

void io.agora.rtc.ILocalUserObserver.onAudioPublishStateChanged(AgoraLocalUser agora_local_user, String channel, int old_state, int new_state, int elapse_since_last_state)

音频发布状态变更后触发。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

channel

用户所在频道的频道名。

old_state

之前的发布状态:

  • 0:加入频道后的初始发布状态。
  • 1:发布失败。
  • 2:正在发布。
  • 3:发布成功。
new_state

新的发布状态:

  • 0:加入频道后的初始发布状态。
  • 1:发布失败。
  • 2:正在发布。
  • 3:发布成功。
elapse_since_last_state

变更为新状态之后的时长(毫秒)。

表格内容超出当前宽度,可横向滚动查看更多列。

onAudioSubscribeStateChanged()

void io.agora.rtc.ILocalUserObserver.onAudioSubscribeStateChanged(AgoraLocalUser agora_local_user, String channel, String user_id, int old_state, int new_state, int elapse_since_last_state)

对远端用户音频订阅状态变更时触发。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

channel

用户所在频道的频道名。

user_id

订阅的远端用户的 ID。

old_state

之前的订阅状态:

  • 0:加入频道后的初始订阅状态。
  • 1:订阅失败。
  • 2:正在订阅。
  • 3:收到了远端流,订阅成功。
new_state

新的订阅状态:

  • 0:加入频道后的初始订阅状态。
  • 1:订阅失败。
  • 2:正在订阅。
  • 3:收到了远端流,订阅成功。
elapse_since_last_state

变更为新状态之后的时长(毫秒)。

表格内容超出当前宽度,可横向滚动查看更多列。

onAudioTrackPublishSuccess()

void io.agora.rtc.ILocalUserObserver.onAudioTrackPublishSuccess(AgoraLocalUser agora_local_user, AgoraLocalAudioTrack agora_local_audio_track)

在第一个本地音频包发送时触发,表明本地音频轨道已成功发布。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

agora_local_audio_track

一个 AgoraLocalAudioTrack 对象。

表格内容超出当前宽度,可横向滚动查看更多列。

onFirstRemoteAudioDecoded()

void io.agora.rtc.ILocalUserObserver.onFirstRemoteAudioDecoded(AgoraLocalUser agora_local_user, String user_id, int elapsed)

在 SDK 解码第一个收到的远端音频帧时触发。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

user_id

远端用户的 ID。

elapsed

远端用户连接频道之后经过的时间(毫秒)。

表格内容超出当前宽度,可横向滚动查看更多列。

onFirstRemoteAudioFrame()

void io.agora.rtc.ILocalUserObserver.onFirstRemoteAudioFrame(AgoraLocalUser agora_local_user, String user_id, int elapsed)

接收到远端用户发送的第一个音频帧时触发。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

user_id

远端用户的 ID。

elapsed

远端用户连接频道之后经过的时间(毫秒)。

表格内容超出当前宽度,可横向滚动查看更多列。

onFirstRemoteVideoDecoded()

void io.agora.rtc.ILocalUserObserver.onFirstRemoteVideoDecoded(AgoraLocalUser agora_local_user, String user_id, int width, int height, int elapsed)

在 SDK 解码第一个视频帧时触发。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

user_id

远端用户 ID。

width

视频帧宽度(像素)。

height

视频帧高度(像素)。

elapsed

远端用户连接频道之后经过的时间(毫秒)。

表格内容超出当前宽度,可横向滚动查看更多列。

onFirstRemoteVideoFrame()

void io.agora.rtc.ILocalUserObserver.onFirstRemoteVideoFrame(AgoraLocalUser agora_local_user, String user_id, int width, int height, int elapsed)

在第一个远端发送的视频帧渲染时触发。 当用户的视频窗口显示第一个远端发送的视频帧时,SDK 会触发该回调。App 可以获取从用户加入频道到第一个视频帧渲染出来的时间。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

user_id

远端用户 ID。

width

视频帧宽度(像素)。

height

视频帧高度(像素)。

elapsed

远端用户连接频道之后经过的时间(毫秒)。

表格内容超出当前宽度,可横向滚动查看更多列。

onIntraRequestReceived()

void io.agora.rtc.ILocalUserObserver.onIntraRequestReceived(AgoraLocalUser agora_local_user)

本地用户收到来自远端用户的关键帧请求时触发。该回调提醒本地用户编码关键帧。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

表格内容超出当前宽度,可横向滚动查看更多列。

onLocalAudioTrackStateChanged()

void io.agora.rtc.ILocalUserObserver.onLocalAudioTrackStateChanged(AgoraLocalUser agora_local_user, AgoraLocalAudioTrack agora_local_audio_track, int state, int error)

在本地音频轨道状态变化时触发。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

agora_local_audio_track

一个 ILocalAudioTrack对象。

state

本地音频轨道状态:

  • 0:本地音频位于初始状态。
  • 1:音频录制设备成功启动。
  • 2:第一个音频帧成功完成编码。
  • 3:本地音频启动失败。
error

本地音频失败的原因:

  • 0:本地音频状态正常。
  • 1:原因未知。
  • 2:没有权限使用本地音频设备。
  • 3:麦克风被占用。
  • 4:本地音频录制失败。检查录制设备是否正常工作。
  • 5:本地音频编码失败。
表格内容超出当前宽度,可横向滚动查看更多列。

onLocalAudioTrackStatistics()

void io.agora.rtc.ILocalUserObserver.onLocalAudioTrackStatistics(AgoraLocalUser agora_local_user, LocalAudioStats stats)

报告本地用户的音频统计信息。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

stats

本地用户的音频统计信息。

表格内容超出当前宽度,可横向滚动查看更多列。

onLocalVideoTrackStateChanged()

void io.agora.rtc.ILocalUserObserver.onLocalVideoTrackStateChanged(AgoraLocalUser agora_local_user, AgoraLocalVideoTrack agora_local_video_track, int state, int error)

onLocalVideoTrackStatistics()

void io.agora.rtc.ILocalUserObserver.onLocalVideoTrackStatistics(AgoraLocalUser agora_local_user, AgoraLocalVideoTrack agora_local_video_track, LocalVideoTrackStats stats)

报告本地视频轨道的统计信息。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

agora_local_video_track

一个 AgoraLocalVideoTrack 对象。

stats

本地视频轨道的统计信息。

表格内容超出当前宽度,可横向滚动查看更多列。

onRemoteAudioTrackStatistics()

void io.agora.rtc.ILocalUserObserver.onRemoteAudioTrackStatistics(AgoraLocalUser agora_local_user, AgoraRemoteAudioTrack agora_remote_audio_track, RemoteAudioTrackStats stats)

报告远端用户的音频统计信息。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

agora_remote_audio_track

一个 IRemoteAudioTrack 对象。

stats

远端用户的音频统计信息。

表格内容超出当前宽度,可横向滚动查看更多列。

onRemoteSubscribeFallbackToAudioOnly()

void io.agora.rtc.ILocalUserObserver.onRemoteSubscribeFallbackToAudioOnly(AgoraLocalUser agora_local_user, String user_id, int is_fallback_or_recover)

onRemoteVideoTrackStatistics()

void io.agora.rtc.ILocalUserObserver.onRemoteVideoTrackStatistics(AgoraLocalUser agora_local_user, AgoraRemoteVideoTrack agora_remote_video_track, RemoteVideoTrackStats stats)

报告远端视频轨道的统计信息。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

agora_remote_video_track

一个 AgoraRemoteVideoTrack 对象。

stats

远端视频轨道统计信息。

表格内容超出当前宽度,可横向滚动查看更多列。

onStreamMessage()

void io.agora.rtc.ILocalUserObserver.onStreamMessage(AgoraLocalUser agora_local_user, String user_id, int stream_id, String data, long length)

接收到数据流消息的回调。

该回调表示本地用户收到了远端用户调用 sendStreamMessage 方法发送的流消息。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

user_id

发送消息的用户 ID。

stream_id

接收到的消息的 Stream ID。

data

接收到的数据。

length

数据长度,单位为字节。

表格内容超出当前宽度,可横向滚动查看更多列。

onUserAudioTrackStateChanged()

void io.agora.rtc.ILocalUserObserver.onUserAudioTrackStateChanged(AgoraLocalUser agora_local_user, String user_id, AgoraRemoteAudioTrack agora_remote_audio_track, int state, int reason, int elapsed)

在远端音频轨道状态变化时触发。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

user_id

音频轨道状态改变的远端用户的 ID。

agora_remote_audio_track

一个 IRemoteAudioTrack 对象。

state

音频轨道当前状态:

  • 0:远端音频位于初始状态。
  • 1:第一个远端音频包被成功接收。
  • 2:远端音频流正常解码和播放。
  • 3:远端音频流卡顿。
  • 4:远端音频流启动失败。
reason

状态改变原因:

  • 0:音频状态发生改变时,会报告该原因。
  • 1:网络阻塞。
  • 2:网络恢复正常。
  • 3:本地用户停止接收远端音频流或本地用户禁用音频模块。
  • 4:本地用户恢复接收远端音频流或本地用户启动音频模块。
  • 5:远端用户停止发送音频流或远端用户禁用音频模块。
  • 6:远端用户恢复发送音频流或远端用户启用音频模块。
  • 7:远端用户离开频道。
elapsed

远端用户连接频道之后经过的时间(毫秒)。

表格内容超出当前宽度,可横向滚动查看更多列。

onUserAudioTrackSubscribed()

void io.agora.rtc.ILocalUserObserver.onUserAudioTrackSubscribed(AgoraLocalUser agora_local_user, String user_id, AgoraRemoteAudioTrack agora_remote_audio_track)

成功订阅远端用户发送的音频流时触发。

该回调表示本地用户已订阅指定远端音频轨道,并且收到首帧来自该轨道的音频。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

user_id

所接收的音频流的远端用户 ID。

agora_remote_audio_track

一个 IRemoteAudioTrack 对象。

表格内容超出当前宽度,可横向滚动查看更多列。

onUserInfoUpdated()

void io.agora.rtc.ILocalUserObserver.onUserInfoUpdated(AgoraLocalUser agora_local_user, String user_id, int msg, int val)

用户媒体信息更新时触发。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

user_id

用户 ID。

msg

用户媒体信息。

val

用户是否停止发流。

表格内容超出当前宽度,可横向滚动查看更多列。

onUserStateChanged()

void io.agora.rtc.ILocalUserObserver.onUserStateChanged(AgoraLocalUser agora_local_user, String user_id, int state)

远端用户状态更新时触发。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

user_id

远端用户 ID。

state

远端用户状态。

表格内容超出当前宽度,可横向滚动查看更多列。

onUserVideoTrackStateChanged()

void io.agora.rtc.ILocalUserObserver.onUserVideoTrackStateChanged(AgoraLocalUser agora_local_user, String user_id, AgoraRemoteVideoTrack agora_remote_video_track, int state, int reason, int elapsed)

在远端视频轨道状态变更时触发。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

user_id

远端用户 ID。

agora_remote_video_track

一个 AgoraRemoteVideoTrack 对象。

state

当前视频帧状态:

  • 0:远端视频默认初始状态。
  • 2:远端视频流正在解码,正常播放。
  • 3:远端视频流卡顿。
  • 4:远端视频流播放失败。
reason

状态改变原因:

  • 0:视频状态发生改变时,会报告该原因。
  • 1:网络阻塞。
  • 2:网络恢复正常。
  • 3:本地用户停止接收远端视频流或本地用户禁用视频模块。
  • 4:本地用户恢复接收远端视频流或本地用户启动视频模块。
  • 5:远端用户停止发送视频流或远端用户禁用视频模块。
  • 6:远端用户恢复发送视频流或远端用户启用视频模块。
  • 7:远端用户离开频道。
  • 8:弱网情况下,远端音视频流回退为音频流。
  • 9:网络情况改善时,远端音频流恢复为音视频流。
elapsed

远端用户连接频道之后经过的时间(毫秒)。

表格内容超出当前宽度,可横向滚动查看更多列。

onUserVideoTrackSubscribed()

void io.agora.rtc.ILocalUserObserver.onUserVideoTrackSubscribed(AgoraLocalUser agora_local_user, String user_id, VideoTrackInfo info, AgoraRemoteVideoTrack agora_remote_video_track)

成功订阅远端用户发送的视频流时触发。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

user_id

发送视频帧的远端用户 ID。

info

视频轨道信息。

agora_remote_video_track

An AgoraRemoteVideoTrack 对象.

表格内容超出当前宽度,可横向滚动查看更多列。

onVideoPublishStateChanged()

void io.agora.rtc.ILocalUserObserver.onVideoPublishStateChanged(AgoraLocalUser agora_local_user, String channel, int old_state, int new_state, int elapse_since_last_state)

视频发布状态变更后触发。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

channel

用户所在频道的频道名。

old_state

之前的发布状态:

  • 0:加入频道后的初始发布状态。
  • 1:发布失败。
  • 2:正在发布。
  • 3:发布成功。
new_state

新的发布状态:

  • 0:加入频道后的初始发布状态。
  • 1:发布失败。
  • 2:正在发布。
  • 3:发布成功。
elapse_since_last_state

变更为新状态之后的时长(毫秒)。

表格内容超出当前宽度,可横向滚动查看更多列。

onVideoSubscribeStateChanged()

void io.agora.rtc.ILocalUserObserver.onVideoSubscribeStateChanged(AgoraLocalUser agora_local_user, String channel, String user_id, int old_state, int new_state, int elapse_since_last_state)

对远端用户视频订阅状态变更时触发。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

channel

用户所在频道的频道名。

user_id

订阅的远端用户的 ID。

old_state

之前的订阅状态:

  • 0:加入频道后的初始订阅状态。
  • 1:订阅失败。
  • 2:正在订阅。
  • 3:收到了远端流,订阅成功。
new_state

新的订阅状态:

  • 0:加入频道后的初始订阅状态。
  • 1:订阅失败。
  • 2:正在订阅。
  • 3:收到了远端流,订阅成功。
elapse_since_last_state

变更为新状态之后的时长(毫秒)。

表格内容超出当前宽度,可横向滚动查看更多列。

onVideoTrackPublishSuccess()

void io.agora.rtc.ILocalUserObserver.onVideoTrackPublishSuccess(AgoraLocalUser agora_local_user, AgoraLocalVideoTrack agora_local_video_track)

在第一个本地视频包发送时触发,表明本地音视频轨道已成功发布。

参数
参数名描述
agora_local_user

一个 AgoraLocalUser 对象。

agora_local_video_track

一个 AgoraLocalVideoTrack 对象。

表格内容超出当前宽度,可横向滚动查看更多列。

该接口的文档由以下文件生成:

  • ILocalUserObserver.java

这个页面有帮助吗?