AgoraRtcChannelDelegate Protocol Reference
Conforms to | NSObject |
---|---|
Declared in | AgoraRtcChannel.h |
– rtcChannel:didOccurWarning:
发生警告回调
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel didOccurWarning:(AgoraWarningCode)warningCode
Parameters
rtcChannel |
|
---|---|
warningCode |
Discussion
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)警告。通常情况下,SDK 上报的警告信息 App 可以忽略,SDK 会自动恢复。比如和服务器失去连接时,SDK 可能会上报 AgoraWarningCodeOpenChannelTimeout(106) 警告,同时自动尝试重连。
详细的警告代码,见 AgoraWarningCode。
Declared In
AgoraRtcChannel.h
– rtcChannel:didOccurError:
发生错误回调
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel didOccurError:(AgoraErrorCode)errorCode
Parameters
rtcChannel |
|
---|---|
errorCode |
Discussion
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。 比如启动通话失败时,SDK 会上报 AgoraErrorCodeStartCall = 1002 错误。App 可以提示用户启动通话失败,并调用 leaveChannel 退出频道。
详细的错误代码,见 AgoraErrorCode。
Declared In
AgoraRtcChannel.h
– rtcChannelDidJoinChannel:withUid:elapsed:
加入频道回调
- (void)rtcChannelDidJoinChannel:(AgoraRtcChannel *_Nonnull)rtcChannel withUid:(NSUInteger)uid elapsed:(NSInteger)elapsed
Parameters
rtcChannel |
|
---|---|
uid |
用户ID。 如果在 joinChannelByToken 方法中指定了 |
elapsed |
从调用 |
Declared In
AgoraRtcChannel.h
– rtcChannelDidRejoinChannel:withUid:elapsed:
重新加入频道回调
- (void)rtcChannelDidRejoinChannel:(AgoraRtcChannel *_Nonnull)rtcChannel withUid:(NSUInteger)uid elapsed:(NSInteger)elapsed
Parameters
rtcChannel |
|
---|---|
uid |
用户ID。 如果在 joinChannelByToken 方法中指定了 uid,它会返回指定的 ID; 如果没有,它将返回由声网服务器自动分配的 ID。 |
elapsed |
从调用 |
Discussion
有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法。
Declared In
AgoraRtcChannel.h
– rtcChannelDidLeaveChannel:withStats:
已离开频道回调
- (void)rtcChannelDidLeaveChannel:(AgoraRtcChannel *_Nonnull)rtcChannel withStats:(AgoraChannelStats *_Nonnull)stats
Parameters
rtcChannel |
|
---|---|
stats |
通话相关的统计信息:AgoraChannelStats |
Discussion
当用户调用 leaveChannel 离开频道后,SDK 会触发该回调。在该回调方法中,App 可以得到此次通话的总通话时长、SDK 收发数据的流量等信息。
Declared In
AgoraRtcChannel.h
– rtcChannel:didClientRoleChangeFailed:currentRole:
直播场景下切换用户角色失败回调。
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel didClientRoleChangeFailed:(AgoraClientRoleChangeFailedReason)reason currentRole:(AgoraClientRole)currentRole
Parameters
rtcChannel |
|
---|---|
reason |
切换用户角色失败的原因。详见 AgoraClientRoleChangeFailedReason |
currentRole |
当前的用户角色。详见 AgoraClientRole |
Declared In
AgoraRtcChannel.h
– rtcChannel:didClientRoleChanged:newRole:
直播场景下用户角色切换成功回调
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel didClientRoleChanged:(AgoraClientRole)oldRole newRole:(AgoraClientRole)newRole
Parameters
rtcChannel |
|
---|---|
oldRole |
切换前的角色 |
newRole |
切换后的角色 |
Discussion
直播场景下,本地用户加入频道后调用 setClientRole 成功改变用户角色时,例如主播切换为观众,或观众切换为主播,SDK 会触发该回调,报告切换前和切换后的角色。
Declared In
AgoraRtcChannel.h
– rtcChannel:didJoinedOfUid:elapsed:
远端用户/主播加入回调
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel didJoinedOfUid:(NSUInteger)uid elapsed:(NSInteger)elapsed
Parameters
rtcChannel |
|
---|---|
uid |
新加入频道的远端用户/主播 ID。如果 |
elapsed |
从本地用户加入频道 |
Discussion
- 通信场景下,该回调提示有远端用户加入了频道,并返回新加入用户的 ID;如果加入之前,已经有其他用户在频道中了,新加入的用户也会收到这些已有用户加入频道的回调。
- 直播场景下,该回调提示有主播加入了频道,并返回该主播的 ID。如果在加入之前,已经有主播在频道中了,新加入的用户也会收到已有主播加入频道的回调。声网建议连麦主播不超过 17 人。
该回调在如下情况下会被触发:
- 远端用户/主播调用 joinChannelByToken 方法加入频道
- 远端用户加入频道后调用 setClientRole 将用户角色改变为主播
- 远端用户/主播网络中断后重新加入频道
Note:
直播场景下,
- 主播间能相互收到新主播加入频道的回调,并能获得该主播的
uid
- 观众也能收到新主播加入频道的回调,并能获得该主播的
uid
- 当 Web 端加入直播频道时,只要 Web 端有推流,SDK 会默认该 Web 端为主播,并触发该回调
Declared In
AgoraRtcChannel.h
– rtcChannel:didOfflineOfUid:reason:
远端用户(通信场景)/主播(直播场景)离开当前频道回调
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel didOfflineOfUid:(NSUInteger)uid reason:(AgoraUserOfflineReason)reason
Parameters
rtcChannel |
|
---|---|
uid |
离线的用户 ID。 |
reason |
离线原因,详见 AgoraUserOfflineReason。 |
Discussion
提示有远端用户/主播离开了频道(或掉线)。用户离开频道有两个原因,即正常离开和超时掉线:
- 正常离开的时候,远端用户/主播会发送类似“再见”的消息,接收此消息后,判断用户离开频道。
- 超时掉线的依据是,在一定时间内(通信场景为 20 秒,直播场景稍有延时),用户没有收到对方的任何数据包,则判定为对方掉线。在网络较差的情况下,有可能会误报。声网建议使用 声网实时消息 SDK 来做可靠的掉线检测。
Declared In
AgoraRtcChannel.h
– rtcChannel:connectionChangedToState:reason:
网络连接状态已改变回调
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel connectionChangedToState:(AgoraConnectionStateType)state reason:(AgoraConnectionChangedReason)reason
Parameters
rtcChannel |
|
---|---|
state |
当前的网络连接状态,详见 AgoraConnectionStateType。 |
reason |
引起网络连接状态发生改变的原因,详见 AgoraConnectionChangedReason。 |
Discussion
该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态,和引起网络状态改变的原因。
Declared In
AgoraRtcChannel.h
– rtcChannel:didProxyConnected:proxyType:localProxyIp:elapsed:
代理连接状态回调。
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel didProxyConnected:(NSUInteger)uid proxyType:(AgoraProxyType)proxyType localProxyIp:(NSString *_Nonnull)localProxyIp elapsed:(NSInteger)elapsed
Parameters
rtcChannel |
|
---|---|
uid |
用户 ID。 |
proxyType |
连接上的代理类型。详见 AgoraProxyType 。 |
localProxyIp |
本地代理的 IP 地址。当 |
elapsed |
从调用 |
Availability
v3.6.2
通过该回调你可以监听 SDK 连接代理的状态。例如,当用户调用 setCloudProxy 或 setLocalAccessPoint 设置云代理或本地代理并成功加入频道后,SDK 会触发该回调报告用户 ID、连接的代理类型和从调用 joinChannelByToken
到触发该回调经过的时间等。
Declared In
AgoraRtcChannel.h
– rtcChannelDidLost:
网络连接中断,且 SDK 无法在 10 秒内连接服务器回调
- (void)rtcChannelDidLost:(AgoraRtcChannel *_Nonnull)rtcChannel
Parameters
rtcChannel |
---|
Discussion
SDK 在调用 joinChannelByToken 后无论是否加入成功,只要 10 秒和服务器无法连接就会触发该回调。
如果 SDK 在断开连接后,20 分钟内还是没能重新加入频道,SDK 会停止尝试重连。
Declared In
AgoraRtcChannel.h
– rtcChannel:tokenPrivilegeWillExpire:
Token 服务即将过期回调
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel tokenPrivilegeWillExpire:(NSString *_Nonnull)token
Parameters
rtcChannel |
|
---|---|
token |
即将服务失效的 Token |
Discussion
在调用 joinChannelByToken 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中如果 Token 即将失效,SDK 会提前 30 秒触发该回调,提醒应用程序更新 Token。 当收到该回调时,用户需要重新在服务端生成新的 Token,然后调用 renewToken 将新生成的 Token 传给 SDK。
Declared In
AgoraRtcChannel.h
– rtcChannelRequestToken:
Token 过期回调
- (void)rtcChannelRequestToken:(AgoraRtcChannel *_Nonnull)rtcChannel
Parameters
rtcChannel |
---|
Discussion
在调用 joinChannelByToken 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中 SDK 可能由于网络原因和服务器失去连接,重连时可能需要新的 Token。 该回调通知 app 需要生成新的 Token,并调用 renewToken 更新 Token。
Declared In
AgoraRtcChannel.h
– rtcChannel:activeSpeaker:
监测到远端最活跃用户回调。
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel activeSpeaker:(NSUInteger)speakerUid
Parameters
rtcChannel |
|
---|---|
speakerUid |
远端最活跃用户的 ID。 |
Discussion
成功调用 enableAudioVolumeIndication 后,SDK 会持续监测音量 最大的远端用户,并统计该用户被判断为音量最大者的次数。当前时间段内,该次数累积最多的远端用户为最活跃的用户。
当频道内用户数量大于或等于 2 且有活跃用户时,SDK 会触发该回调并报告最活跃用户的 uid
。
- 如果最活跃用户一直是同一位用户,则 SDK 不会再次触发
activeSpeaker
回调。 - 如果最活跃用户有变化,则 SDK 会再次触发该回调并报告新的最活跃用户的
uid
。
Declared In
AgoraRtcChannel.h
– rtcChannel:videoSizeChangedOfUid:size:rotation:
本地或远端视频大小和旋转信息发生改变回调
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel videoSizeChangedOfUid:(NSUInteger)uid size:(CGSize)size rotation:(NSInteger)rotation
Parameters
rtcChannel |
|
---|---|
uid |
图像尺寸和旋转信息发生变化的用户的用户 ID(本地用户的 |
size |
新的视频尺寸 |
rotation |
旋转信息 (0 到 360) |
Declared In
AgoraRtcChannel.h
– rtcChannel:remoteVideoStateChangedOfUid:state:reason:elapsed:
远端视频状态发生改变回调。
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel remoteVideoStateChangedOfUid:(NSUInteger)uid state:(AgoraVideoRemoteState)state reason:(AgoraVideoRemoteStateReason)reason elapsed:(NSInteger)elapsed
Parameters
rtcChannel |
|
---|---|
uid |
发生视频状态改变的远端用户 ID。 |
state |
远端视频流状态。详见 AgoraVideoRemoteState。 |
reason |
远端视频流状态改变的具体原因。详见 AgoraVideoRemoteStateReason。 |
elapsed |
从本地用户调用 joinChannelByToken 方法到发生本事件经历的时间,单位为 ms。 |
Declared In
AgoraRtcChannel.h
– rtcChannel:superResolutionEnabledOfUid:enabled:reason:
报告超分辨率功能是否成功开启。(beta 功能)
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel superResolutionEnabledOfUid:(NSUInteger)uid enabled:(BOOL)enabled reason:(AgoraSuperResolutionStateReason)reason
Parameters
rtcChannel |
|
---|---|
uid |
远端用户 ID。 |
enabled |
是否对远端视频成功开启超分辨率:
|
reason |
超分辨率功能未成功开启的原因,详见 AgoraSuperResolutionStateReason。 |
Availability
v3.5.1
调用 enableRemoteSuperResolution 后,
SDK 触发该回调报告超分辨率是否成功开启。如果未成功开启,请通过 reason
排查问题。
Declared In
AgoraRtcChannel.h
– rtcChannel:remoteAudioStateChangedOfUid:state:reason:elapsed:
远端音频流状态发生改变回调。
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel remoteAudioStateChangedOfUid:(NSUInteger)uid state:(AgoraAudioRemoteState)state reason:(AgoraAudioRemoteStateReason)reason elapsed:(NSInteger)elapsed
Parameters
rtcChannel |
|
---|---|
uid |
发生音频状态改变的远端用户 ID。 |
state |
远端音频流状态。详见 AgoraAudioRemoteState。 |
reason |
远端音频流状态改变的具体原因。详见 AgoraAudioRemoteStateReason。 |
elapsed |
从本地用户调用 joinChannelByToken 方法到发生本事件经历的时间,单位为 ms。 |
Discussion
远端用户/主播音频状态发生改变时,SDK 会触发该回调向本地用户报告当前的远端音频流状态。
Declared In
AgoraRtcChannel.h
– rtcChannel:didLocalPublishFallbackToAudioOnly:
本地发布流已回退为音频流
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel didLocalPublishFallbackToAudioOnly:(BOOL)isFallbackOrRecover
Parameters
rtcChannel |
|
---|---|
isFallbackOrRecover |
|
Discussion
Note:
如果你调用了设置本地推流回退选项 setLocalPublishFallbackOption 接口并将选项设置为 AgoraStreamFallbackOptionAudioOnly,当上行网络环境不理想、本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。
Declared In
AgoraRtcChannel.h
– rtcChannel:didRemoteSubscribeFallbackToAudioOnly:byUid:
远端订阅流已回退为音频流
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel didRemoteSubscribeFallbackToAudioOnly:(BOOL)isFallbackOrRecover byUid:(NSUInteger)uid
Parameters
rtcChannel |
|
---|---|
isFallbackOrRecover |
回退为音频流或恢复为音视频流:
|
uid |
远端用户ID |
Discussion
如果你调用了 setRemoteSubscribeFallbackOption, 接口并将回退选项设置为 AgoraStreamFallbackOptionAudioOnly,当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
Note:
远端订阅流因弱网环境不能同时满足音视频而回退为小流时,你可以使用 remoteVideoStats 方法来监控远端视频大小流的切换。
Declared In
AgoraRtcChannel.h
– rtcChannel:reportRtcStats:
当前通话统计回调。 该回调在通话或直播中每两秒触发一次。
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel reportRtcStats:(AgoraChannelStats *_Nonnull)stats
Parameters
rtcChannel |
|
---|---|
stats |
通话相关的数据统计信息,详见 AgoraChannelStats |
Declared In
AgoraRtcChannel.h
– rtcChannel:networkQuality:txQuality:rxQuality:
通话中每个用户的网络上下行 last mile 质量报告回调
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel networkQuality:(NSUInteger)uid txQuality:(AgoraNetworkQuality)txQuality rxQuality:(AgoraNetworkQuality)rxQuality
Parameters
rtcChannel |
|
---|---|
uid |
用户 ID。表示该回调报告的是持有该 ID 的用户的网络质量。当 uid 为 0 时,返回的是本地用户的网络质量。 |
txQuality |
该用户的上行网络质量。基于上行视频的发送码率、上行丢包率、平均往返时延和网络抖动计算。该值代表当前的上行网络质量,帮助判断是否可以支持当前设置的视频编码属性。 假设上行码率是 500 Kbps,那么支持 480 x 480 的分辨率、30 fps 的帧率没有问题,但是支持 1280 x 720 的分辨率就会有困难。详见 AgoraNetworkQuality。 |
rxQuality |
该用户的下行网络质量。基于下行网络的丢包率、平均往返延时和网络抖动计算。详见 AgoraNetworkQuality。 |
Discussion
该回调描述每个用户在通话中的 last mile 网络状态,其中 last mile 是指设备到声网边缘服务器的网络状态。
该回调每 2 秒触发一次。如果远端有多个用户,该回调每 2 秒会被触发多次。
Note: 用户不发流时,txQuality
为 Unknown
;用户不收流时,rxQuality
为 Unknown
。
Declared In
AgoraRtcChannel.h
– rtcChannel:remoteVideoStats:
通话中远端视频流的统计信息回调
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel remoteVideoStats:(AgoraRtcRemoteVideoStats *_Nonnull)stats
Parameters
rtcChannel |
|
---|---|
stats |
远端视频统计数据,详细定义见 AgoraRtcRemoteVideoStats |
Discussion
该回调描述远端用户在通话中端到端的视频流统计信息,针对每个远端用户/主播每 2 秒触发一次。
如果远端同时存在多个用户/主播,该回调每 2 秒会被触发多次。
和 videoTransportStatsOfUid 相比,该回调为视频引擎统计,贴近用户最终主观感受。
Declared In
AgoraRtcChannel.h
– rtcChannel:remoteAudioStats:
通话中远端音频流的统计信息回调,用于取代 audioQualityOfUid
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel remoteAudioStats:(AgoraRtcRemoteAudioStats *_Nonnull)stats
Parameters
rtcChannel |
|
---|---|
stats |
远端音频统计数据,详细定义见 AgoraRtcRemoteAudioStats。 |
Discussion
该回调描述远端用户在通话中端到端的音频流统计信息,针对每个远端用户/主播每 2 秒触发一次。
如果远端同时存在多个用户/主播,该回调每 2 秒会被触发多次。
和 audioTransportStatsOfUid 回调相比,该回调更贴近用户的主观感受。
比如,当网络发生丢包时,因 FEC(Forward Error Correction,向前纠错码)或重传恢复,最终的音频丢帧率不高,则可以认为整个质量较好。
Declared In
AgoraRtcChannel.h
– rtcChannel:rtmpStreamingChangedToState:state:errorCode:
RTMP/RTMPS 推流状态发生改变回调
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel rtmpStreamingChangedToState:(NSString *_Nonnull)url state:(AgoraRtmpStreamingState)state errorCode:(AgoraRtmpStreamingErrorCode)errorCode
Parameters
rtcChannel |
|
---|---|
url |
推流状态发生改变的 URL 地址。 |
state |
当前的推流状态,详见 AgoraRtmpStreamingState。 |
errorCode |
具体的推流错误信息,详见 AgoraRtmpStreamingErrorCode。 |
Discussion
RTMP/RTMPS 推流状态发生改变时,SDK 会触发该回调,并在回调中明确状态发生改变的 URL 地址及当前推流状态。
该回调方便推流用户了解当前的推流状态;推流出错时,你可以通过返回的错误码了解出错的原因,方便排查问题。
Declared In
AgoraRtcChannel.h
– rtcChannel:rtmpStreamingEventWithUrl:eventCode:
RTMP/RTMPS 推流事件回调。
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel rtmpStreamingEventWithUrl:(NSString *_Nonnull)url eventCode:(AgoraRtmpStreamingEvent)eventCode
Parameters
rtcChannel |
|
---|---|
url |
RTMP/RTMPS 推流 URL。 |
eventCode |
RTMP/RTMPS 推流事件码。详见 AgoraRtmpStreamingEvent 。 |
Availability
v3.1.0
Declared In
AgoraRtcChannel.h
– rtcChannelTranscodingUpdated:
旁路推流设置被更新回调
- (void)rtcChannelTranscodingUpdated:(AgoraRtcChannel *_Nonnull)rtcChannel
Parameters
rtcChannel |
---|
Discussion
setLiveTranscoding 方法中的直播参数 LiveTranscoding
rtcEngineTranscodingUpdated
回调会被触发并向主播报告更新信息。
Note:
首次调用 setLiveTranscoding
方法设置转码参数 LiveTranscoding
时,不会触发此回调。
Declared In
AgoraRtcChannel.h
– rtcChannel:receiveStreamMessageFromUid:streamId:data:
接收到对方数据流消息的回调
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel receiveStreamMessageFromUid:(NSUInteger)uid streamId:(NSInteger)streamId data:(NSData *_Nonnull)data
Parameters
rtcChannel |
|
---|---|
uid |
用户ID |
streamId |
数据流 ID |
data |
接收到的数据 |
Discussion
该回调表示本地用户收到了远端用户调用 sendStreamMessage 方法发送的流消息。
Declared In
AgoraRtcChannel.h
– rtcChannel:didOccurStreamMessageErrorFromUid:streamId:error:missed:cached:
接收对方数据流消息错误的回调
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel didOccurStreamMessageErrorFromUid:(NSUInteger)uid streamId:(NSInteger)streamId error:(NSInteger)error missed:(NSInteger)missed cached:(NSInteger)cached
Parameters
rtcChannel |
|
---|---|
uid |
用户 ID |
streamId |
数据流 ID |
error |
错误代码: AgoraErrorCode |
missed |
丢失的消息数量 |
cached |
数据流中断时,后面缓存的消息数量 |
Discussion
该回调表示本地用户未收到远端用户调用 sendStreamMessage 方法发送的流消息。
Declared In
AgoraRtcChannel.h
– rtcChannel:channelMediaRelayStateDidChange:error:
跨频道媒体流转发状态发生改变回调。
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel channelMediaRelayStateDidChange:(AgoraChannelMediaRelayState)state error:(AgoraChannelMediaRelayError)error
Parameters
rtcChannel |
|
---|---|
state |
跨频道媒体流转发状态 AgoraChannelMediaRelayState。 |
error |
跨频道媒体流转发出错的错误码 AgoraChannelMediaRelayError。 |
Discussion
当跨频道媒体流转发状态发生改变时,SDK 会触发该回调,并报告当前的转发状态以及相关的错误信息。
Declared In
AgoraRtcChannel.h
– rtcChannel:didReceiveChannelMediaRelayEvent:
跨频道媒体流转发事件回调。
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel didReceiveChannelMediaRelayEvent:(AgoraChannelMediaRelayEvent)event
Parameters
rtcChannel |
|
---|---|
event |
跨频道媒体流转发事件码 AgoraChannelMediaRelayEvent。 |
Discussion
该回调报告跨频道媒体流转发过程中发生的事件。
Declared In
AgoraRtcChannel.h
– rtcChannel:firstRemoteVideoFrameOfUid:size:elapsed:
已显示远端视频首帧回调
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel firstRemoteVideoFrameOfUid:(NSUInteger)uid size:(CGSize)size elapsed:(NSInteger)elapsed
Parameters
rtcChannel |
|
---|---|
uid |
远端用户 ID |
size |
视频尺寸(宽和高) |
elapsed |
从本地用户调用 joinChannelByToken 到发生此事件过去的时间(毫秒)。 |
Availability
v3.7.0
Declared In
AgoraRtcChannel.h
– rtcChannel:didAudioPublishStateChange:newState:elapseSinceLastState:
音频发布状态改变回调。
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel didAudioPublishStateChange:(AgoraStreamPublishState)oldState newState:(AgoraStreamPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState
Parameters
rtcChannel |
|
---|---|
oldState |
之前的发布状态,详见 AgoraStreamPublishState 。 |
newState |
当前的发布状态,详见 AgoraStreamPublishState 。 |
elapseSinceLastState |
两次状态变化时间间隔(毫秒)。 |
Availability
v3.1.0
Declared In
AgoraRtcChannel.h
– rtcChannel:didVideoPublishStateChange:newState:elapseSinceLastState:
视频发布状态改变回调。
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel didVideoPublishStateChange:(AgoraStreamPublishState)oldState newState:(AgoraStreamPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState
Parameters
rtcChannel |
|
---|---|
oldState |
之前的发布状态,详见 AgoraStreamPublishState 。 |
newState |
当前的发布状态,详见 AgoraStreamPublishState 。 |
elapseSinceLastState |
两次状态变化时间间隔(毫秒)。 |
Availability
v3.1.0
Declared In
AgoraRtcChannel.h
– rtcChannel:didAudioSubscribeStateChange:oldState:newState:elapseSinceLastState:
音频订阅状态发生改变回调。
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel didAudioSubscribeStateChange:(NSUInteger)uid oldState:(AgoraStreamSubscribeState)oldState newState:(AgoraStreamSubscribeState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState
Parameters
rtcChannel |
|
---|---|
uid |
远端用户的 ID。 |
oldState |
之前的订阅状态,详见 AgoraStreamSubscribeState 。 |
newState |
当前的订阅状态,详见 AgoraStreamSubscribeState 。 |
elapseSinceLastState |
两次状态变化时间间隔(毫秒)。 |
Availability
v3.1.0
Declared In
AgoraRtcChannel.h
– rtcChannel:didVideoSubscribeStateChange:oldState:newState:elapseSinceLastState:
视频订阅状态发生改变回调。
- (void)rtcChannel:(AgoraRtcChannel *_Nonnull)rtcChannel didVideoSubscribeStateChange:(NSUInteger)uid oldState:(AgoraStreamSubscribeState)oldState newState:(AgoraStreamSubscribeState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState
Parameters
rtcChannel |
|
---|---|
uid |
远端用户的 ID。 |
oldState |
之前的订阅状态,详见 AgoraStreamSubscribeState 。 |
newState |
当前的订阅状态,详见 AgoraStreamSubscribeState 。 |
elapseSinceLastState |
两次状态变化时间间隔(毫秒)。 |
Availability
v3.1.0
Declared In
AgoraRtcChannel.h