Public 成员函数

virtual ~IChannelEventHandler ()
 
virtual void onChannelWarning (IChannel *rtcChannel, int warn, const char *msg)
 
virtual void onChannelError (IChannel *rtcChannel, int err, const char *msg)
 
virtual void onJoinChannelSuccess (IChannel *rtcChannel, uid_t uid, int elapsed)
 
virtual void onRejoinChannelSuccess (IChannel *rtcChannel, uid_t uid, int elapsed)
 
virtual void onLeaveChannel (IChannel *rtcChannel, const RtcStats &stats)
 
virtual void onClientRoleChanged (IChannel *rtcChannel, CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole)
 
virtual void onUserJoined (IChannel *rtcChannel, uid_t uid, int elapsed)
 
virtual void onUserOffline (IChannel *rtcChannel, uid_t uid, USER_OFFLINE_REASON_TYPE reason)
 
virtual void onConnectionLost (IChannel *rtcChannel)
 
virtual void onRequestToken (IChannel *rtcChannel)
 
virtual void onTokenPrivilegeWillExpire (IChannel *rtcChannel, const char *token)
 
virtual void onRtcStats (IChannel *rtcChannel, const RtcStats &stats)
 
virtual void onNetworkQuality (IChannel *rtcChannel, uid_t uid, int txQuality, int rxQuality)
 
virtual void onRemoteVideoStats (IChannel *rtcChannel, const RemoteVideoStats &stats)
 
virtual void onRemoteAudioStats (IChannel *rtcChannel, const RemoteAudioStats &stats)
 
virtual void onRemoteAudioStateChanged (IChannel *rtcChannel, uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed)
 
virtual void onAudioPublishStateChanged (IChannel *rtcChannel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState)
 
virtual void onVideoPublishStateChanged (IChannel *rtcChannel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState)
 
virtual void onAudioSubscribeStateChanged (IChannel *rtcChannel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)
 
virtual void onVideoSubscribeStateChanged (IChannel *rtcChannel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)
 
virtual void onActiveSpeaker (IChannel *rtcChannel, uid_t uid)
 
virtual void onVideoSizeChanged (IChannel *rtcChannel, uid_t uid, int width, int height, int rotation)
 
virtual void onRemoteVideoStateChanged (IChannel *rtcChannel, uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed)
 
virtual void onStreamMessage (IChannel *rtcChannel, uid_t uid, int streamId, const char *data, size_t length)
 
virtual void onStreamMessageError (IChannel *rtcChannel, uid_t uid, int streamId, int code, int missed, int cached)
 
virtual void onChannelMediaRelayStateChanged (IChannel *rtcChannel, CHANNEL_MEDIA_RELAY_STATE state, CHANNEL_MEDIA_RELAY_ERROR code)
 
virtual void onChannelMediaRelayEvent (IChannel *rtcChannel, CHANNEL_MEDIA_RELAY_EVENT code)
 
virtual void onRtmpStreamingStateChanged (IChannel *rtcChannel, const char *url, RTMP_STREAM_PUBLISH_STATE state, RTMP_STREAM_PUBLISH_ERROR errCode)
 
virtual void onRtmpStreamingEvent (IChannel *rtcChannel, const char *url, RTMP_STREAMING_EVENT eventCode)
 
virtual void onTranscodingUpdated (IChannel *rtcChannel)
 
virtual void onStreamInjectedStatus (IChannel *rtcChannel, const char *url, uid_t uid, int status)
 
virtual void onLocalPublishFallbackToAudioOnly (IChannel *rtcChannel, bool isFallbackOrRecover)
 
virtual void onRemoteSubscribeFallbackToAudioOnly (IChannel *rtcChannel, uid_t uid, bool isFallbackOrRecover)
 
virtual void onConnectionStateChanged (IChannel *rtcChannel, CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason)
 

详细描述

自从
v3.0.0

IChannelEventHandler

构造及析构函数说明

◆ ~IChannelEventHandler()

virtual agora::rtc::IChannelEventHandler::~IChannelEventHandler ( )
inlinevirtual

成员函数说明

◆ onChannelWarning()

virtual void agora::rtc::IChannelEventHandler::onChannelWarning ( IChannel rtcChannel,
int  warn,
const char *  msg 
)
inlinevirtual

报告 IChannel 的警告码。

参数
rtcChannelIChannel
warn警告码,详见 WARN_CODE_TYPE
msg警告信息

◆ onChannelError()

virtual void agora::rtc::IChannelEventHandler::onChannelError ( IChannel rtcChannel,
int  err,
const char *  msg 
)
inlinevirtual

报告 IChannel 的错误码。

参数
rtcChannelIChannel
err错误码,详见 ERROR_CODE_TYPE
msg错误信息

◆ onJoinChannelSuccess()

virtual void agora::rtc::IChannelEventHandler::onJoinChannelSuccess ( IChannel rtcChannel,
uid_t  uid,
int  elapsed 
)
inlinevirtual

加入频道回调。

该回调方法表示该客户端成功加入了指定的频道。

参数
rtcChannelIChannel
uid用户 ID。如果 joinChannel 中指定了 uid,则此处返回该 ID;否则使用 Agora 服务器自动分配的 ID。
elapsedjoinChannel 开始到发生此事件过去的时间(毫秒)。

◆ onRejoinChannelSuccess()

virtual void agora::rtc::IChannelEventHandler::onRejoinChannelSuccess ( IChannel rtcChannel,
uid_t  uid,
int  elapsed 
)
inlinevirtual

重新加入频道回调。

有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法。

参数
rtcChannelIChannel
uid用户 ID。
elapsed从开始重连到重连成功的时间(毫秒)。

◆ onLeaveChannel()

virtual void agora::rtc::IChannelEventHandler::onLeaveChannel ( IChannel rtcChannel,
const RtcStats stats 
)
inlinevirtual

离开频道回调。

App 调用 leaveChannel 方法时,SDK提示 App 离开频道成功。在该回调方法中,App 可以得到此次通话的总通话时长、SDK 收发数据的流量等信息。App 通过该回调获取通话时长以及 SDK 接收到或发送的数据统计信息。

参数
rtcChannelIChannel
stats通话的统计数据: RtcStats

◆ onClientRoleChanged()

virtual void agora::rtc::IChannelEventHandler::onClientRoleChanged ( IChannel rtcChannel,
CLIENT_ROLE_TYPE  oldRole,
CLIENT_ROLE_TYPE  newRole 
)
inlinevirtual

直播场景下用户角色已切换回调。

直播场景下,当用户切换角色时会触发此回调,即主播切换为观众时,或观众切换为主播时。

该回调由本地用户在加入频道后调用 setClientRole 改变用户角色触发的。

参数
rtcChannelIChannel
oldRole切换前的角色: CLIENT_ROLE_TYPE
newRole切换后的角色: CLIENT_ROLE_TYPE

◆ onUserJoined()

virtual void agora::rtc::IChannelEventHandler::onUserJoined ( IChannel rtcChannel,
uid_t  uid,
int  elapsed 
)
inlinevirtual

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

  • 通信场景下,该回调提示有远端用户加入了频道,并返回新加入用户的 ID;如果加入之前,已经有其他用户在频道中了,新加入的用户也会收到这些已有用户加入频道的回调。
  • 直播场景下,该回调提示有主播加入了频道,并返回该主播的 ID。如果在加入之前,已经有主播在频道中了,新加入的用户也会收到已有主播加入频道的回调。声网建议连麦主播不超过 17 人。

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

  • 远端用户/主播调用 joinChannel 方法加入频道
  • 远端用户加入频道后调用 setClientRole 将用户角色改变为主播
  • 远端用户/主播网络中断后重新加入频道
  • 主播通过调用 addInjectStreamUrl 方法成功输入在线媒体流
注解
直播场景下,
  • 主播间能相互收到新主播加入频道的回调,并能获得该主播的 uid。
  • 观众也能收到新主播加入频道的回调,并能获得该主播的 uid。
  • 当 Web 端加入直播频道时,只要 Web 端有推流,SDK 会默认该 Web 端为主播,并触发该回调。
参数
rtcChannelIChannel
uid新加入频道的远端用户/主播 ID。
elapsed从本地用户调用 joinChannel 到该回调触发的延迟(毫秒)。

◆ onUserOffline()

virtual void agora::rtc::IChannelEventHandler::onUserOffline ( IChannel rtcChannel,
uid_t  uid,
USER_OFFLINE_REASON_TYPE  reason 
)
inlinevirtual

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

提示有远端用户/主播离开了频道(或掉线)。用户离开频道有两个原因,即正常离开和超时掉线:

  • 正常离开的时候,远端用户/主播会发送类似“再见”的消息。接收此消息后,判断用户离开频道。
  • 超时掉线的依据是,在一定时间内(通信场景为 20 秒,直播场景稍有延时),用户没有收到对方的任何数据包,则判定为对方掉线。在网络较差的情况下,有可能会误报。我们建议使用 Agora 实时消息 SDK 来做可靠的掉线检测。
参数
rtcChannelIChannel
uid离线用户或主播的用户 ID。
reason离线原因: USER_OFFLINE_REASON_TYPE

◆ onConnectionLost()

virtual void agora::rtc::IChannelEventHandler::onConnectionLost ( IChannel rtcChannel)
inlinevirtual

网络连接丢失回调。

SDK 在调用 joinChannel 后无论是否加入成功,只要 10 秒和服务器无法连接就会触发该回调。

onConnectionInterrupted 的区别是:

  • onConnectionInterrupted 回调一定是发生在加入频道成功后,且 SDK 刚失去和服务器连接超过 4 秒时触发。
  • onConnectionLost 回调是无论之前加入频道是否成功,只要 10 秒内和服务器无法建立连接都会触发。

如果 SDK 在断开连接后,20 分钟内还是没能重新加入频道,SDK 会停止尝试重连。

参数
rtcChannelIChannel

◆ onRequestToken()

virtual void agora::rtc::IChannelEventHandler::onRequestToken ( IChannel rtcChannel)
inlinevirtual

Token 已过期回调。

在调用 joinChannel, 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中 SDK 可能由于网络原因和服务器失去连接,重连时可能需要新的 Token。

该回调通知 App 需要生成新的 Token,然后调用 joinChannel,使用新的 Token 重新加入频道。

参数
rtcChannelIChannel

◆ onTokenPrivilegeWillExpire()

virtual void agora::rtc::IChannelEventHandler::onTokenPrivilegeWillExpire ( IChannel rtcChannel,
const char *  token 
)
inlinevirtual

Token 服务即将过期回调。

在调用 joinChannel 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中如果 Token 即将失效,SDK 会提前 30 秒触发该回调,提醒 App 更新 Token。 当收到该回调时,用户需要重新在服务端生成新的 Token,然后调用 renewToken 将新生成的 Token 传给 SDK。

参数
rtcChannelIChannel
token即将服务失效的 Token。

◆ onRtcStats()

virtual void agora::rtc::IChannelEventHandler::onRtcStats ( IChannel rtcChannel,
const RtcStats stats 
)
inlinevirtual

当前通话统计回调。

SDK 定期向 App 报告当前通话的统计信息,每两秒触发一次。

参数
rtcChannelIChannel
statsRTC 引擎统计数据: RtcStats

◆ onNetworkQuality()

virtual void agora::rtc::IChannelEventHandler::onNetworkQuality ( IChannel rtcChannel,
uid_t  uid,
int  txQuality,
int  rxQuality 
)
inlinevirtual

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

该回调描述每个用户在通话中的 last mile 网络状态,其中 last mile 是指设备到 Agora 边缘服务器的网络状态。

该回调每 2 秒触发一次。如果远端有多个用户,该回调每 2 秒会被触发多次。

参数
rtcChannelIChannel
uid用户 ID。表示该回调报告的是持有该 ID 的用户的网络质量。当 uid 为 0 时,返回的是本地用户的网络质量。
txQuality该用户的上行网络质量,基于发送码率、上行丢包率、平均往返时延和网络抖动计算。该值代表当前的上行网络质量,帮助判断是否可以支持当前设置的视频编码属性。假设上行码率是 1000 Kbps,那么支持直播场景下 640 × 480 的分辨率、15 fps 的帧率没有问题,但是支持 1280 × 720 的分辨率就会有困难。详见 QUALITY_TYPE
rxQuality该用户的下行网络质量,基于下行网络的丢包率、平均往返延时和网络抖动计算。详见 QUALITY_TYPE

◆ onRemoteVideoStats()

virtual void agora::rtc::IChannelEventHandler::onRemoteVideoStats ( IChannel rtcChannel,
const RemoteVideoStats stats 
)
inlinevirtual

通话中远端视频流的统计信息回调。

该回调描述远端用户在通话中端到端的视频流统计信息, 针对每个远端用户/主播每 2 秒触发一次。如果远端同时存在多个用户/主播, 该回调每 2 秒会被触发多次。

参数
rtcChannelIChannel
stats远端视频统计数据。详见: RemoteVideoStats

◆ onRemoteAudioStats()

virtual void agora::rtc::IChannelEventHandler::onRemoteAudioStats ( IChannel rtcChannel,
const RemoteAudioStats stats 
)
inlinevirtual

通话中远端音频流的统计信息回调。用于取代 onAudioQuality 回调。

该回调描述远端用户在通话中端到端的音频流统计信息。该回调函数针对每个发送音频流的远端用户/主播每 2 秒触发一次。如果远端有多个用户/主播发送音频流,该回调每 2 秒会被触发多次。

参数
rtcChannelIChannel
stats接收到的远端音频统计数据,详细定义见: RemoteAudioStats

◆ onRemoteAudioStateChanged()

virtual void agora::rtc::IChannelEventHandler::onRemoteAudioStateChanged ( IChannel rtcChannel,
uid_t  uid,
REMOTE_AUDIO_STATE  state,
REMOTE_AUDIO_STATE_REASON  reason,
int  elapsed 
)
inlinevirtual

远端音频流状态发生改变回调。

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

注解
频道内的用户(通信场景)或主播(直播场景)人数超过 17 人时,该回调不生效。
参数
rtcChannelIChannel
uid发生音频状态改变的远端用户 ID。
state远端音频流状态。 详见 REMOTE_AUDIO_STATE
reason远端音频流状态改变的具体原因。详见 REMOTE_AUDIO_STATE_REASON
elapsed从本地用户调用 joinChannel 方法到发生本事件经历的时间,单位为 ms。

◆ onAudioPublishStateChanged()

virtual void agora::rtc::IChannelEventHandler::onAudioPublishStateChanged ( IChannel rtcChannel,
STREAM_PUBLISH_STATE  oldState,
STREAM_PUBLISH_STATE  newState,
int  elapseSinceLastState 
)
inlinevirtual

音频发布状态改变回调。

自从
v3.1.0
参数
rtcChannelIChannel
oldState之前的发布状态,详见 STREAM_PUBLISH_STATE
newState当前的发布状态,详见 STREAM_PUBLISH_STATE
elapseSinceLastState两次状态变化时间间隔(毫秒)。

◆ onVideoPublishStateChanged()

virtual void agora::rtc::IChannelEventHandler::onVideoPublishStateChanged ( IChannel rtcChannel,
STREAM_PUBLISH_STATE  oldState,
STREAM_PUBLISH_STATE  newState,
int  elapseSinceLastState 
)
inlinevirtual

视频发布状态改变回调。

自从
v3.1.0
参数
rtcChannelIChannel
oldState之前的发布状态,详见 STREAM_PUBLISH_STATE
newState当前的发布状态,详见 STREAM_PUBLISH_STATE
elapseSinceLastState两次状态变化时间间隔(毫秒)。

◆ onAudioSubscribeStateChanged()

virtual void agora::rtc::IChannelEventHandler::onAudioSubscribeStateChanged ( IChannel rtcChannel,
uid_t  uid,
STREAM_SUBSCRIBE_STATE  oldState,
STREAM_SUBSCRIBE_STATE  newState,
int  elapseSinceLastState 
)
inlinevirtual

音频订阅状态发生改变回调。

自从
v3.1.0
参数
rtcChannelIChannel
uid远端用户的 ID。
oldState之前的订阅状态,详见 STREAM_SUBSCRIBE_STATE
newState当前的订阅状态,详见 STREAM_SUBSCRIBE_STATE
elapseSinceLastState两次状态变化时间间隔(毫秒)。

◆ onVideoSubscribeStateChanged()

virtual void agora::rtc::IChannelEventHandler::onVideoSubscribeStateChanged ( IChannel rtcChannel,
uid_t  uid,
STREAM_SUBSCRIBE_STATE  oldState,
STREAM_SUBSCRIBE_STATE  newState,
int  elapseSinceLastState 
)
inlinevirtual

视频订阅状态发生改变回调。

自从
v3.1.0
参数
rtcChannelIChannel
uid远端用户的 ID。
oldState之前的订阅状态,详见 STREAM_SUBSCRIBE_STATE
newState当前的订阅状态,详见 STREAM_SUBSCRIBE_STATE
elapseSinceLastState两次状态变化时间间隔(毫秒)。

◆ onActiveSpeaker()

virtual void agora::rtc::IChannelEventHandler::onActiveSpeaker ( IChannel rtcChannel,
uid_t  uid 
)
inlinevirtual

监测到最活跃用户回调。

成功调用 enableAudioVolumeIndication 后,SDK 会持续监测音量 最大的远端用户,并统计该用户被判断为音量最大者的次数。当前时间段内,该次数累积最多的远端用户为最活跃的用户。

当频道内用户数量大于或等于 2 且有活跃用户时,SDK 会触发该回调并报告最活跃用户的 uid

  • 如果最活跃用户一直是同一位用户,则 SDK 不会再次触发 onActiveSpeaker 回调。
  • 如果最活跃用户有变化,则 SDK 会再次触发该回调并报告新的最活跃用户的 uid
参数
rtcChannelIChannel
uid远端最活跃用户的 ID。

◆ onVideoSizeChanged()

virtual void agora::rtc::IChannelEventHandler::onVideoSizeChanged ( IChannel rtcChannel,
uid_t  uid,
int  width,
int  height,
int  rotation 
)
inlinevirtual

本地或远端视频大小和旋转信息发生改变回调。

参数
rtcChannelIChannel
uid图像尺寸和旋转信息发生变化的用户的用户 ID(本地用户的 uid 为 0)。
width视频流的宽度(像素)。
height视频流的高度(像素)。
rotation旋转信息 [0,360)。

◆ onRemoteVideoStateChanged()

virtual void agora::rtc::IChannelEventHandler::onRemoteVideoStateChanged ( IChannel rtcChannel,
uid_t  uid,
REMOTE_VIDEO_STATE  state,
REMOTE_VIDEO_STATE_REASON  reason,
int  elapsed 
)
inlinevirtual

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

注解
频道内的用户(通信场景)或主播(直播场景)人数超过 17 人时,该回调不生效。
参数
rtcChannelIChannel
uid发生视频状态改变的远端用户 ID。
state远端视频流状态。详见 REMOTE_VIDEO_STATE
reason远端视频流状态改变的具体原因。详见 REMOTE_VIDEO_STATE_REASON
elapsed从本地用户调用 joinChannel 方法到发生本事件经历的时间,单位为 ms。

◆ onStreamMessage()

virtual void agora::rtc::IChannelEventHandler::onStreamMessage ( IChannel rtcChannel,
uid_t  uid,
int  streamId,
const char *  data,
size_t  length 
)
inlinevirtual

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

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

参数
rtcChannelIChannel
uid发送消息的用户 ID。
streamIdStream ID。
data接收到的数据。
length数据长度。

◆ onStreamMessageError()

virtual void agora::rtc::IChannelEventHandler::onStreamMessageError ( IChannel rtcChannel,
uid_t  uid,
int  streamId,
int  code,
int  missed,
int  cached 
)
inlinevirtual

接收对方数据流消息发生错误的回调。

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

参数
rtcChannelIChannel
uid发送消息的用户 ID。
streamIdStream ID。
code错误码: ERROR_CODE_TYPE
missed丢失的消息数量。
cached数据流中断时,后面缓存的消息数量。

◆ onChannelMediaRelayStateChanged()

virtual void agora::rtc::IChannelEventHandler::onChannelMediaRelayStateChanged ( IChannel rtcChannel,
CHANNEL_MEDIA_RELAY_STATE  state,
CHANNEL_MEDIA_RELAY_ERROR  code 
)
inlinevirtual

跨频道媒体流转发状态发生改变回调。

当跨频道媒体流转发状态发生改变时,SDK 会触发该回调, 并报告当前的转发状态以及相关的错误信息。

参数
rtcChannelIChannel
state跨频道媒体流转发状态。详见 CHANNEL_MEDIA_RELAY_STATE
code跨频道媒体流转发出错的错误码。详见 CHANNEL_MEDIA_RELAY_ERROR

◆ onChannelMediaRelayEvent()

virtual void agora::rtc::IChannelEventHandler::onChannelMediaRelayEvent ( IChannel rtcChannel,
CHANNEL_MEDIA_RELAY_EVENT  code 
)
inlinevirtual

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

该回调报告跨频道媒体流转发过程中发生的事件。

参数
rtcChannelIChannel
code跨频道媒体流转发事件码。详见 CHANNEL_MEDIA_RELAY_EVENT

◆ onRtmpStreamingStateChanged()

virtual void agora::rtc::IChannelEventHandler::onRtmpStreamingStateChanged ( IChannel rtcChannel,
const char *  url,
RTMP_STREAM_PUBLISH_STATE  state,
RTMP_STREAM_PUBLISH_ERROR  errCode 
)
inlinevirtual

RTMP 推流状态发生改变回调。

该回调返回本地用户调用 addPublishStreamUrlremovePublishStreamUrl 方法的结果。 RTMP 推流状态发生改变时,SDK 会触发该回调,并在回调中明确状态发生改变的 URL 地址及当前推流状态。 该回调方便推流用户了解当前的推流状态;推流出错时,你可以通过返回的错误码了解出错的原因,方便排查问题。

参数
rtcChannelIChannel
url推流状态发生改变的 URL 地址。
state当前的推流状态,详见 RTMP_STREAM_PUBLISH_STATE 。当推流状态为 RTMP_STREAM_PUBLISH_STATE_FAILURE (4) 时,你可以在 errorCode 参数中查看返回的错误信息。
errCode推流错误信息,详见 RTMP_STREAM_PUBLISH_ERROR

◆ onRtmpStreamingEvent()

virtual void agora::rtc::IChannelEventHandler::onRtmpStreamingEvent ( IChannel rtcChannel,
const char *  url,
RTMP_STREAMING_EVENT  eventCode 
)
inlinevirtual

RTMP 推流事件回调。

自从
v3.1.0
参数
rtcChannelIChannel
urlRTMP 推流 URL。
eventCodeRTMP 推流事件码。详见 RTMP_STREAMING_EVENT

◆ onTranscodingUpdated()

virtual void agora::rtc::IChannelEventHandler::onTranscodingUpdated ( IChannel rtcChannel)
inlinevirtual

旁路推流设置已被更新回调。

setLiveTranscoding 方法中的直播参数 LiveTranscoding 更新时,onTranscodingUpdated 回调会被触发并向主播报告更新信息。

注解
首次调用 setLiveTranscoding 方法设置转码参数 LiveTranscoding 时,不会触发此回调。
参数
rtcChannelIChannel

◆ onStreamInjectedStatus()

virtual void agora::rtc::IChannelEventHandler::onStreamInjectedStatus ( IChannel rtcChannel,
const char *  url,
uid_t  uid,
int  status 
)
inlinevirtual

输入在线媒体流状态回调。

参数
rtcChannelIChannel
url导入进直播的在线媒体流的地址。
uid用户 ID。
status输入的在线媒体流状态: INJECT_STREAM_STATUS

◆ onLocalPublishFallbackToAudioOnly()

virtual void agora::rtc::IChannelEventHandler::onLocalPublishFallbackToAudioOnly ( IChannel rtcChannel,
bool  isFallbackOrRecover 
)
inlinevirtual

本地发布流已回退为音频流回调。

如果你调用了 setLocalPublishFallbackOption 接口并将 option 设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY ,当上行网络环境不理想、本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。

注解
如果本地发流已回退为音频流,远端的 App 上会收到 onUserMuteVideo 的回调事件。
参数
rtcChannelIChannel
isFallbackOrRecover
  • true: 由于网络环境不理想,本地发布的媒体流已回退为音频流;
  • false: 由于网络环境改善,发布的音频流已恢复为音视频流。

◆ onRemoteSubscribeFallbackToAudioOnly()

virtual void agora::rtc::IChannelEventHandler::onRemoteSubscribeFallbackToAudioOnly ( IChannel rtcChannel,
uid_t  uid,
bool  isFallbackOrRecover 
)
inlinevirtual

远端订阅流已回退为音频流回调。

如果你调用了 setRemoteSubscribeFallbackOption 接口并将 option 设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY ,当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。

注解
远端订阅流因弱网环境不能同时满足音视频而回退为小流时,你可以使用 RemoteVideoStats 来监控远端视频大小流的切换。
参数
rtcChannelIChannel
uid远端用户 ID。
isFallbackOrRecover
  • true: 由于网络环境不理想,远端订阅流已回退为音频流;
  • false: 由于网络环境改善,订阅的音频流已恢复为音视频流。

◆ onConnectionStateChanged()

virtual void agora::rtc::IChannelEventHandler::onConnectionStateChanged ( IChannel rtcChannel,
CONNECTION_STATE_TYPE  state,
CONNECTION_CHANGED_REASON_TYPE  reason 
)
inlinevirtual

网络连接状态已改变回调。

该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态和引起网络状态改变的原因。

参数
rtcChannelIChannel
state详见: CONNECTION_STATE_TYPE
reason详见: CONNECTION_CHANGED_REASON_TYPE