API Reference for android - ChannelCallback

更新时间: 2023-10-23 16:45:52

# ChannelCallback

# IRTCChannelEventListener

说明

监听和报告指定频道的事件和数据。

# localUserJoinedWithUid()

public void localUserJoinedWithUid(String channelId, long uid)

说明

加入频道回调。

参数

变量名 描述
channelId 频道号
uid 用户ID

# remotefirstVideoRecvWithUid()

public void remotefirstVideoRecvWithUid(String channelId, long uid)

说明

已完成远端视频首帧解码回调。

本地收到远端第一个视频帧并解码成功后,会触发该回调。有两种情况:
远端用户首次上线后发送视频
远端用户视频离线再上线后发送视频

参数

变量名 描述
uid 用户 ID,指定是哪个用户的视频流
channelId 频道ID

# remotefirstAudioRecvWithUid()

public void remotefirstAudioRecvWithUid(String channelId, long uid)

说明

已接收远端音频首帧回调

参数

变量名 描述
channelId 频道ID
uid 用户ID

# remoteUserJoinWithUid()

public void remoteUserJoinWithUid(String channelId, long uid)

说明

远端用户(通信场景)/主播(直播场景)加入当前频道回调。

通信场景下,该回调提示有远端用户加入了频道,并返回新加入用户的 ID; 如果加入之前,已经有其他用户在频道中了,新加入的用户也会收到这些已有用户加入频道的回调。
直播场景下,该回调提示有主播加入了频道,并返回该主播的用户 ID。 如果在加入之前,已经有主播在频道中了,新加入的用户也会收到已有主播加入频道的回调。

参数

变量名 描述
channelId 频道ID
uid 用户ID

# didOfflineOfUid()

public void didOfflineOfUid(String channelId, long uid)

说明

远端用户(通信场景)/主播(直播场景)离开当前频道回调。

提示有远端用户/主播离开了频道(或掉线)。用户离开频道有两个原因,即正常离开和超时掉线:
正常离开的时候,远端用户/主播会收到类似“再见”的消息,接收此消息后,判断用户离开频道
超时掉线的依据是,在一定时间内(约 20 秒),用户没有收到对方的任何数据包,则判定为对方掉线。在网络较差的情况下,有可能会误报。

参数

变量名 描述
channelId 频道ID
uid 用户ID

# didOccurError()

public void didOccurError(String channelId, RTCEngine.RTCEngineErrorCode code)

说明

错误回调

参数

变量名 描述
channelId 频道ID
code 错误码

# connectionChangedToState()

public void connectionChangedToState(String channelId, RTCConnectionStateType state, String reason)

说明

网络连接状态已改变回调

参数

变量名 描述
channelId 频道ID
state 网络状态
reason 原因描述

# onRemoteVideoStateChanged()

public void onRemoteVideoStateChanged(String channelId, long uid, int state)

说明

远端用户视频状态发生改变回调。

1.Starting
2.Decoding
3.Frozen 远端视频正常
4.Failed 远端视频卡住

参数

变量名 描述
channelId 频道ID
uid 用户ID
state 状态

# reportRtcStats()

public void reportRtcStats(String channelId, RTCEngine.ReportRtcStats stats)

说明

当前通话统计回调

参数

变量名 描述
channelId 频道ID
stats 通话状态

# onNetworkQuality()

public void onNetworkQuality(String channelId, long uid, int txQuality, int rxQuality)

说明

通话中每个用户的网络上下行 last mile 质量报告回调

参数

变量名 描述
channelId 频道ID
uid 用户ID
txQuality 该用户的上行网络质量
rxQuality 该用户的下行网络质量

# didAudioMuted()

public void didAudioMuted(String channelId, long uid, boolean muted)

说明

收到远端音频mute消息

参数

变量名 描述
channelId 频道ID
uid 用户ID
muted 状态

# didVideoMuted()

public void didVideoMuted(String channelId, long uid, boolean muted)

说明

收到远端视频mute消息

参数

变量名 描述
channelId 频道ID
uid 用户ID
muted 状态

# onVideoBufferingStateChanged()

public void onVideoBufferingStateChanged(String channelId, long uid, int state, long timestampInMs)

说明

流状缓冲态回调

参数

变量名 描述
channelId 频道ID
uid 用户ID
state 0: 开始缓冲 1: 缓冲结束
timestampInMs 时间戳

# onLeaveChannel()

public void onLeaveChannel(String channelId)

说明

用户离开房间成功

参数

变量名 描述
channelId 频道ID

# onStreamMessage()

public void onStreamMessage(long uid, byte data)

说明

IRC透传消息

参数

变量名 描述
uid 频道id
data 数据

# onStreamMessage()

public void onStreamMessage(String channelId, long uid, byte data)

说明

IRC透传消息

参数

变量名 描述
channelId 频道id
uid 用户ID
data 数据

# onChannelMediaRelayStateChanged()

public void onChannelMediaRelayStateChanged(String channelId, int state, int code)

说明

跨频道媒体流转发事件回调

参数

变量名 描述
channelId 频道ID
state 状态
code 状态码

# onChannelMediaRelayEvent()

public void onChannelMediaRelayEvent(String channelId, int code)

说明

跨房间推流事件回调

参数

变量名 描述
channelId 频道ID
code 状态码

# onRemoteStreamSubscribeAdvice()

public void onRemoteStreamSubscribeAdvice(String channelId, long uid, int currentStreamType, int suitableStreamType)

说明

建议设置的流类型


流类型 0: 大流
1: 小流
2: 音频

参数

变量名 描述
channelId 频道ID
uid 用户Id
currentStreamType 当前流类型
suitableStreamType 建议流类型

# onTakeRemoteViewSnapshot()

public void onTakeRemoteViewSnapshot(String channelId, long uid, Bitmap bitmap)

说明

远端截图

参数

变量名 描述
channelId 频道ID
bitmap 图像bitmap
uid 用户ID

# onPublishVideoStateChanged()

public void onPublishVideoStateChanged(String channelId, int oldState, int newState)

说明

发布视频状态变化回调

空闲(0)
未发布(1)
发布中(2)
已发布(3)

参数

变量名 描述
channelId 频道ID
oldState 旧状态
newState 新状态

# onPublishAudioStateChanged()

public void onPublishAudioStateChanged(String channelId, int oldState, int newState)

说明

发布音频状态变化回调

空闲(0)
未发布(1)
发布中(2)
已发布(3)

参数

变量名 描述
channelId 频道ID
oldState 旧状态
newState 新状态

# onSubscribeVideoStateChanged()

public void onSubscribeVideoStateChanged(String channelId, int uid, int oldState, int newState)

说明

订阅视频状态通知回调

空闲(0)
未订阅(1)
订阅中(2)
已订阅(3)

参数

变量名 描述
channelId 频道ID
uid 远端用户UID
oldState 旧状态
newState 新状态

# onSubscribeAudioStateChanged()

public void onSubscribeAudioStateChanged(String channelId, int uid, int oldState, int newState)

说明

订阅音频状态通知回调

空闲(0)
未订阅(1)
订阅中(2)
已订阅(3)

参数

变量名 描述
channelId 频道ID
uid 远端用户UID
oldState 旧状态
newState 新状态

# onRemoteVideoStats()

public void onRemoteVideoStats(String channelId, RTCEngine.RemoteVideoStats stats)

说明

远端视频状态回调

参数

变量名 描述
channelId 频道ID
stats 状态回调

# onRemoteAudioStats()

public void onRemoteAudioStats(String channelId, RTCEngine.RemoteAudioStats stats)

说明

远端音频状态回调

参数

变量名 描述
channelId 频道ID
stats 状态回调

# onVideoSizeChanged()

public void onVideoSizeChanged(String channelId, long uid, int width, int height, int rotation)

说明

远端视频尺寸变化通知

参数

变量名 描述
channelId 频道ID
uid 用户ID
width 宽度
height 高度
rotation 旋转角度