API Overview
Agora provides ensured quality of experience (QoE) for worldwide Internet-based voice and video communications through SD-RTN™.
Initialization related
| Method / Callback | Description | 
|---|---|
| create [1/2] | Creates and initializes RtcEngine. | 
| create [2/2] | Creates and initializes RtcEngine. | 
| onEngineReleased | Callback triggered when RtcEngine is released. | 
| destroy [1/2] | Releases the RtcEngine instance. | 
| onEngineReleased | Callback triggered when RtcEngine is released. | 
Channel related
| Method / Callback | Description | 
|---|---|
| setChannelProfile | Sets the channel profile. | 
| joinChannel [1/2] | Joins a channel. | 
| joinChannel [2/2] | Joins a channel with media options. | 
| joinChannelEx | Joins a channel. | 
| updateChannelMediaOptions | Updates the channel media options after joining the channel. | 
| updateChannelMediaOptionsEx | Updates the channel media options after joining the channel. | 
| leaveChannel [1/2] | Leaves a channel. | 
| leaveChannelEx [1/2] | Leaves a channel. | 
| leaveChannel [2/2] | Sets channel options and leaves the channel. | 
| leaveChannelEx [2/2] | Sets channel options and leaves the channel. | 
| preloadChannel | Preloads a channel with token, channelName, and optionalUid. | 
| preloadChannelWithUserAccount | Preloads a channel with token, channelName, and userAccount. | 
| updatePreloadChannelToken | Updates the wildcard token for preloading channels. | 
| renewToken | Renews the token. | 
| setClientRole [1/2] | Sets the client role. | 
| setClientRole [2/2] | Set the user role and the audience latency level in a live streaming scenario. | 
| onJoinChannelSuccess | Occurs when a user joins a channel. | 
| onRejoinChannelSuccess | Occurs when a user rejoins the channel. | 
| onClientRoleChanged | Occurs when the user role or the audience latency level changes. | 
| onClientRoleChangeFailed | Occurs when switching a user role fails. | 
| onLeaveChannel | Occurs when a user leaves a channel. | 
| onUserJoined | Occurs when a remote user (in the communication profile)/ host (in the live streaming profile) joins the channel. | 
| onUserOffline | Occurs when a remote user (in the communication profile)/ host (in the live streaming profile) leaves the channel. | 
| onNetworkTypeChanged | Occurs when the local network type changes. | 
| onUplinkNetworkInfoUpdated | Occurs when the uplink network information changes. | 
| onConnectionLost | Occurs when the SDK cannot reconnect to Agora's edge server 10 seconds after its connection to the server is interrupted. | 
| onConnectionStateChanged | Occurs when the network connection state changes. | 
| onRenewTokenResult | Callback for call result. | 
| onRequestToken | Occurs when the token expires. | 
| onTokenPrivilegeWillExpire | Occurs when the token expires in 30 seconds. | 
| onError | Reports an error during SDK runtime. | 
Publish and subscription
| Method / Callback | Description | 
|---|---|
| muteLocalAudioStream | Stops or resumes publishing the local audio stream. | 
| muteLocalAudioStreamEx | Stops or resumes publishing the local audio stream. | 
| muteRemoteAudioStream | Stops or resumes subscribing to the audio stream of a specified user. | 
| muteRemoteAudioStreamEx | Stops or resumes receiving the audio stream of a specified user. | 
| muteAllRemoteAudioStreams | Stops or resumes subscribing to the audio streams of all remote users. | 
| muteAllRemoteAudioStreamsEx | Stops or resumes subscribing to the audio streams of all remote users. | 
| muteLocalVideoStream | Stops or resumes publishing the local video stream. | 
| muteLocalVideoStreamEx | Stops or resumes publishing the local video stream. | 
| muteRemoteVideoStream | Stops or resumes subscribing to the video stream of a specified user. | 
| muteRemoteVideoStreamEx | Stops or resumes receiving the video stream of a specified user. | 
| muteAllRemoteVideoStreams | Stops or resumes subscribing to the video streams of all remote users. | 
| muteAllRemoteVideoStreamsEx | Stops or resumes subscribing to the video streams of all remote users. | 
| setRemoteVideoSubscriptionOptions | Options for subscribing to remote video streams. | 
| setRemoteVideoSubscriptionOptionsEx | Options for subscribing to remote video streams. | 
| setSubscribeAudioBlocklist | Set the blocklist of subscriptions for audio streams. | 
| setSubscribeAudioBlocklistEx | Set the blocklist of subscriptions for audio streams. | 
| setSubscribeAudioAllowlist | Sets the allowlist of subscriptions for audio streams. | 
| setSubscribeAudioAllowlistEx | Sets the allowlist of subscriptions for audio streams. | 
| setSubscribeVideoBlocklist | Set the blocklist of subscriptions for video streams. | 
| setSubscribeVideoBlocklistEx | Set the blocklist of subscriptions for video streams. | 
| setSubscribeVideoAllowlist | Set the allowlist of subscriptions for video streams. | 
| setSubscribeVideoAllowlistEx | Set the allowlist of subscriptions for video streams. | 
| setRemoteVideoStreamType [2/2] | Sets the video stream type to subscribe to. | 
| setRemoteVideoStreamTypeEx [2/2] | Sets the video stream type to subscribe to. | 
| setRemoteDefaultVideoStreamType [2/2] | Sets the default video stream type to subscribe to. | 
| setDualStreamMode [1/2] | Sets the dual-stream mode on the sender side. | 
| setDualStreamMode [2/2] | Sets dual-stream mode configuration on the sender side. | 
| setDualStreamModeEx | Sets the dual-stream mode on the sender side. | 
| onAudioPublishStateChanged | Occurs when the audio publishing state changes. | 
| onAudioSubscribeStateChanged | Occurs when the audio subscribing state changes. | 
| onVideoSubscribeStateChanged | Occurs when the video subscribing state changes. | 
Audio basic functions
| Method / Callback | Description | 
|---|---|
| adjustUserPlaybackSignalVolume | Adjusts the playback signal volume of a specified remote user. | 
| adjustUserPlaybackSignalVolumeEx | Adjusts the playback signal volume of a specified remote user. | 
| adjustPlaybackSignalVolume | Adjusts the playback signal volume of all remote users. | 
| enableAudio | Enables the audio module. | 
| disableAudio | Disables the audio module. | 
| enableAudioVolumeIndication | Enables the reporting of users' volume indication. | 
| enableAudioVolumeIndicationEx | Enables the reporting of users' volume indication. | 
| setAudioProfile [2/2] | Sets audio profiles. | 
| setAudioScenario | Sets audio scenarios. | 
| onAudioVolumeIndication | Reports the volume information of users. | 
| onActiveSpeaker | Occurs when the most active remote speaker is detected. | 
| onLocalAudioStateChanged | Occurs when the local audio stream state changes. | 
| onFirstLocalAudioFramePublished | Occurs when the first audio frame is published. | 
| onFirstRemoteAudioFrame | Occurs when the SDK receives the first audio frame from a specific remote user. | 
| onUserMuteAudio | Occurs when a remote user (in the communication profile) or a host (in the live streaming profile) stops/resumes sending the audio stream. | 
| onRemoteAudioStateChanged | Occurs when the remote audio state changes. | 
| onLocalAudioStats | Reports the statistics of the local audio stream. | 
| onRemoteAudioStats | Reports the transport-layer statistics of each remote audio stream. | 
Audio capture
| Method / Callback | Description | 
|---|---|
| enableLocalAudio | Enables or disables the local audio capture. | 
| adjustRecordingSignalVolume | Adjusts the capturing signal volume. | 
| muteRecordingSignal | Whether to mute the recording signal. | 
| enableInEarMonitoring [1/2] | Enables in-ear monitoring. | 
| enableInEarMonitoring [2/2] | Enables in-ear monitoring. | 
| setInEarMonitoringVolume | Sets the volume of the in-ear monitor. | 
Audio pre-processing and post-processing
| Method / Callback | Description | 
|---|---|
| enableVoiceAITuner | Enables or disables the voice AI tuner. | 
| setAdvancedAudioOptions | Sets audio advanced options. | 
| setAINSMode | Sets whether to enable the AI noise suppression function and set the noise suppression mode. | 
| setLocalVoiceEqualization | Sets the local voice equalization effect. | 
| setLocalVoicePitch | Changes the voice pitch of the local speaker. | 
| setLocalVoiceReverb | Sets the local voice reverberation. | 
| setVoiceBeautifierPreset | Sets a preset voice beautifier effect. | 
| setVoiceBeautifierParameters | Sets parameters for the preset voice beautifier effects. | 
| setAudioEffectPreset | Sets an SDK preset audio effect. | 
| setAudioEffectParameters | Sets parameters for SDK preset audio effects. | 
| setVoiceConversionPreset | Sets a preset voice beautifier effect. | 
| setLocalVoiceFormant | Set the formant ratio to change the timbre of human voice. | 
| enableSoundPositionIndication | Enables or disables stereo panning for remote users. | 
| setRemoteVoicePosition | Sets the 2D position (the position on the horizontal plane) of the remote user's voice. | 
| setRemoteVoicePositionEx | Sets the 2D position (the position on the horizontal plane) of the remote user's voice. | 
| create | Creates ILocalSpatialAudioEngine. | 
| initialize | Initializes ILocalSpatialAudioEngine. | 
| destroy | Destroys ILocalSpatialAudioEngine. | 
| updateSelfPosition | Updates the spatial position of the local user. | 
| updateRemotePosition | Updates the spatial position of the specified remote user. | 
| removeRemotePosition | Removes the spatial position of the specified remote user. | 
| clearRemotePositions | Removes the spatial positions of all remote users. | 
| setHeadphoneEQParameters | Sets the low- and high-frequency parameters of the headphone equalizer. | 
| setHeadphoneEQPreset | Sets the preset headphone equalization effect. | 
| startLocalAudioMixer | Starts local audio mixing. | 
| updateLocalAudioMixerConfiguration | Updates the configurations for mixing audio streams locally. | 
| stopLocalAudioMixer | Stops the local audio mixing. | 
Raw audio data
| Method / Callback | Description | 
|---|---|
| registerAudioFrameObserver | Registers an audio frame observer object. | 
| setEarMonitoringAudioFrameParameters | Sets the format of the in-ear monitoring raw audio data. | 
| setRecordingAudioFrameParameters | Sets the format of the captured raw audio data. | 
| setPlaybackAudioFrameBeforeMixingParameters [2/2] | Set the format of audio data in the onPlaybackAudioFrameBeforeMixing callback. | 
| setPlaybackAudioFrameParameters | Sets the format of the raw audio playback data. | 
| setMixedAudioFrameParameters | Set the format of the raw audio data after mixing for audio capture and playback. | 
| setPlaybackAudioFrameBeforeMixingParameters [1/2] | Sets the format of the raw audio playback data before mixing. | 
| onEarMonitoringAudioFrame | Gets the in-ear monitoring audio frame. | 
| onRecordAudioFrame | Gets the captured audio frame. | 
| onPlaybackAudioFrame | Gets the raw audio frame for playback. | 
| onPlaybackAudioFrameBeforeMixing | Retrieves the audio frame before mixing of subscribed remote users. | 
| onMixedAudioFrame | Retrieves the mixed captured and playback audio frame. | 
| getEarMonitoringAudioParams | Sets the audio format for the onEarMonitoringAudioFrame callback. | 
| getObservedAudioFramePosition | Sets the frame position for the video observer. | 
| getRecordAudioParams | Sets the audio format for the onRecordAudioFrame callback. | 
| getPlaybackAudioParams | Sets the audio format for the onPlaybackAudioFrame callback. | 
| getMixedAudioParams | Sets the audio format for the onMixedAudioFrame callback. | 
Encoded audio data
| Method / Callback | Description | 
|---|---|
| registerAudioEncodedFrameObserver | Registers an encoded audio observer. | 
| onRecordAudioEncodedFrame | Gets the encoded audio data of the local user. | 
| onPlaybackAudioEncodedFrame | Gets the encoded audio data of all remote users. | 
| onMixedAudioEncodedFrame | Gets the mixed and encoded audio data of the local and all remote users. | 
Custom audio capture and renderer
| Method / Callback | Description | 
|---|---|
| createCustomAudioTrack | Creates a custom audio track. | 
| destroyCustomAudioTrack | Destroys the specified audio track. | 
| setExternalAudioSink | Sets the external audio sink. | 
| pullPlaybackAudioFrame [1/2] | Pulls the remote audio data. | 
| pullPlaybackAudioFrame [2/2] | Pulls the remote audio data. | 
| pushExternalAudioFrame | Pushes the external audio frame to the SDK. | 
| adjustCustomAudioPlayoutVolume | Adjusts the volume of the custom audio track played locally. | 
| adjustCustomAudioPublishVolume | Adjusts the volume of the custom audio track played remotely. | 
| enableCustomAudioLocalPlayback | Sets whether to enable the local playback of external audio source. | 
Audio spectrum
| Method / Callback | Description | 
|---|---|
| registerAudioSpectrumObserver | Register an audio spectrum observer. | 
| enableAudioSpectrumMonitor | Turns on audio spectrum monitoring. | 
| disableAudioSpectrumMonitor | Disables audio spectrum monitoring. | 
| unregisterAudioSpectrumObserver | Unregisters the audio spectrum observer. | 
| onLocalAudioSpectrum | Gets the statistics of a local audio spectrum. | 
| onRemoteAudioSpectrum | Gets the remote audio spectrum. | 
Video basic functions
| Method / Callback | Description | 
|---|---|
| enableVideo | Enables the video module. | 
| disableVideo | Disables the video module. | 
| setVideoScenario | Sets video application scenarios. | 
| setVideoEncoderConfiguration | Sets the video encoder configuration. | 
| setVideoEncoderConfigurationEx | Sets the video encoder configuration. | 
| startPreview [1/2] | Enables the local video preview. | 
| stopPreview [1/2] | Stops the local video preview. | 
| startPreview [2/2] | Enables the local video preview and specifies the video source for the preview. | 
| stopPreview [2/2] | Stops the local video preview. | 
| onLocalVideoStateChanged | Occurs when the local video stream state changes. | 
| onLocalVideoStats | Reports the statistics of the local video stream. | 
| onFirstLocalVideoFramePublished | Occurs when the first video frame is published. | 
| onVideoPublishStateChanged | Occurs when the video publishing state changes. | 
| onVideoSizeChanged | Occurs when the video size or rotation of a specified user changes. | 
| onRemoteVideoStateChanged | Occurs when the remote video stream state changes. | 
| onRemoteVideoStats | Reports the statistics of the video stream sent by each remote users. | 
| onFirstLocalVideoFrame | Occurs when the first local video frame is displayed on the local video view. | 
| onFirstRemoteVideoFrame | Occurs when the renderer receives the first frame of the remote video. | 
| onFirstRemoteVideoDecoded | Occurs when the first remote video frame is received and decoded. | 
| onUserMuteVideo | Occurs when a remote user stops or resumes publishing the video stream. | 
| onUserEnableVideo | Occurs when a remote user enables or disables the video module. | 
Video capture
| Method / Callback | Description | 
|---|---|
| enableLocalVideo | Enables/Disables the local video capture. | 
| startCameraCapture | Starts camera capture. | 
| stopCameraCapture | Stops camera capture. | 
Video pre-processing and post-processing
| Method / Callback | Description | 
|---|---|
| takeSnapshot [1/2] | Takes a snapshot of a video stream. | 
| takeSnapshot [2/2] | Takes a screenshot of the video at the specified observation point. | 
| takeSnapshotEx [1/2] | Takes a snapshot of a video stream using connection ID. | 
| takeSnapshotEx [2/2] | Gets a video screenshot of the specified observation point using the connection ID. | 
| enableVirtualBackground [1/2] | Enables/Disables the virtual background. | 
| enableVirtualBackground [2/2] | Enables virtual background and specify the media source, or disables virtual background. | 
| setVideoEffectBoolParam | Sets the boolean parameter for video effects. | 
| setVideoEffectFloatParam | Sets the float parameter for video effects. | 
| setVideoEffectIntParam | Sets an integer parameter for video effects. | 
| startLocalVideoTranscoder | Starts the local video mixing. | 
| stopLocalVideoTranscoder | Stops the local video mixing. | 
| updateLocalTranscoderConfiguration | Updates the local video mixing configuration. | 
| onLocalVideoTranscoderError | Occurs when there's an error during the local video mixing. | 
| enableVideoImageSource | Sets whether to replace the current video feeds with images when publishing video streams. | 
| removeVideoEffect | Removes the video effect with the specified node ID. | 
| removeVideoWatermark | Removes the watermark image from the local video. | 
| removeVideoWatermarkEx | Removes the specified watermark image from the local or remote video stream. | 
| setBeautyEffectOptions [1/2] | Sets the image enhancement options. | 
| setBeautyEffectOptions [2/2] | Sets the image enhancement options and specifies the media source. | 
| setColorEnhanceOptions [1/2] | Sets color enhancement. | 
| setColorEnhanceOptions [2/2] | Sets color enhance options and specifies the media source. | 
| setLowlightEnhanceOptions [1/2] | Sets low-light enhancement. | 
| setLowlightEnhanceOptions [2/2] | Sets low light enhance options and specifies the media source. | 
| setVideoDenoiserOptions [1/2] | Sets video noise reduction. | 
| setVideoDenoiserOptions [2/2] | Sets video noise reduction and specifies the media source. | 
| setFilterEffectOptions [1/2] | Sets the filter effect options and specifies the media source. | 
| setFilterEffectOptions [2/2] | Sets the filter effect options. | 
| getBuffer | Retrieves the buffer of the watermark image. | 
| enableFaceDetection | Enables or disables face detection for the local user. | 
| isVisibleInPreview | Checks whether the watermark is visible in the local video preview. | 
| onFacePositionChanged | Reports the face detection result of the local user. | 
| getFormat | Retrieves the format of the watermark image. | 
| getHeight | Gets the height of the watermark image. | 
| getId | Retrieves the unique ID of the watermark. | 
| getImageUrl | Get the URL of the watermark image. | 
| getOptions | Retrieves watermark display options. | 
| getPositionInLandscapeMode | Gets the position of the watermark in landscape mode. | 
| getPositionInPortraitMode | Gets the position of the watermark in portrait mode. | 
| getType | Gets the type of the watermark. | 
| getVideoEffectBoolParam | Gets the boolean parameter in video effects. | 
| getVideoEffectFloatParam | Retrieves float type parameters in video effects. | 
        
| getVideoEffectIntParam | Retrieves integer parameters in video effects. | 
| getWidth | Get the width of the watermark image. | 
| getzOrder | Gets the Z-order index of the watermark image. | 
| createVideoEffectObject | Creates a video effect object. | 
| destroyVideoEffectObject | Destroys a video effect object. | 
| onSnapshotTaken | Reports the result of taking a video snapshot. | 
| addOrUpdateVideoEffect | Adds or updates the video effect for the specified node ID and template. | 
| addVideoWatermark [3/3] | Adds a watermark image to the local video. | 
| addVideoWatermarkEx [2/2] | Adds a watermark image to the local video. | 
| addVideoWatermark [1/3] | Adds a watermark image to the local video. | 
| addVideoWatermark [2/3] | Adds a watermark image to the local video. | 
| addVideoWatermarkEx [1/2] | Adds a watermark image to the local video. | 
| clearVideoWatermarks | Removes the watermark image from the video stream. | 
| clearVideoWatermarkEx | Removes the watermark image from the video stream. | 
| performVideoEffectAction | Performs an action on the specified video effect node. | 
| registerFaceInfoObserver | Registers or unregisters a facial information observer. | 
| onFaceInfo | Occurs when the facial information processed by speech driven extension is received. | 
Video rendering
| Method / Callback | Description | 
|---|---|
| setVideoRenderMode | Sets the render mode of the media player. | 
| setLocalRenderMode [2/2] | Updates the display mode of the local video view. | 
| setRemoteRenderMode | Updates the display mode of the video view of a remote user. | 
| setRemoteRenderModeEx | Sets the video display mode of a specified remote user. | 
| setLocalRenderTargetFps | Sets the maximum frame rate for rendering local video. | 
| setRemoteRenderTargetFps | Sets the maximum frame rate for rendering remote video. | 
| setView | Sets the view. | 
| setupLocalVideo | Initializes the local video view. | 
| setupRemoteVideo | Initializes the video view of a remote user. | 
| setupRemoteVideoEx | Initializes the video view of a remote user. | 
| enableInstantMediaRendering | Enables audio and video frame instant rendering. | 
| startMediaRenderingTracing | Enables tracing the video frame rendering process. | 
| startMediaRenderingTracingEx | Enables tracing the video frame rendering process. | 
| onTranscodedStreamLayoutInfo | Occurs when the local user receives a mixed video stream carrying layout information. | 
| onVideoRenderingTracingResult | Video frame rendering event callback. | 
Raw video data
| Method / Callback | Description | 
|---|---|
| registerVideoFrameObserver | Registers a raw video frame observer object. | 
| onCaptureVideoFrame | Occurs each time the SDK receives a video frame captured by local devices. | 
| onFrame | Occurs each time the player receives a video frame. | 
| onPreEncodeVideoFrame | Occurs each time the SDK receives a video frame before encoding. | 
| onRenderVideoFrame | Occurs each time the SDK receives a video frame sent by the remote user. | 
| getObservedFramePosition | Sets the frame position for the video observer. | 
| getVideoFrameProcessMode | Occurs each time the SDK receives a video frame and prompts you to set the process mode of the video frame. | 
| getMirrorApplied | Occurs each time the SDK receives a video frame and prompts you whether or not to mirror the captured video. | 
| getRotationApplied | Occurs each time the SDK receives a video frame, and prompts you whether to rotate the captured video. | 
| getVideoFormatPreference | Sets the format of the raw video data output by the SDK. | 
Encoded video data
| Method / Callback | Description | 
|---|---|
| registerVideoEncodedFrameObserver | Registers a receiver object for the encoded video image. | 
| onEncodedVideoFrameReceived | Reports that the receiver has received the to-be-decoded video frame sent by the remote end. | 
Custom Video Source and Renderer
| Method / Callback | Description | 
|---|---|
| createCustomVideoTrack | Creates a custom video track. | 
| destroyCustomVideoTrack | Destroys the specified video track. | 
| setExternalVideoSource | Configures the external video source. | 
| setExternalRemoteEglContext | Sets the EGL context for rendering remote video streams. | 
| pushExternalVideoFrameById [2/2] | Pushes the external raw video frame to the SDK through video tracks. | 
| pushExternalVideoFrame [2/2] | Pushes the external raw video frame to the SDK. | 
Music file playback
| Method / Callback | Description | 
|---|---|
| startAudioMixing [1/2] | Starts playing the music file. | 
| startAudioMixing [2/2] | Starts playing the music file. | 
| stopAudioMixing | Stops playing the music file. | 
| pauseAudioMixing | Pauses playing and mixing the music file. | 
| resumeAudioMixing | Resumes playing and mixing the music file. | 
| adjustAudioMixingVolume | Adjusts the volume during audio mixing. | 
| adjustAudioMixingPlayoutVolume | Adjusts the volume of audio mixing for local playback. | 
| adjustAudioMixingPublishVolume | Adjusts the volume of audio mixing for publishing. | 
| getAudioMixingPlayoutVolume | Retrieves the audio mixing volume for local playback. | 
| getAudioMixingPublishVolume | Retrieves the audio mixing volume for publishing. | 
| setAudioMixingPlaybackSpeed | Sets the playback speed of the current audio file. | 
| getAudioMixingDuration | Retrieves the duration (ms) of the music file. | 
| getAudioMixingCurrentPosition | Retrieves the playback position (ms) of the music file. | 
| setAudioMixingPitch | Sets the pitch of the local music file. | 
| setAudioMixingPosition | Sets the audio mixing position. | 
| setAudioMixingDualMonoMode | Sets the channel mode of the current audio file. | 
| getAudioTrackCount | Gets the index of audio tracks of the current music file. | 
| selectAudioTrack | Selects the audio track used during playback. | 
| selectMultiAudioTrack | Selects the audio tracks that you want to play on your local device and publish to the channel respectively. | 
| onAudioMixingStateChanged | Occurs when the playback state of the music file changes. | 
| onAudioMixingPositionChanged | Reports the playback progress of a music file. | 
Audio effect file playback
| Method / Callback | Description | 
|---|---|
| getAudioEffectManager | Gets the IAudioEffectManager class to manage the audio effect files. | 
| getEffectsVolume | Retrieves the volume of the audio effects. | 
| setEffectsVolume | Sets the volume of the audio effects. | 
| getVolumeOfEffect | Gets the volume of a specified audio effect file. | 
| setVolumeOfEffect | Gets the volume of a specified audio effect file. | 
| playEffectEx [1/2] | Play a specified sound effect in a channel. | 
| playEffectEx [2/2] | Plays a specified sound effect in the channel. | 
| preloadEffect | Preloads a specified audio effect file into the memory. | 
| playEffect [1/2] | Plays the specified local or online audio effect file. | 
| playEffect [2/2] | Plays the specified local or online audio effect file. | 
| pauseEffect | Pauses a specified audio effect file. | 
| pauseAllEffects | Pauses all audio effects. | 
| resumeEffect | Resumes playing a specified audio effect. | 
| preloadEffectEx [1/2] | Preloads a specified sound effect to a channel. | 
| preloadEffectEx [2/2] | Preloads a specified sound effect to the channel. | 
| resumeAllEffects | Resumes playing all audio effect files. | 
| stopEffect | Stops playing a specified audio effect. | 
| stopAllEffects | Stops playing all audio effects. | 
| unloadEffect | Releases a specified preloaded audio effect from the memory. | 
| getEffectDuration | Retrieves the duration of the audio effect file. | 
| getEffectCurrentPosition | Retrieves the playback position of the audio effect file. | 
| setEffectPosition | Sets the playback position of an audio effect file. | 
| onAudioEffectFinished | Occurs when the playback of the local music file finishes. | 
Virtual metronome
| Method / Callback | Description | 
|---|---|
| startRhythmPlayer | Enables the virtual metronome. | 
| stopRhythmPlayer | Disables the virtual metronome. | 
| configRhythmPlayer | Configures the virtual metronome. | 
| onRhythmPlayerStateChanged | Occurs when the state of virtual metronome changes. | 
Media player
For more methods about the media player, see IMediaPlayer.
| Method / Callback | Description | 
|---|---|
| createMediaPlayer | Creates a media player object. | 
| getMediaPlayerCacheManager | Gets one IMediaPlayerCacheManager instance. | 
| IMediaPlayer | This class provides media player functions and supports multiple instances. | 
| IMediaPlayerCacheManager | This class provides methods to manage cached media files. | 
| IMediaPlayerObserver | Provides callbacks for media players. | 
Media player cache
| Method / Callback | Description | 
|---|---|
| enableAutoRemoveCache | Sets whether to delete cached media files automatically. | 
| removeAllCaches | Deletes all cached media files in the media player. | 
| removeCacheByUri | Deletes a cached media file. | 
| removeOldCache | Deletes a cached media file that is the least recently used. | 
| setCacheDir | Sets the storage path for the media files that you want to cache. | 
| setMaxCacheFileCount | Sets the maximum number of media files that can be cached. | 
| setMaxCacheFileSize | Sets the maximum size of the aggregate storage space for cached media files. | 
| getCacheDir | Gets the storage path of the cached media files. | 
| getCacheFileCount | Gets the number of media files that are cached. | 
| getMaxCacheFileCount | Gets the maximum number of media files that can be cached. | 
| getMaxCacheFileSize | Gets the maximum size of the aggregate storage space for cached media files. | 
| onPlayerCacheStats | Reports the statistics of the media file being cached. | 
Channel media stream relay
| Method / Callback | Description | 
|---|---|
| startOrUpdateChannelMediaRelay | Starts relaying media streams across channels or updates channels for media relay. | 
| startOrUpdateChannelMediaRelayEx | Starts relaying media streams across channels or updates channels for media relay. | 
| stopChannelMediaRelay | Stops the media stream relay. Once the relay stops, the host quits all the target channels. | 
| stopChannelMediaRelayEx | Stops the media stream relay. Once the relay stops, the host quits all the target channels. | 
| pauseAllChannelMediaRelay | Pauses the media stream relay to all target channels. | 
| pauseAllChannelMediaRelayEx | Pauses the media stream relay to all target channels. | 
| resumeAllChannelMediaRelay | Resumes the media stream relay to all target channels. | 
| resumeAllChannelMediaRelayEx | Resumes the media stream relay to all target channels. | 
| onChannelMediaRelayStateChanged | Occurs when the state of the media stream relay changes. | 
Media push
| Method / Callback | Description | 
|---|---|
| startRtmpStreamWithoutTranscoding | Starts pushing media streams to a CDN without transcoding. | 
| startRtmpStreamWithoutTranscodingEx | Starts pushing media streams to a CDN without transcoding. | 
| startRtmpStreamWithTranscoding | Starts Media Push and sets the transcoding configuration. | 
| startRtmpStreamWithTranscodingEx | Starts Media Push and sets the transcoding configuration. | 
| updateRtmpTranscoding | Updates the transcoding configuration. | 
| updateRtmpTranscodingEx | Updates the transcoding configuration. | 
| stopRtmpStream | Stops pushing media streams to a CDN. | 
| stopRtmpStreamEx | Stops pushing media streams to a CDN. | 
| onRtmpStreamingEvent | Reports events during the Media Push. | 
| onRtmpStreamingStateChanged | Occurs when the state of Media Push changes. | 
| onTranscodingUpdated | Occurs when the publisher's transcoding is updated. | 
Pushing streams to a CDN directly
| Method / Callback | Description | 
|---|---|
| startDirectCdnStreaming | Starts pushing media streams to the CDN directly. | 
| stopDirectCdnStreaming | Stops pushing media streams to the CDN directly. | 
| setDirectCdnStreamingAudioConfiguration | Sets the audio profile of the audio streams directly pushed to the CDN by the host. | 
| setDirectCdnStreamingVideoConfiguration | Sets the video profile of the media streams directly pushed to the CDN by the host. | 
| onDirectCdnStreamingStateChanged | Occurs when the CDN streaming state changes. | 
| onDirectCdnStreamingStats | Reports the CDN streaming statistics. | 
Data stream
| Method / Callback | Description | 
|---|---|
| createDataStream [1/2] | Creates a data stream. | 
| createDataStream [2/2] | Creates a data stream. | 
| createDataStreamEx [2/2] | Creates a data stream. | 
| sendStreamMessage | Sends data stream messages. | 
| onStreamMessage | Occurs when the local user receives the data stream from the remote user. | 
| onStreamMessageError | Occurs when the local user does not receive the data stream from the remote user. | 
Metadata (SEI)
| Method / Callback | Description | 
|---|---|
| registerMediaMetadataObserver | Registers the metadata observer. | 
| unregisterMediaMetadataObserver | Unregisters the specified metadata observer. | 
| onReadyToSendMetadata | Occurs when the SDK is ready to send metadata. | 
| onMetaData | Occurs when the media metadata is received. | 
| onMetadataReceived | Occurs when the local user receives the metadata. | 
Audio route
| Method / Callback | Description | 
|---|---|
| setDefaultAudioRouteToSpeakerphone | Sets the default audio playback route. | 
| setEnableSpeakerphone | Enables/Disables the audio route to the speakerphone. | 
| setRouteInCommunicationMode | Selects the audio playback route in communication audio mode. | 
| isSpeakerphoneEnabled | Checks whether the speakerphone is enabled. | 
| onAudioRouteChanged | Occurs when the local audio route changes. | 
Video Device Management
| Method / Callback | Description | 
|---|---|
| switchCamera [1/2] | Switches between front and rear cameras. | 
| switchCamera [2/2] | Switches cameras by camera ID. | 
| setCameraCapturerConfiguration | Sets the camera capture configuration. | 
| isCameraZoomSupported | Checks whether the device supports camera zoom. | 
| getCameraMaxZoomFactor | Get the maximum zoom ratio supported by the camera. | 
| setCameraZoomFactor | Sets the camera zoom factor. | 
| isCameraTorchSupported | Checks whether the device supports camera flash. | 
| setCameraTorchOn | Enables the camera flash. | 
| isCameraFaceDetectSupported | Checks whether the device camera supports face detection. | 
| isCameraFocusSupported | Check whether the device supports the manual focus function. | 
| isCameraExposureSupported | Queries whether the current camera supports adjusting exposure value. | 
| setCameraExposureFactor | Sets the camera exposure value. | 
| setCameraFocusPositionInPreview | Sets the camera manual focus position. | 
| isCameraAutoFocusFaceModeSupported | Checks whether the device supports the face auto-focus function. | 
| setCameraAutoFocusFaceModeEnabled | Enables the camera auto-face focus function. | 
| isCameraExposurePositionSupported | Checks whether the device supports manual exposure. | 
| setCameraExposurePosition | Sets the camera exposure position. | 
| onCameraFocusAreaChanged | Occurs when the camera focus area changes. | 
| onCameraExposureAreaChanged | Occurs when the camera exposure area changes. | 
| queryCameraFocalLengthCapability | Queries the focal length capability supported by the camera. | 
| queryCodecCapability | Queries the video codec capabilities of the SDK. | 
Audio Device Management
| Method / Callback | Description | 
|---|---|
| startPlaybackDeviceTest | Starts the audio playback device test. | 
| stopPlaybackDeviceTest | Stops the audio playback device test. | 
| startRecordingDeviceTest | Starts the audio capturing device test. | 
| stopRecordingDeviceTest | Stops the audio capturing device test. | 
| getAudioDeviceInfo | Gets the audio device information. | 
Extension
| Method / Callback | Description | 
|---|---|
| addExtension | Adds the extension. | 
| registerExtension | Registers an extension. | 
| enableExtension | Enables or disables extensions. | 
| getExtensionProperty [1/2] | Gets detailed information on the extensions. | 
| getExtensionProperty [2/2] | Gets detailed information on the extensions. | 
| setExtensionProperty | Sets the properties of the extension. | 
| setExtensionProviderProperty | Sets the properties of the extension provider. | 
| onStartedWithContext | Occurrs when the extension is enabled. | 
| onStoppedWithContext | Occurs when the extension is disabled. | 
| onEventWithContext | The event callback of the extension. | 
| onErrorWithContext | Occurs when the extension runs incorrectly. | 
Network and others
| Method / Callback | Description | 
|---|---|
| startEchoTest | Starts an audio device loopback test. | 
| stopEchoTest | Stops the audio call test. | 
| startLastmileProbeTest | Starts the last mile network probe test. | 
| stopLastmileProbeTest | Stops the last mile network probe test. | 
| onLastmileQuality | Reports the last-mile network quality of the local user. | 
| onLastmileProbeResult | Reports the last mile network probe result. | 
| getCurrentMonotonicTimeInMs | Gets the current Monotonic Time of the SDK. | 
| queryDeviceScore | Queries device score. | 
| setCloudProxy | Sets up cloud proxy service. | 
| setParameters | Provides technical preview functionalities or special customizations by configuring the SDK with JSON options. | 
| getCallId | Retrieves the call ID. | 
| getCallIdEx | Gets the call ID with the connection ID. | 
| isFeatureAvailableOnDevice | Checks whether the device supports the specified advanced feature. | 
| rate | Allows a user to rate a call after the call ends. | 
| complain | Allows a user to complain about the call quality after a call ends. | 
| getConnectionState | Gets the current connection state of the SDK. | 
| getConnectionStateEx | Gets the current connection state of the SDK. | 
| getSdkVersion | Gets the SDK version. | 
| getErrorDescription | Gets the warning or error description. | 
| getNativeHandle | Gets the C++ handle of the Native SDK. | 
| addHandler | Adds event handlers | 
| removeHandler | Removes the specified IRtcEngineEventHandler instance. | 
| getNetworkType | Gets the type of the local network connection. | 
| getNtpWallTimeInMs | Gets the current NTP (Network Time Protocol) time. | 
| enableEncryption | Enables or disables the built-in encryption. | 
| enableEncryptionEx | Enables or disables the built-in encryption. | 
| sendCustomReportMessage | Reports customized messages. | 
| sendCustomReportMessageEx | Agora supports reporting and analyzing customized messages. | 
| setRemoteSubscribeFallbackOption [2/2] | Sets the fallback option for the subscribed video stream based on the network conditions. | 
| onRemoteSubscribeFallbackToAudioOnly | Occurs when the remote media stream falls back to the audio-only stream due to poor network conditions or switches back to the video stream after the network conditions improve. | 
| onEncryptionError | Reports the built-in encryption errors. | 
| onProxyConnected | Reports the proxy connection state. | 
| onMultipathStats | Callback for multipath transmission statistics. | 
| onNetworkQuality | Reports the last mile network quality of each user in the channel. | 
| onRtcStats | Reports the statistics about the current call. | 
| onPermissionError | Occurs when the SDK cannot get the device permission. |