Agora RTC Objective-C API Reference  Refactor
Instance Methods
<AgoraRtcEngineDelegate2> Protocol Reference

Inherits <NSObject>, and <AgoraBaseDelegate>.

Instance Methods

(void) - rtcEngine:didJoinChannel:withUid:elapsed:
 
(void) - rtcEngine:didRejoinChannel:withUid:elapsed:
 
(void) - rtcEngine:didJoinedOfUid:elapsed:
 
(void) - rtcEngine:didOfflineOfUid:reason:
 
(void) - rtcEngine:localAudioStateChanged:error:
 
(void) - rtcEngine:firstRemoteAudioFrameDecodedOfUid:elapsed:
 
(void) - rtcEngine:remoteAudioStateChangedOfUid:state:reason:elapsed:
 
(void) - rtcEngine:didAudioSubscribeStateChange:uid:oldState:newState:elapseSinceLastState:
 
(void) - rtcEngine:didAudioPublishStateChange:oldState:newState:elapseSinceLastState:
 
(void) - rtcEngine:localVideoStateChangedOfState:error:
 
(void) - rtcEngine:remoteVideoStateChangedOfUid:state:reason:elapsed:
 
(void) - rtcEngine:remoteUserStateChangedOfUid:state:
 
(void) - rtcEngineIntraRequestReceived:
 
(void) - rtcEngine:uplinkNetworkInfoUpdate:
 
(void) - rtcEngine:downlinkNetworkInfoUpdate:
 
(void) - rtcEngine:connectionStateChanged:reason:
 
(void) - rtcEngine:networkTypeChanged:
 
(void) - rtcEngine:permissionError:
 
(void) - rtcEngine:channelMediaRelayStateDidChange:error:
 
(void) - rtcEngine:didReceiveChannelMediaRelayEvent:
 
(void) - rtcEngine:didVideoSubscribeStateChange:uid:oldState:newState:elapseSinceLastState:
 
(void) - rtcEngine:didVideoPublishStateChange:oldState:newState:elapseSinceLastState:
 
(void) - rtcEngine:didLocalUserRegisteredWithUserId:userAccount:
 
(void) - rtcEngine:didUserInfoUpdatedWithUserId:userInfo:
 
(void) - rtcEngineRequestToken:
 
(void) - rtcEngineConnectionDidLost:
 
(void) - rtcEngine:reportRtcStats:
 
(void) - rtcEngine:lastmileProbeTestResult:
 
(void) - rtcEngine:didApiCallExecute:api:result:
 
(void) - rtcEngine:uploadLogResultRequestId:success:reason:
 
(void) - rtcEngine:didClientRoleChanged:newRole:
 
(void) - rtcEngine:didClientRoleChangeFailed:currentRole:
 
(void) - rtcEngine:didLeaveChannelWithStats:
 
(void) - rtcEngine:firstLocalAudioFramePublished:
 
(void) - rtcEngine:localAudioStats:
 
(void) - rtcEngine:audioMixingStateChanged:errorCode:
 
(void) - rtcEngine:cameraExposureDidChangedToRect:
 
(void) - rtcEngine:firstLocalVideoFramePublishedWithElapsed:
 
(void) - rtcEngine:reportAudioVolumeIndicationOfSpeakers:totalVolume:
 
(void) - rtcEngine:remoteAudioStats:
 
(void) - rtcEngine:remoteVideoStats:
 

Face Detection Delegate Methods


(void) - rtcEngine:facePositionDidChangeWidth:previewHeight:faces:
 

Method Documentation

◆ rtcEngine:didJoinChannel:withUid:elapsed:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
didJoinChannel: (NSString *_Nonnull)  channelId
withUid: (NSString *_Nonnull)  userId
elapsed: (NSInteger)  elapsed 
optional

Event of the user joined the channel.

Parameters
engineThe engine kit
channelIdThe channel name
userIdThe remote user id
elapsedThe elapsed time (ms) from session beginning

◆ rtcEngine:didRejoinChannel:withUid:elapsed:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
didRejoinChannel: (NSString *_Nonnull)  channelId
withUid: (NSString *_Nonnull)  userId
elapsed: (NSInteger)  elapsed 
optional

Event of the user rejoined the channel

Parameters
engineThe engine kit
channelIdThe channel name
userIdThe user id
elapsedThe elapsed time (ms) from session beginning

◆ rtcEngine:didJoinedOfUid:elapsed:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
didJoinedOfUid: (NSString *_Nonnull)  userId
elapsed: (NSInteger)  elapsed 
optional

Event of remote user joined

Parameters
engineThe engine kit
userIdThe remote user id
elapsedThe elapsed time(ms) from the beginning of the session.

◆ rtcEngine:didOfflineOfUid:reason:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
didOfflineOfUid: (NSString *_Nonnull)  userId
reason: (AgoraUserOfflineReason reason 
optional

Event of remote user offlined

Parameters
engineThe engine kit
userIdThe remote user id
reasonReason of user offline, quit, drop or became audience

◆ rtcEngine:localAudioStateChanged:error:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
localAudioStateChanged: (AgoraAudioLocalState state
error: (AgoraAudioLocalError error 
optional

This callback indicates local audio stream state has changed.

Parameters
engineThe engine kit
stateStopped: The initial state Recording: The capturer starts successfully Encoding: The first video frame is successfully encoded Failed: The local video fails to start
errorOK: The local audio is normal Failure: No specified reason for the local audio failure. DeviceNoPermission: No permission to use the local audio device DeviceBusy: The microphone is in use RecordFailure: The local audio recording fails. Check whether the recording device is working properly EncodeFailure: The local audio encoding fails

◆ rtcEngine:firstRemoteAudioFrameDecodedOfUid:elapsed:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
firstRemoteAudioFrameDecodedOfUid: (NSString *_Nonnull)  uid
elapsed: (NSInteger)  elapsed 
optional

Occurs when the SDK decodes the first remote audio frame for playback.

Deprecated** . Use AgoraAudioRemoteStateDecoding(2) in the [remoteAudioStateChangedOfUid]([AgoraRtcEngineDelegate rtcEngine:remoteAudioStateChangedOfUid:state:reason:elapsed:]) callback instead.

This callback is triggered in either of the following scenarios:

  • The remote user joins the channel and sends the audio stream.
  • The remote user stops sending the audio stream and re-sends it after 15 seconds. Reasons for such an interruption include:
    • The remote user leaves channel.
    • The remote user drops offline.
    • The remote user calls the [muteLocalAudioStream]([AgoraRtcEngineKit muteLocalAudioStream:]) method to stop sending the local audio stream.
    • The remote user calls the [disableAudio]([AgoraRtcEngineKit disableAudio]) method to disable audio.
Parameters
engineAgoraRtcEngineKit object.
uidUser ID of the remote user sending the audio stream.
elapsedThe time elapsed (ms) from the local user calling the joinChannel method until the SDK triggers this callback.

◆ rtcEngine:remoteAudioStateChangedOfUid:state:reason:elapsed:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
remoteAudioStateChangedOfUid: (NSString *_Nonnull)  userId
state: (AgoraAudioRemoteState state
reason: (AgoraAudioRemoteReason reason
elapsed: (NSInteger)  elapsed 
optional

This callback indicates remote audio stream state has changed.

Parameters
engineThe engine kit
userIdThe user id
stateStopped // The remote audio stopped, default state, audio is started or remote user disabled/muted audio stream. Starting // The first remote audio packet is received. Decoding // The remote audio stream is decoded and plays normally. Frozen // The remote audio is frozen. Failed // The remote audio fails to start.
reasonInteral // Internal reasons. NetworkCongestion // Network congestion. NetworkRecovery // Network recovery. LocalMuted // The local user stops receiving the remote audio stream or disables the audio module. LocalUnmuted // The local user resumes receiving the remote audio stream or enables the audio module. RemoteMuted // The remote user stops sending the audio stream or disables the audio module. RemoteUnmuted // The remote user resumes sending the audio stream or enables the audio module. Offline // The remote user leaves the channel.
elapsedThe elapsed time(ms) from the beginning of the session.

◆ rtcEngine:didAudioSubscribeStateChange:uid:oldState:newState:elapseSinceLastState:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
didAudioSubscribeStateChange: (NSString *_Nonnull)  channelId
uid: (unsigned int)  uid
oldState: (AgoraStreamSubscribeState oldState
newState: (AgoraStreamSubscribeState newState
elapseSinceLastState: (int)  elapseSinceLastState 
optional

Occurs when the audio subscribe state changed.

Parameters
channelIdThe channel name of user joined.
uidThe remote user ID that is subscribed to.
oldStateThe old state of the audio stream subscribe : AgoraStreamSubscribeState.
newStateThe new state of the audio stream subscribe : AgoraStreamSubscribeState.
elapseSinceLastStateThe time elapsed (ms) from the old state to the new state.

◆ rtcEngine:didAudioPublishStateChange:oldState:newState:elapseSinceLastState:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
didAudioPublishStateChange: (NSString *_Nonnull)  channelId
oldState: (AgoraStreamPublishState oldState
newState: (AgoraStreamPublishState newState
elapseSinceLastState: (int)  elapseSinceLastState 
optional

Occurs when the audio publish state changed.

Parameters
channelIdThe channel name of user joined.
oldStateThe old state of the audio stream publish : AgoraStreamPublishState.
newStateThe new state of the audio stream publish : AgoraStreamPublishState.
elapseSinceLastStateThe time elapsed (ms) from the old state to the new state.

◆ rtcEngine:contentInspectResult:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
contentInspectResult: (AgoraContentInspectResult result 
optional

◆ rtcEngine:snapshotTaken:uid:filePath:width:height:errCode:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
snapshotTaken: (NSString *_Nonnull)  channel
uid: (NSUInteger)  uid
filePath: (NSString *_Nonnull)  filePath
width: (NSInteger)  width
height: (NSInteger)  height
errCode: (NSInteger)  errCode 
optional

◆ rtcEngine:localVideoStateChangedOfState:error:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
localVideoStateChangedOfState: (AgoraVideoLocalState state
error: (AgoraLocalVideoStreamError error 
optional

Occurs when the local video stream state changes

This callback indicates the state of the local video stream, including camera capturing and video encoding, and allows you to troubleshoot issues when exceptions occur.

Note
For some device models, the SDK will not trigger this callback when the state of the local video changes while the local video capturing device is in use, so you have to make your own timeout judgment.
Parameters
engineAgoraRtcEngineKit object
stateState type AgoraVideoLocalState. When the state is AgoraVideoLocalStateFailed (3), see the error parameter for details.
errorThe detailed error information: AgoraLocalVideoStreamError.

◆ rtcEngine:remoteVideoStateChangedOfUid:state:reason:elapsed:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
remoteVideoStateChangedOfUid: (NSString *_Nonnull)  userId
state: (AgoraVideoRemoteState)  state
reason: (AgoraVideoRemoteReason reason
elapsed: (NSInteger)  elapsed 
optional

This callback indicates remote video stream state has changed.

Parameters
engineThe engine kit
userIdThe user id
stateStopped // Default state, video is started or remote user disabled/muted video stream Running // Running state, remote video can be displayed normally Frozen // Remote video is frozen, probably due to network issue.
reasonInteral // Internal reasons. NetworkCongestion // Network congestion. NetworkRecovery // Network recovery. LocalMuted // The local user stops receiving the remote audio stream or disables the audio module. LocalUnmuted // The local user resumes receiving the remote audio stream or enables the audio module. RemoteMuted // The remote user stops sending the audio stream or disables the audio module. RemoteUnmuted // The remote user resumes sending the audio stream or enables the audio module. Offline // The remote user leaves the channel. AudioFallback //The remote media stream falls back to the audio-only stream due to poor network conditions. AudioFallbackRecovery // The remote media stream switches back to the video stream after the network conditions improve.
elapsedThe time elapsed (ms) from the local user calling joinChannel until this callback is triggered.

◆ rtcEngine:remoteUserStateChangedOfUid:state:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
remoteUserStateChangedOfUid: (NSString *_Nonnull)  userId
state: (NSUInteger)  state 
optional

Occurs when the remote user state is updated.

Parameters
engineThe engine kit
userIdThe remote user id
stateThe remote user state

◆ rtcEngine:publishingRequestReceivedFromUid:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
publishingRequestReceivedFromUid: (NSString *_Nonnull)  userId 
optional

◆ rtcEngine:publishingRequestAnsweredByOwner:accepted:error:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
publishingRequestAnsweredByOwner: (NSString *_Nonnull)  userId
accepted: (BOOL)  accepted
error: (AgoraErrorCode)  error 
optional

◆ rtcEngine:unpublishingRequestReceivedFromOwner:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
unpublishingRequestReceivedFromOwner: (NSString *_Nonnull)  userId 
optional

◆ rtcEngineIntraRequestReceived:

- (void) rtcEngineIntraRequestReceived: (AgoraRtcEngineKit *_Nonnull)  engine
optional

Intra request received.

Parameters
engineThe AgoraRtcEngineKit object.

◆ rtcEngine:uplinkNetworkInfoUpdate:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
uplinkNetworkInfoUpdate: (AgoraUplinkNetworkInfo *_Nonnull)  bweInfo 
optional

Target bitrate updated.

Parameters
engineThe AgoraRtcEngineKit object.
bweInfoThe uplink network info, including target bitrate bps.

◆ rtcEngine:downlinkNetworkInfoUpdate:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
downlinkNetworkInfoUpdate: (AgoraDownlinkNetworkInfo *_Nonnull)  networkInfo 
optional

Downlink network info updated.

Parameters
engineThe AgoraRtcEngineKit object.
networkInfoThe downlink network info.

◆ rtcEngine:connectionStateChanged:reason:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
connectionStateChanged: (AgoraConnectionState state
reason: (AgoraConnectionChangedReason reason 
optional

Occurs when the connection state of the SDK to the server is changed.

Parameters
stateSee AgoraConnectionState.
reasonSee AgoraConnectionChangedReason.

◆ rtcEngine:networkTypeChanged:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
networkTypeChanged: (AgoraNetworkType type 
optional

Occurs when the connection state of the SDK to the server is changed.

Parameters
engineThe AgoraRtcEngineKit object.
typeSee AgoraNetworkType.

◆ rtcEngine:permissionError:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
permissionError: (AgoraPermissionType type 
optional

Occurs when permission error

Parameters
engineThe AgoraRtcEngineKit object.
typeSee AgoraPermissionType.

◆ rtcEngine:channelMediaRelayStateDidChange:error:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
channelMediaRelayStateDidChange: (AgoraChannelMediaRelayState state
error: (AgoraChannelMediaRelayError error 
optional

Occurs when the state of the media stream relay changes.

The SDK reports the state of the current media relay and possible error messages in this callback.

Parameters
engineAgoraRtcEngineKit object.
stateThe state code in [AgoraChannelMediaRelayState](AgoraChannelMediaRelayState).
errorThe error code in [AgoraChannelMediaRelayError](AgoraChannelMediaRelayError).

◆ rtcEngine:didReceiveChannelMediaRelayEvent:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
didReceiveChannelMediaRelayEvent: (AgoraChannelMediaRelayEvent event 
optional

Reports events during the media stream relay.

Parameters
engineAgoraRtcEngineKit object.
eventThe event code in [AgoraChannelMediaRelayEvent](AgoraChannelMediaRelayEvent).

◆ rtcEngine:didVideoSubscribeStateChange:uid:oldState:newState:elapseSinceLastState:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
didVideoSubscribeStateChange: (NSString *_Nonnull)  channelId
uid: (unsigned int)  uid
oldState: (AgoraStreamSubscribeState oldState
newState: (AgoraStreamSubscribeState newState
elapseSinceLastState: (int)  elapseSinceLastState 
optional

Occurs when the video subscribe state changed.

Parameters
engineAgoraRtcEngineKit object.
channelIdThe channel name of user joined.
uidThe remote user ID that is subscribed to.
oldStateThe old state of the video stream subscribe : AgoraStreamSubscribeState.
newStateThe new state of the video stream subscribe : AgoraStreamSubscribeState.
elapseSinceLastStateThe time elapsed (ms) from the old state to the new state.

◆ rtcEngine:didVideoPublishStateChange:oldState:newState:elapseSinceLastState:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
didVideoPublishStateChange: (NSString *_Nonnull)  channelId
oldState: (AgoraStreamPublishState oldState
newState: (AgoraStreamPublishState newState
elapseSinceLastState: (int)  elapseSinceLastState 
optional

Occurs when the video publish state changed.

Parameters
engineAgoraRtcEngineKit object.
channelIdThe channel name of user joined.
oldStateThe old state of the video stream publish : AgoraStreamPublishState.
newStateThe new state of the video stream publish : AgoraStreamPublishState.
elapseSinceLastStateThe time elapsed (ms) from the old state to the new state.

◆ rtcEngine:didRhythmPlayerStateChanged:errorCode:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
didRhythmPlayerStateChanged: (AgoraRhythmPlayerState state
errorCode: (AgoraRhythmPlayerError errorCode 
optional

◆ rtcEngine:didLocalUserRegisteredWithUserId:userAccount:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
didLocalUserRegisteredWithUserId: (NSUInteger)  uid
userAccount: (NSString *_Nonnull)  userAccount 
optionalinherited

Occurs when the local user successfully registers a user account by calling the This callback reports the user ID and user account of the local user.

Parameters
uidThe ID of the local user.
userAccountThe user account of the local user.

◆ rtcEngine:didUserInfoUpdatedWithUserId:userInfo:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
didUserInfoUpdatedWithUserId: (NSUInteger)  uid
userInfo: (AgoraUserInfo *_Nonnull)  userInfo 
optionalinherited

Occurs when the SDK gets the user ID and user account of the remote user.

After a remote user joins the channel, the SDK gets the UID and user account of the remote user, caches them in a mapping table object (userInfo), and triggers this callback on the local client.

Parameters
uidThe ID of the remote user.
userInfoThe AgoraUserInfo object that contains the user ID and user account of the remote user.

◆ rtcEngineRequestToken:

- (void) rtcEngineRequestToken: (AgoraRtcEngineKit *_Nonnull)  engine
optionalinherited

when token is enabled, and specified token is invalid or expired, this function will be called. APP should generate a new token and call renewToken() to refresh the token. NOTE: to be compatible with previous version, ERR_TOKEN_EXPIRED and ERR_INVALID_TOKEN are also reported via onError() callback. You should move renew of token logic into this callback.

Parameters
engineThe engine kit

◆ rtcEngineConnectionDidLost:

- (void) rtcEngineConnectionDidLost: (AgoraRtcEngineKit *_Nonnull)  engine
optionalinherited

Event of loss connection with server. This event is reported after the connection is interrupted and exceed the retry period (10 seconds by default). In the mean time SDK automatically tries to reconnect with the server until APP calls leaveChannel.

Parameters
engineThe engine kit

◆ rtcEngine:reportRtcStats:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
reportRtcStats: (AgoraChannelStats *_Nonnull)  stats 
optionalinherited

Statistics of rtc engine status. Updated every two seconds.

Parameters
engineThe engine kit
statsThe statistics of rtc status, including duration, sent bytes and received bytes

◆ rtcEngine:lastmileProbeTestResult:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
lastmileProbeTestResult: (AgoraLastmileProbeResult *_Nonnull)  result 
optionalinherited

Reports the last-mile network probe result.

The SDK triggers this callback within 30 seconds after the app calls the [startLastmileProbeTest]([AgoraRtcEngineKit startLastmileProbeTest:]) method.

Parameters
engineAgoraRtcEngineKit object.
resultThe uplink and downlink last-mile network probe test result, see [AgoraLastmileProbeResult](AgoraLastmileProbeResult).

◆ rtcEngine:didApiCallExecute:api:result:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
didApiCallExecute: (NSInteger)  error
api: (NSString *_Nonnull)  api
result: (NSString *_Nonnull)  result 
optionalinherited

Event of API call executed

Parameters
engineThe engine kit
apiThe API description
errorThe error code

◆ rtcEngine:uploadLogResultRequestId:success:reason:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
uploadLogResultRequestId: (NSString *_Nonnull)  requestId
success: (BOOL)  success
reason: (AgoraUploadErrorReason reason 
optionalinherited

Reports the user log upload result

Parameters
requestIdRequestId of the upload
successIs upload success
reasonReason of the upload, 0: OK, 1 Network Error, 2 Server Error.

◆ rtcEngine:didClientRoleChanged:newRole:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
didClientRoleChanged: (AgoraClientRole oldRole
newRole: (AgoraClientRole newRole 
optionalinherited

Event of cient role change. only take effect under broadcasting mode

Parameters
engineThe engine kit
oldRolethe previous role
newRolethe new role

◆ rtcEngine:didClientRoleChangeFailed:currentRole:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
didClientRoleChangeFailed: (AgoraClientRoleChangeFailedReason reason
currentRole: (AgoraClientRole currentRole 
optionalinherited

Event of cient role change. only take effect under broadcasting mode

Parameters
engineThe engine kit
reasonThe reason of the failure of the local user role switches
currentRoleThe current role of the user

◆ rtcEngine:didLeaveChannelWithStats:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
didLeaveChannelWithStats: (AgoraChannelStats *_Nonnull)  stats 
optionalinherited

The statistics of the call when leave channel

Parameters
engineThe engine kit
statsThe statistics of the call, including duration, sent bytes and received bytes

◆ rtcEngine:firstLocalAudioFramePublished:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
firstLocalAudioFramePublished: (NSInteger)  elapsed 
optionalinherited

Event of the first audio frame is sent.

Parameters
engineThe engine kit
elapsedThe elapsed time(ms) from the beginning of the session.

◆ rtcEngine:localAudioStats:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
localAudioStats: (AgoraRtcLocalAudioStats *_Nonnull)  stats 
optionalinherited

The statistics of the local audio stream.

Same as [localAudioStatBlock]([AgoraRtcEngineKit localAudioStatBlock:]). The SDK updates the application on the statistics of the local audio stream once every two seconds.

Parameters
engineThe AgoraRtcEngineKit object.
statsAgoraRtcLocalAudioStats

◆ rtcEngine:audioMixingStateChanged:errorCode:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
audioMixingStateChanged: (AgoraAudioMixingStateType)  state
errorCode: (AgoraAudioMixingErrorType)  errorCode 
optionalinherited

Audio mixing state changed.

Parameters
engineThe AgoraRtcEngineKit object.
stateAgoraAudioMixingStateType
errorCodeAgoraAudioMixingErrorType

◆ rtcEngine:cameraExposureDidChangedToRect:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
cameraExposureDidChangedToRect: (CGRect)  rect 
optionalinherited

A camera exposure position changed.

Parameters
engineAgoraRtcEngineKit object
rectExposure rectangle in the local preview

◆ rtcEngine:firstLocalVideoFramePublishedWithElapsed:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
firstLocalVideoFramePublishedWithElapsed: (NSInteger)  elapsed 
optionalinherited

Event of the first local video frame is published.

Parameters
engineThe engine kit
elapsedThe elapsed time(ms) from the beginning of the session.

◆ rtcEngine:reportAudioVolumeIndicationOfSpeakers:totalVolume:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
reportAudioVolumeIndicationOfSpeakers: (NSArray< AgoraRtcAudioVolumeInfo * > *_Nonnull)  speakers
totalVolume: (NSInteger)  totalVolume 
optionalinherited

The sdk reports the volume of a speaker. The interface is disable by default, and it could be enable by API "enableAudioVolumeIndication"

Parameters
engineThe engine kit
speakersAgoraRtcAudioVolumeInfo array
totalVolumeThe total volume of speakers

◆ rtcEngine:remoteAudioStats:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
remoteAudioStats: (AgoraRtcRemoteAudioStats *_Nonnull)  stats 
optionalinherited

The statistics of remote audio stream. Update every two seconds.

Parameters
engineThe engine kit
statsThe statistics of audio video, including user id, delay, resolution, received bitrate, received framerate, audio stream type

◆ rtcEngine:remoteVideoStats:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
remoteVideoStats: (AgoraRtcRemoteVideoStats *_Nonnull)  stats 
optionalinherited

The statistics of remote video stream. Update every two seconds.

Parameters
engineThe engine kit
statsThe statistics of remote video, including user id, delay, resolution, received bitrate, received framerate, video stream type

◆ rtcEngine:rtmpStreamingChangedToState:state:errCode:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
rtmpStreamingChangedToState: (NSString *_Nonnull)  url
state: (AgoraRtmpStreamingState state
errCode: (AgoraRtmpStreamingErrorCode errCode 
optionalinherited

◆ rtcEngine:rtmpStreamingEventWithUrl:eventCode:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
rtmpStreamingEventWithUrl: (NSString *_Nonnull)  url
eventCode: (AgoraRtmpStreamingEvent eventCode 
optionalinherited

◆ rtcEngine:facePositionDidChangeWidth:previewHeight:faces:

- (void) rtcEngine: (AgoraRtcEngineKit *_Nonnull)  engine
facePositionDidChangeWidth: (int)  width
previewHeight: (int)  height
faces: (NSArray< AgoraFacePositionInfo * > *_Nullable)  faces 

Reports the face detection result of the local user. (iOS only)

Since:** v3.0.1.

Once you enable face detection by calling [enableFaceDetection]([AgoraRtcEngineKit enableFaceDetection:]), you can get the following information on the local user in real-time:

  • The width and height of the local video.
  • The position of the human face in the local video.
  • The distance between the human face and the device screen. This value is based on the fitting calculation of the local video size and the position of the human face.

    Note**

  • If the SDK does not detect a face, it reduces the frequency of this callback to reduce power consumption on the local device.
  • The SDK stops triggering this callback when a human face is in close proximity to the screen.
Parameters
engineAgoraRtcEngineKit object.
widthThe width (px) of the local video.
heightThe height (px) of the local video.
facesAn AgoraFacePositionInfo array, which contains the information of the detected human face.

The number of the AgoraFacePositionInfo array depends on the number of human faces detected. If the array length is 0, it means that no human face is detected.