Agora Java API Reference for Android

Public Member Functions | List of all members
io.agora.rtc2.RtcEngineEx Class Referenceabstract
Inheritance diagram for io.agora.rtc2.RtcEngineEx:

## Public Member Functions
abstract int | muteLocalAudioStreamEx (boolean muted, RtcConnection connection)
abstract int | muteLocalVideoStreamEx (boolean muted, RtcConnection connection)
abstract int | muteAllRemoteAudioStreamsEx (boolean muted, RtcConnection connection)
abstract int | muteAllRemoteVideoStreamsEx (boolean muted, RtcConnection connection)
abstract int | muteRemoteAudioStreamEx (int uid, boolean muted, RtcConnection connection)
abstract int | muteRemoteVideoStreamEx (int uid, boolean muted, RtcConnection connection)
abstract int | setRemoteVideoStreamTypeEx (int uid, Constants.VideoStreamType streamType, RtcConnection connection)
abstract int | setRemoteVideoStreamTypeEx (int uid, int streamType, RtcConnection connection)
abstract int | setHighPriorityUserListEx (int[] uidList, int option, RtcConnection connection)
abstract int | setSubscribeAudioBlocklistEx (int[] uidList, RtcConnection connection)
abstract int | setSubscribeAudioAllowlistEx (int[] uidList, RtcConnection connection)
abstract int | setSubscribeVideoBlocklistEx (int[] uidList, RtcConnection connection)
abstract int | setSubscribeVideoAllowlistEx (int[] uidList, RtcConnection connection)
abstract int | setRemoteRenderModeEx (int uid, int renderMode, int mirrorMode, RtcConnection connection)
abstract int | setupRemoteVideoEx (VideoCanvas remote, RtcConnection connection)
abstract int | setVideoEncoderConfigurationEx (VideoEncoderConfiguration config, RtcConnection connection)
abstract int | updateChannelMediaOptionsEx (ChannelMediaOptions options, RtcConnection connection)
abstract int | joinChannelEx (String token, RtcConnection connection, ChannelMediaOptions options, IRtcEngineEventHandler eventHandler)
abstract int | leaveChannelEx (RtcConnection connection)
abstract int | leaveChannelEx (RtcConnection connection, LeaveChannelOptions options)
abstract int | leaveChannelWithUserAccountEx (String channelId, String userAccount)
abstract int | leaveChannelWithUserAccountEx (String channelId, String userAccount, LeaveChannelOptions options)
abstract int | enableDualStreamModeEx (boolean enabled, SimulcastStreamConfig streamConfig, RtcConnection connection)
abstract int | setDualStreamModeEx (Constants.SimulcastStreamMode mode, SimulcastStreamConfig streamConfig, RtcConnection connection)
abstract int | setSimulcastConfigEx (SimulcastConfig simulcastConfig, RtcConnection connection)
abstract int | getConnectionStateEx (RtcConnection connection)
abstract int | sendCustomReportMessageEx (String id, String category, String event, String label, int value, RtcConnection connection)
abstract int | sendStreamMessageEx (int streamId, byte[] message, RtcConnection connection)
abstract int | createDataStreamEx (boolean reliable, boolean ordered, RtcConnection connection)
abstract int | createDataStreamEx (DataStreamConfig config, RtcConnection connection)
abstract int | joinChannelWithUserAccountEx (String token, String channelId, String userAccount, ChannelMediaOptions options, IRtcEngineEventHandler eventHandler)
abstract int | getUserInfoByUserAccountEx (String userAccount, UserInfo userInfo, RtcConnection connection)
abstract int | getUserInfoByUidEx (int uid, UserInfo userInfo, RtcConnection connection)
abstract int | adjustRecordingSignalVolumeEx (int volume, RtcConnection connection)
abstract int | muteRecordingSignalEx (boolean muted, RtcConnection connection)
abstract int | adjustUserPlaybackSignalVolumeEx (int uid, int volume, RtcConnection connection)
abstract int | setRemoteVoicePositionEx (int uid, double pan, double gain, RtcConnection connection)
abstract int | setRemoteVideoSubscriptionOptionsEx (int uid, VideoSubscriptionOptions options, RtcConnection rtcConnection)
abstract int | setRemoteUserSpatialAudioParamsEx (int uid, SpatialAudioParams params, RtcConnection connection)
abstract int | addVideoWatermarkEx (String watermarkUrl, WatermarkOptions options, RtcConnection connection)
abstract int | clearVideoWatermarkEx (RtcConnection connection)
abstract int | enableAudioVolumeIndicationEx (int interval, int smooth, boolean reportVad, RtcConnection connection)
abstract int | takeSnapshotEx (RtcConnection connection, int uid, String filePath)
abstract int | takeSnapshotEx (RtcConnection connection, int uid, SnapshotConfig config)
abstract int | enableContentInspectEx (boolean enabled, ContentInspectConfig config, RtcConnection connection)
abstract int | startRtmpStreamWithoutTranscodingEx (String url, RtcConnection connection)
abstract int | startRtmpStreamWithTranscodingEx (String url, LiveTranscoding transcoding, RtcConnection connection)
abstract int | updateRtmpTranscodingEx (LiveTranscoding transcoding, RtcConnection connection)
abstract int | stopRtmpStreamEx (String url, RtcConnection connection)
abstract int | startOrUpdateChannelMediaRelayEx (ChannelMediaRelayConfiguration channelMediaRelayConfiguration, RtcConnection connection)
abstract int | stopChannelMediaRelayEx (RtcConnection connection)
abstract int | pauseAllChannelMediaRelayEx (RtcConnection connection)
abstract int | resumeAllChannelMediaRelayEx (RtcConnection connection)
abstract int | startMediaRenderingTracingEx (RtcConnection connection)
| Start tracing media rendering events. More...
abstract int | setParametersEx (String parameters, RtcConnection connection)
abstract String | getCallIdEx (RtcConnection connection)
abstract void | addHandlerEx (IRtcEngineEventHandler handler, RtcConnection connection)
abstract void | removeHandlerEx (IRtcEngineEventHandler handler, RtcConnection connection)
abstract int | enableEncryptionEx (boolean enabled, EncryptionConfig config, RtcConnection connection)
abstract int | sendAudioMetadataEx (byte[] metadata, RtcConnection connection)
abstract int | enableVideoImageSourceEx (boolean enabled, ImageTrackOptions options, RtcConnection connection)
abstract int | preloadEffectEx (RtcConnection connection, int soundId, String filePath)
abstract int | preloadEffectEx (RtcConnection connection, int soundId, String filePath, int startPos)
abstract int | playEffectEx (RtcConnection connection, int soundId, String filePath, int loopCount, double pitch, double pan, double gain, boolean publish)
abstract int | playEffectEx (RtcConnection connection, int soundId, String filePath, int loopCount, double pitch, double pan, double gain, boolean publish, int startPos)
Public Member Functions inherited from io.agora.rtc2.RtcEngine
abstract int | setChannelProfile (int profile)
abstract int | setClientRole (int role)
abstract int | setClientRole (int role, ClientRoleOptions options)
abstract int | sendCustomReportMessage (String id, String category, String event, String label, int value)
abstract int | preloadChannel (String token, String channelName, int optionalUid)
abstract int | preloadChannelWithUserAccount (String token, String channelName, String userAccount)
abstract int | updatePreloadChannelToken (String token)
abstract int | joinChannel (String token, String channelId, String optionalInfo, int uid)
abstract int | joinChannel (String token, String channelId, int uid, ChannelMediaOptions options)
abstract int | registerLocalUserAccount (String appId, String userAccount)
abstract int | joinChannelWithUserAccount (String token, String channelName, String userAccount)
abstract int | joinChannelWithUserAccount (String token, String channelName, String userAccount, ChannelMediaOptions options)
abstract int | getUserInfoByUserAccount (String userAccount, UserInfo userInfo)
abstract int | getUserInfoByUid (int uid, UserInfo userInfo)
abstract int | leaveChannel ()
abstract int | leaveChannel (LeaveChannelOptions options)
abstract int | renewToken (String token)
abstract DeviceInfo | getAudioDeviceInfo ()
abstract int | enableWebSdkInteroperability (boolean enabled)
abstract int | getConnectionState ()
abstract int | enableAudio ()
abstract int | disableAudio ()
abstract int | pauseAudio ()
abstract int | resumeAudio ()
abstract int | setAudioProfile (int profile)
abstract int | setAudioProfile (int profile, int scenario)
abstract int | setAudioScenario (int scenario)
abstract int | setHighQualityAudioParameters (boolean fullband, boolean stereo, boolean fullBitrate)
abstract int | adjustRecordingSignalVolume (int volume)
abstract int | adjustPlaybackSignalVolume (int volume)
abstract int | enableAudioVolumeIndication (int interval, int smooth, boolean reportVad)
abstract int | enableLocalAudio (boolean enabled)
abstract int | muteLocalAudioStream (boolean muted)
abstract int | muteRemoteAudioStream (int uid, boolean muted)
abstract int | adjustUserPlaybackSignalVolume (int uid, int volume)
abstract int | muteAllRemoteAudioStreams (boolean muted)
abstract int | enableVideo ()
abstract int | disableVideo ()
abstract int | setVideoEncoderConfiguration (VideoEncoderConfiguration config)
abstract CodecCapInfo[] | queryCodecCapability ()
abstract int | queryDeviceScore ()
abstract AgoraFocalLengthInfo[] | queryCameraFocalLengthCapability ()
abstract int | setCameraCapturerConfiguration (CameraCapturerConfiguration config)
abstract int | setupLocalVideo (VideoCanvas local)
abstract int | setupRemoteVideo (VideoCanvas remote)
abstract int | setRemoteRenderMode (int uid, int renderMode)
abstract int | setLocalRenderMode (int renderMode)
abstract int | setRemoteRenderMode (int uid, int renderMode, int mirrorMode)
abstract int | setLocalRenderMode (int renderMode, int mirrorMode)
abstract int | startPreview ()
abstract int | startPreview (Constants.VideoSourceType sourceType)
abstract int | stopPreview ()
abstract int | stopPreview (Constants.VideoSourceType sourceType)
abstract int | enableLocalVideo (boolean enabled)
abstract int | startCameraCapture (Constants.VideoSourceType sourceType, CameraCapturerConfiguration config)
abstract int | stopCameraCapture (Constants.VideoSourceType sourceType)
abstract int | startLocalVideoTranscoder (LocalTranscoderConfiguration config)
abstract int | stopLocalVideoTranscoder ()
abstract int | updateLocalTranscoderConfiguration (LocalTranscoderConfiguration config)
abstract int | startLocalAudioMixer (LocalAudioMixerConfiguration config)
abstract int | updateLocalAudioMixerConfiguration (LocalAudioMixerConfiguration config)
abstract int | stopLocalAudioMixer ()
abstract int | muteLocalVideoStream (boolean muted)
abstract int | muteRemoteVideoStream (int uid, boolean muted)
abstract int | muteAllRemoteVideoStreams (boolean muted)
abstract int | setBeautyEffectOptions (boolean enabled, BeautyOptions options)
abstract int | setBeautyEffectOptions (boolean enabled, BeautyOptions options, Constants.MediaSourceType sourceType)
abstract int | setFaceShapeBeautyOptions (boolean enabled, FaceShapeBeautyOptions options)
abstract int | setFaceShapeBeautyOptions (boolean enabled, FaceShapeBeautyOptions options, Constants.MediaSourceType sourceType)
abstract FaceShapeBeautyOptions | getFaceShapeBeautyOptions ()
abstract FaceShapeBeautyOptions | getFaceShapeBeautyOptions (Constants.MediaSourceType sourceType)
abstract int | setFaceShapeAreaOptions (FaceShapeAreaOptions options)
abstract int | setFaceShapeAreaOptions (FaceShapeAreaOptions options, Constants.MediaSourceType sourceType)
abstract FaceShapeAreaOptions | getFaceShapeAreaOptions (int shapeArea)
abstract FaceShapeAreaOptions | getFaceShapeAreaOptions (int shapeArea, Constants.MediaSourceType sourceType)
abstract int | setFilterEffectOptions (boolean enabled, FilterEffectOptions options)
abstract int | setFilterEffectOptions (boolean enabled, FilterEffectOptions options, Constants.MediaSourceType sourceType)
abstract int | setLowlightEnhanceOptions (boolean enabled, LowLightEnhanceOptions options)
abstract int | setLowlightEnhanceOptions (boolean enabled, LowLightEnhanceOptions options, Constants.MediaSourceType sourceType)
abstract int | setVideoDenoiserOptions (boolean enabled, VideoDenoiserOptions options)
abstract int | setVideoDenoiserOptions (boolean enabled, VideoDenoiserOptions options, Constants.MediaSourceType sourceType)
abstract int | setColorEnhanceOptions (boolean enabled, ColorEnhanceOptions options)
abstract int | setColorEnhanceOptions (boolean enabled, ColorEnhanceOptions options, Constants.MediaSourceType sourceType)
abstract IVideoEffectObject | createVideoEffectObject (String bundlePath, Constants.MediaSourceType sourceType)
| Creates a video effect object. More...
abstract int | destroyVideoEffectObject (IVideoEffectObject videoEffectObject)
| Destroys video effect object. More...
abstract int | enableVirtualBackground (boolean enabled, VirtualBackgroundSource backgroundSource, SegmentationProperty segproperty)
abstract int | enableVirtualBackground (boolean enabled, VirtualBackgroundSource backgroundSource, SegmentationProperty segproperty, Constants.MediaSourceType sourceType)
abstract int | setDefaultAudioRoutetoSpeakerphone (boolean defaultToSpeaker)
abstract int | setEnableSpeakerphone (boolean enabled)
abstract int | setRouteInCommunicationMode (int route)
abstract boolean | isSpeakerphoneEnabled ()
abstract int | enableInEarMonitoring (boolean enabled)
abstract int | enableInEarMonitoring (boolean enabled, int includeAudioFilters)
abstract int | setInEarMonitoringVolume (int volume)
abstract int | setLocalVoicePitch (double pitch)
abstract int | setLocalVoiceFormant (double formantRatio)
abstract int | setLocalVoiceEqualization (Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain)
abstract int | setLocalVoiceReverb (Constants.AUDIO_REVERB_TYPE reverbKey, int value)
abstract int | setHeadphoneEQPreset (int preset)
abstract int | setHeadphoneEQParameters (int lowGain, int highGain)
abstract int | setAudioEffectPreset (int preset)
abstract int | setVoiceBeautifierPreset (int preset)
abstract int | setVoiceConversionPreset (int preset)
abstract int | setAudioEffectParameters (int preset, int param1, int param2)
abstract int | setVoiceBeautifierParameters (int preset, int param1, int param2)
abstract int | setVoiceConversionParameters (int preset, int param1, int param2)
abstract int | enableSoundPositionIndication (boolean enabled)
abstract int | setRemoteVoicePosition (int uid, double pan, double gain)
abstract int | enableVoiceAITuner (boolean enabled, Constants.VOICE_AI_TUNER_TYPE type)
abstract int | startAudioMixing (String filePath, boolean loopback, int cycle)
abstract int | enableSpatialAudio (boolean enabled)
abstract int | setRemoteUserSpatialAudioParams (int uid, SpatialAudioParams params)
abstract int | setRemoteVideoSubscriptionOptions (int uid, VideoSubscriptionOptions options)
abstract int | setAINSMode (boolean enabled, int mode)
abstract int | startAudioMixing (String filePath, boolean loopback, int cycle, int startPos)
abstract int | stopAudioMixing ()
abstract int | pauseAudioMixing ()
abstract int | resumeAudioMixing ()
abstract int | adjustAudioMixingVolume (int volume)
abstract int | adjustAudioMixingPlayoutVolume (int volume)
abstract int | adjustAudioMixingPublishVolume (int volume)
abstract int | getAudioMixingPlayoutVolume ()
abstract int | getAudioMixingPublishVolume ()
abstract int | getAudioMixingDuration ()
abstract int | getAudioMixingCurrentPosition ()
abstract int | setAudioMixingPosition (int pos)
abstract int | setAudioMixingDualMonoMode (Constants.AudioMixingDualMonoMode mode)
abstract int | setAudioMixingPitch (int pitch)
abstract int | setAudioMixingPlaybackSpeed (int speed)
abstract int | selectAudioTrack (int audioIndex)
abstract int | getAudioTrackCount ()
abstract IAudioEffectManager | getAudioEffectManager ()
abstract int | startAudioRecording (String filePath, int quality)
abstract int | startAudioRecording (AudioRecordingConfiguration config)
abstract int | stopAudioRecording ()
abstract int | startEchoTest (EchoTestConfiguration config)
abstract int | stopEchoTest ()
abstract int | startLastmileProbeTest (LastmileProbeConfig config)
abstract int | stopLastmileProbeTest ()
abstract int | setExternalAudioSource (boolean enabled, int sampleRate, int channels)
abstract int | setExternalAudioSink (boolean enabled, int sampleRate, int channels)
abstract int | setExternalRemoteEglContext (Object eglContext)
abstract int | pullPlaybackAudioFrame (byte[] data, int lengthInByte)
abstract int | pullPlaybackAudioFrame (ByteBuffer data, int lengthInByte)
abstract int | startRecordingDeviceTest (int indicationInterval)
abstract int | stopRecordingDeviceTest ()
abstract int | startPlaybackDeviceTest (String audioFileName)
abstract int | stopPlaybackDeviceTest ()
abstract int | createCustomAudioTrack (Constants.AudioTrackType trackType, AudioTrackConfig config)
abstract int | destroyCustomAudioTrack (int trackId)
abstract int | setExternalAudioSource (boolean enabled, int sampleRate, int channels, boolean localPlayback, boolean publish)
abstract int | pushExternalAudioFrame (byte[] data, long timestamp)
abstract int | pushExternalAudioFrame (ByteBuffer data, long timestamp, int trackId)
abstract int | pushExternalAudioFrame (byte[] data, long timestamp, int sampleRate, int channels, Constants.BytesPerSample bytesPerSample, int trackId)
abstract int | pushExternalAudioFrame (ByteBuffer data, long timestamp, int sampleRate, int channels, Constants.BytesPerSample bytesPerSample, int trackId)
abstract int | setExternalVideoSource (boolean enable, boolean useTexture, Constants.ExternalVideoSourceType sourceType)
abstract int | setExternalVideoSource (boolean enable, boolean useTexture, Constants.ExternalVideoSourceType sourceType, EncodedVideoTrackOptions encodedOpt)
abstract boolean | pushExternalVideoFrame (VideoFrame frame)
abstract int | pushExternalVideoFrameById (VideoFrame frame, int videoTrackId)
abstract int | pushExternalVideoFrameById (AgoraVideoFrame frame, int videoTrackId)
abstract int | pushExternalEncodedVideoFrame (ByteBuffer data, EncodedVideoFrameInfo frameInfo)
abstract int | pushExternalEncodedVideoFrameById (ByteBuffer data, EncodedVideoFrameInfo frameInfo, int videoTrackId)
abstract boolean | pushExternalVideoFrame (AgoraVideoFrame frame)
abstract boolean | isTextureEncodeSupported ()
abstract int | registerAudioFrameObserver (IAudioFrameObserver observer)
abstract int | registerAudioEncodedFrameObserver (AudioEncodedFrameObserverConfig config, IAudioEncodedFrameObserver observer)
abstract int | setRecordingAudioFrameParameters (int sampleRate, int channel, int mode, int samplesPerCall)
abstract int | setPlaybackAudioFrameParameters (int sampleRate, int channel, int mode, int samplesPerCall)
abstract int | setMixedAudioFrameParameters (int sampleRate, int channel, int samplesPerCall)
abstract int | setEarMonitoringAudioFrameParameters (int sampleRate, int channel, int mode, int samplesPerCall)
abstract int | addVideoWatermark (AgoraImage watermark)
abstract int | addVideoWatermark (String watermarkUrl, WatermarkOptions options)
abstract int | clearVideoWatermarks ()
abstract int | setRemoteUserPriority (int uid, int userPriority)
abstract int | setLocalPublishFallbackOption (Constants.StreamFallbackOptions option)
abstract int | setLocalPublishFallbackOption (int option)
abstract int | setRemoteSubscribeFallbackOption (Constants.StreamFallbackOptions option)
abstract int | setRemoteSubscribeFallbackOption (int option)
abstract int | setHighPriorityUserList (int[] uidList, int option)
abstract int | enableDualStreamMode (boolean enabled)
abstract int | enableDualStreamMode (boolean enabled, SimulcastStreamConfig streamConfig)
abstract int | setDualStreamMode (Constants.SimulcastStreamMode mode)
abstract int | setDualStreamMode (Constants.SimulcastStreamMode mode, SimulcastStreamConfig streamConfig)
abstract int | setSimulcastConfig (SimulcastConfig simulcastConfig)
abstract int | setLocalRenderTargetFps (Constants.VideoSourceType sourceType, int targetFps)
abstract int | setRemoteRenderTargetFps (int targetFps)
abstract int | setRemoteVideoStreamType (int uid, Constants.VideoStreamType streamType)
abstract int | setRemoteVideoStreamType (int uid, int streamType)
abstract int | setRemoteDefaultVideoStreamType (Constants.VideoStreamType streamType)
abstract int | setRemoteDefaultVideoStreamType (int streamType)
abstract int | setSubscribeAudioBlocklist (int[] uidList)
abstract int | setSubscribeAudioAllowlist (int[] uidList)
abstract int | setSubscribeVideoBlocklist (int[] uidList)
abstract int | setSubscribeVideoAllowlist (int[] uidList)
abstract int | enableEncryption (boolean enabled, EncryptionConfig config)
abstract int | startRtmpStreamWithoutTranscoding (String url)
abstract int | startRtmpStreamWithTranscoding (String url, LiveTranscoding transcoding)
abstract int | updateRtmpTranscoding (LiveTranscoding transcoding)
abstract int | stopRtmpStream (String url)
abstract int | createDataStream (boolean reliable, boolean ordered)
abstract int | createDataStream (DataStreamConfig config)
abstract int | sendStreamMessage (int streamId, byte[] message)
abstract int | setVideoQualityParameters (boolean preferFrameRateOverImageQuality)
abstract int | setLocalVideoMirrorMode (int mode)
abstract int | switchCamera ()
abstract int | switchCamera (String cameraId)
abstract boolean | isCameraZoomSupported ()
abstract boolean | isCameraTorchSupported ()
abstract boolean | isCameraFocusSupported ()
abstract boolean | isCameraExposurePositionSupported ()
abstract boolean | isCameraAutoFocusFaceModeSupported ()
abstract boolean | isCameraFaceDetectSupported ()
abstract boolean | isCameraExposureSupported ()
abstract int | setCameraZoomFactor (float factor)
abstract float | getCameraMaxZoomFactor ()
abstract int | setCameraFocusPositionInPreview (float positionX, float positionY)
abstract int | setCameraExposurePosition (float positionXinView, float positionYinView)
abstract int | enableFaceDetection (boolean enabled)
abstract int | setCameraTorchOn (boolean isOn)
abstract int | setCameraAutoFocusFaceModeEnabled (boolean enabled)
abstract int | setCameraExposureFactor (int factor)
abstract String | getCallId ()
abstract int | rate (String callId, int rating, String description)
abstract int | complain (String callId, String description)
abstract int | setLogFile (String filePath)
abstract int | setLogFilter (int filter)
abstract int | setLogLevel (int level)
abstract int | setLogFileSize (long fileSizeInKBytes)
abstract String | uploadLogFile ()
abstract int | writeLog (int level, String format, Object... args)
abstract long | getNativeHandle ()
void | addHandler (IRtcEngineEventHandler handler)
void | removeHandler (IRtcEngineEventHandler handler)
abstract boolean | enableHighPerfWifiMode (boolean enable)
abstract long | getNativeMediaPlayer (int sourceId)
abstract int | queryScreenCaptureCapability ()
abstract void | monitorHeadsetEvent (boolean monitor)
abstract void | monitorBluetoothHeadsetEvent (boolean monitor)
abstract void | setPreferHeadset (boolean enabled)
abstract int | setParameters (String parameters)
abstract String | getParameters (String parameters)
abstract String | getParameter (String parameter, String args)
abstract int | registerMediaMetadataObserver (IMetadataObserver observer, int type)
abstract int | unregisterMediaMetadataObserver (IMetadataObserver observer, int type)
abstract int | startOrUpdateChannelMediaRelay (ChannelMediaRelayConfiguration channelMediaRelayConfiguration)
abstract int | stopChannelMediaRelay ()
abstract int | pauseAllChannelMediaRelay ()
abstract int | resumeAllChannelMediaRelay ()
abstract int | updateChannelMediaOptions (ChannelMediaOptions options)
abstract int | muteRecordingSignal (boolean muted)
abstract int | setPlaybackAudioFrameBeforeMixingParameters (int sampleRate, int channel)
abstract int | enableAudioSpectrumMonitor (int intervalInMS)
abstract int | disableAudioSpectrumMonitor ()
abstract int | registerAudioSpectrumObserver (IAudioSpectrumObserver observer)
abstract int | unRegisterAudioSpectrumObserver (IAudioSpectrumObserver observer)
abstract double | getEffectsVolume ()
abstract int | setEffectsVolume (double volume)
abstract int | preloadEffect (int soundId, String filePath)
abstract int | preloadEffect (int soundId, String filePath, int startPos)
abstract int | playEffect (int soundId, String filePath, int loopCount, double pitch, double pan, double gain, boolean publish)
abstract int | playEffect (int soundId, String filePath, int loopCount, double pitch, double pan, double gain, boolean publish, int startPos)
abstract int | playAllEffects (int loopCount, double pitch, double pan, double gain, boolean publish)
abstract int | getVolumeOfEffect (int soundId)
abstract int | setVolumeOfEffect (int soundId, double volume)
abstract int | pauseEffect (int soundId)
abstract int | pauseAllEffects ()
abstract int | resumeEffect (int soundId)
abstract int | resumeAllEffects ()
abstract int | stopEffect (int soundId)
abstract int | stopAllEffects ()
abstract int | unloadEffect (int soundId)
abstract int | unloadAllEffects ()
abstract int | getEffectDuration (String filePath)
abstract int | setEffectPosition (int soundId, int pos)
abstract int | getEffectCurrentPosition (int soundId)
abstract int | registerVideoEncodedFrameObserver (IVideoEncodedFrameObserver receiver)
abstract int | registerFaceInfoObserver (IFaceInfoObserver receiver)
abstract int | takeSnapshot (int uid, String filePath)
abstract int | takeSnapshot (int uid, SnapshotConfig config)
abstract int | enableContentInspect (boolean enabled, ContentInspectConfig config)
abstract int | loadExtensionProvider (String path)
abstract int | registerExtension (String provider, String extension, Constants.MediaSourceType sourceType)
abstract int | enableExtension (String provider, String extension, boolean enable)
abstract int | enableExtension (String provider, String extension, boolean enable, Constants.MediaSourceType sourceType)
abstract int | setExtensionProperty (String provider, String extension, String key, String value)
abstract int | setExtensionProperty (String provider, String extension, String key, String value, Constants.MediaSourceType sourceType)
abstract String | getExtensionProperty (String provider, String extension, String key)
abstract String | getExtensionProperty (String provider, String extension, String key, Constants.MediaSourceType sourceType)
abstract int | setExtensionProviderProperty (String provider, String key, String value)
abstract int | enableExtension (String provider, String extension, ExtensionInfo extensionInfo, boolean enable)
abstract int | setExtensionProperty (String provider, String extension, ExtensionInfo extensionInfo, String key, String value)
abstract String | getExtensionProperty (String provider, String extension, ExtensionInfo extensionInfo, String key)
abstract int | startScreenCapture (ScreenCaptureParameters screenCaptureParameters)
abstract int | setExternalMediaProjection (MediaProjection mediaProjection)
abstract int | setScreenCaptureScenario (Constants.ScreenScenarioType screenScenario)
abstract int | stopScreenCapture ()
abstract int | setVideoScenario (Constants.VideoScenario scenarioType)
abstract int | setVideoQoEPreference (Constants.QoEPreference qoePreference)
abstract int | updateScreenCaptureParameters (ScreenCaptureParameters screenCaptureParameters)
abstract int | registerVideoFrameObserver (IVideoFrameObserver observer)
abstract IMediaPlayer | createMediaPlayer ()
abstract AgoraMediaRecorder | createMediaRecorder (RecorderStreamInfo info)
abstract void | destroyMediaRecorder (AgoraMediaRecorder mediaRecorder)
abstract IMediaPlayerCacheManager | getMediaPlayerCacheManager ()
abstract IH265Transcoder | getH265Transcoder ()
abstract int | enableExternalAudioSourceLocalPlayback (boolean enabled)
abstract int | adjustCustomAudioPublishVolume (int trackId, int volume)
abstract int | adjustCustomAudioPlayoutVolume (int trackId, int volume)
abstract int | startRhythmPlayer (String sound1, String sound2, AgoraRhythmPlayerConfig config)
abstract int | stopRhythmPlayer ()
abstract int | configRhythmPlayer (AgoraRhythmPlayerConfig config)
abstract int | setDirectCdnStreamingAudioConfiguration (int profile)
abstract int | setDirectCdnStreamingVideoConfiguration (VideoEncoderConfiguration config)
abstract long | getCurrentMonotonicTimeInMs ()
abstract int | startDirectCdnStreaming (IDirectCdnStreamingEventHandler eventHandler, String publishUrl, DirectCdnStreamingMediaOptions options)
abstract int | stopDirectCdnStreaming ()
abstract int | updateDirectCdnStreamingMediaOptions (DirectCdnStreamingMediaOptions options)
abstract int | createCustomVideoTrack ()
abstract int | createCustomEncodedVideoTrack (EncodedVideoTrackOptions encodedOpt)
abstract int | destroyCustomVideoTrack (int video_track_id)
abstract int | destroyCustomEncodedVideoTrack (int video_track_id)
abstract int | setCloudProxy (int proxyType)
abstract int | setLocalAccessPoint (LocalAccessPointConfiguration config)
abstract int | enableCustomAudioLocalPlayback (int trackId, boolean enabled)
abstract int | setAdvancedAudioOptions (AdvancedAudioOptions options)
abstract int | setAVSyncSource (String channelId, int uid)
abstract int | enableVideoImageSource (boolean enabled, ImageTrackOptions options)
abstract int | enableWirelessAccelerate (boolean enabled)
abstract int | getNetworkType ()
abstract long | getNtpWallTimeInMs ()
abstract int | startMediaRenderingTracing ()
| Start tracing media rendering events. More...
abstract int | enableInstantMediaRendering ()
| Enable instant media rendering. More...
abstract int | setupAudioAttributes (AudioAttributes attr)
abstract boolean | isFeatureAvailableOnDevice (int type)
| Whether the target feature is available for the device. More...
abstract int | sendAudioMetadata (byte[] metadata)
| Send audio metadata. More...

## Additional Inherited Members
Static Public Member Functions inherited from io.agora.rtc2.RtcEngine
static synchronized RtcEngine | create (Context context, String appId, IRtcEngineEventHandler handler) throws Exception
static synchronized RtcEngine | create (RtcEngineConfig config) throws Exception
static synchronized void | destroy ()
| Destroys the RtcEngine object. More...
static synchronized void | destroy (@Nullable IRtcEngineReleaseCallback callback)
| Destroys the RtcEngine object. More...
static int | getRecommendedEncoderType ()
static String | getSdkVersion ()
static String | getMediaEngineVersion ()
static String | getErrorDescription (int error)
Static Protected Attributes inherited from io.agora.rtc2.RtcEngine
static RtcEngineImpl | mInstance = null

## Member Function Documentation

## ◆ muteLocalAudioStreamEx()

abstract int io.agora.rtc2.RtcEngineEx.muteLocalAudioStreamEx | ( | boolean | muted,
|  | RtcConnection | connection
| ) |  |
| abstract

Stops or resumes sending the local audio stream with connection.

Parameters

  mute | Determines whether to send or stop sending the local audio stream: true: Stop sending the local audio stream. false: Send the local audio stream.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ muteLocalVideoStreamEx()

abstract int io.agora.rtc2.RtcEngineEx.muteLocalVideoStreamEx | ( | boolean | muted,
|  | RtcConnection | connection
| ) |  |
| abstract

Stops or resumes sending the local video stream with connection.

Parameters

  mute | Determines whether to send or stop sending the local video stream: true: Stop sending the local video stream. false: Send the local video stream.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ muteAllRemoteAudioStreamsEx()

abstract int io.agora.rtc2.RtcEngineEx.muteAllRemoteAudioStreamsEx | ( | boolean | muted,
|  | RtcConnection | connection
| ) |  |
| abstract

Stops or resumes receiving all remote audio stream with connection.

Parameters

  mute | Whether to stop receiving remote audio streams: true: Stop receiving any remote audio stream. false: Resume receiving all remote audio streams.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ muteAllRemoteVideoStreamsEx()

abstract int io.agora.rtc2.RtcEngineEx.muteAllRemoteVideoStreamsEx | ( | boolean | muted,
|  | RtcConnection | connection
| ) |  |
| abstract

Stops or resumes receiving all remote video stream with connection.

Parameters

  mute | Whether to stop receiving remote audio streams: true: Stop receiving any remote audio stream. false: Resume receiving all remote audio streams.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ muteRemoteAudioStreamEx()

abstract int io.agora.rtc2.RtcEngineEx.muteRemoteAudioStreamEx | ( | int | uid,
|  | boolean | muted,
|  | RtcConnection | connection
| ) |  |
| abstract

Stops or resumes receiving the audio stream of a specified user with specified connection.

Note
  Once you leave the channel, the settings in this method becomes invalid.

Parameters

  uid | ID of the specified remote user.
  mute | Determines whether to receive or stop receiving the specified audio stream: true: Stop receiving the specified audio stream. false: (Default) Receive the specified audio stream.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ muteRemoteVideoStreamEx()

abstract int io.agora.rtc2.RtcEngineEx.muteRemoteVideoStreamEx | ( | int | uid,
|  | boolean | muted,
|  | RtcConnection | connection
| ) |  |
| abstract

Stops or resumes receiving the video stream of a specified user with specified connection.

Note
  Once you leave the channel, the settings in this method becomes invalid.

Parameters

  uid | ID of the specified remote user.
  muted | Determines whether to receive or stop receiving a specified video stream: true: Stop receiving the specified video stream. false: (Default) Receive the specified video stream.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ setRemoteVideoStreamTypeEx()

abstract int io.agora.rtc2.RtcEngineEx.setRemoteVideoStreamTypeEx | ( | int | uid,
|  | Constants.VideoStreamType | streamType,
|  | RtcConnection | connection
| ) |  |
| abstract

Sets the remote video stream type.

If the remote user has enabled the dual-stream mode, by default the SDK receives the high-stream video by Call this method to switch to the low-stream video.

Note
  This method applies to scenarios where the remote user has enabled the dual-stream mode using enableDualStreamMode(true) before joining the channel.

Parameters

  uid | ID of the remote user sending the video stream.
  streamType | Sets the video stream type: 0: High-stream video. 1: Low-stream video.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ setHighPriorityUserListEx()

abstract int io.agora.rtc2.RtcEngineEx.setHighPriorityUserListEx | ( | int[] | uidList,
|  | int | option,
|  | RtcConnection | connection
| ) |  |
| abstract

Sets the high priority user list and related fallback option for the remotely subscribed video stream based on the network conditions in NASA2.

Parameters

  uidList | The id list of high priority users.
  option | The remote subscribe fallback option of high priority users.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ setSubscribeAudioBlocklistEx()

abstract int io.agora.rtc2.RtcEngineEx.setSubscribeAudioBlocklistEx | ( | int[] | uidList,
|  | RtcConnection | connection
| ) |  |
| abstract

Sets the blocklist of subscribe remote stream audio.

Parameters

  uidList | The id list of users who do not subscribe to audio.
  connection | RtcConnection is used to control different connection instances.

Note
  If uid is in uidList, the remote user's audio will not be subscribed, even if muteRemoteAudioStream(uid, false) and muteAllRemoteAudioStreams(false) are operated.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ setSubscribeAudioAllowlistEx()

abstract int io.agora.rtc2.RtcEngineEx.setSubscribeAudioAllowlistEx | ( | int[] | uidList,
|  | RtcConnection | connection
| ) |  |
| abstract

Sets the allowlist of subscribe remote stream audio.

Parameters

  uidList | The id list of users who do subscribe to audio.
  connection | RtcConnection is used to control different connection instances.

Note
  If uid is in uidList, the remote user's audio will be subscribed, even if muteRemoteAudioStream(uid, true) and muteAllRemoteAudioStreams(true) are operated.

If a user is in the blocklist and allowlist at the same time, the user will not subscribe to audio.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ setSubscribeVideoBlocklistEx()

abstract int io.agora.rtc2.RtcEngineEx.setSubscribeVideoBlocklistEx | ( | int[] | uidList,
|  | RtcConnection | connection
| ) |  |
| abstract

Sets the blocklist of subscribe remote stream video.

Parameters

  uidList | The id list of users who do not subscribe to video.
  connection | RtcConnection is used to control different connection instances.

Note
  If uid is in uidList, the remote user's video will not be subscribed, even if muteRemoteVideoStream(uid, false) and muteAllRemoteVideoStreams(false) are operated.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ setSubscribeVideoAllowlistEx()

abstract int io.agora.rtc2.RtcEngineEx.setSubscribeVideoAllowlistEx | ( | int[] | uidList,
|  | RtcConnection | connection
| ) |  |
| abstract

Sets the whitelist of subscribe remote stream video.

Parameters

  uidList | The id list of users who do subscribe to video.
  connection | RtcConnection is used to control different connection instances.

Note
  If uid is in uidList, the remote user's video will be subscribed, even if muteRemoteVideoStream(uid, true) and muteAllRemoteVideoStreams(true) are operated.

If a user is in the blacklist and whitelist at the same time, the user will not subscribe to video.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ setRemoteRenderModeEx()

abstract int io.agora.rtc2.RtcEngineEx.setRemoteRenderModeEx | ( | int | uid,
|  | int | renderMode,
|  | int | mirrorMode,
|  | RtcConnection | connection
| ) |  |
| abstract

Updates the display mode of the video view of a remote user with the specified connection.

After initializing the video view of a remote user, you can call this method to update its rendering and mirror modes. This method affects only the video view that the local user sees.

Note
  - Ensure that you have called setupRemoteVideo to initialize the remote video view before calling this method.
  - During a call, you can call this method as many times as necessary to update the display mode of the video view of a remote user.

Parameters

  uid | ID of the remote user.
  renderMode | Sets the remote display mode: `RENDER_MODE_HIDDEN(1)`: Uniformly scale the video until it fills the visible boundaries (cropped). One dimension of the video may have clipped contents. `RENDER_MODE_FIT(2)`: Uniformly scale the video until one of its dimension fits the boundary (zoomed to fit). Areas that are not filled due to the disparity in the aspect ratio will be filled with black.
  mirrorMode | Sets the remote video mirror mode: `VIDEO_MIRROR_MODE_ENABLED(1)`: Enable the mirror mode. `VIDEO_MIRROR_MODE_DISABLED(2)`: Disable the mirror mode.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ setupRemoteVideoEx()

abstract int io.agora.rtc2.RtcEngineEx.setupRemoteVideoEx | ( | VideoCanvas | remote,
|  | RtcConnection | connection
| ) |  |
| abstract

Initializes the video view of a remote user with a specified connection ID.

This method initializes the video view of a remote stream on the local device. It affects only the video view that the local user sees.

Usually the app should specify the `uid` of the remote video in the method call before the remote user joins the channel. If the remote `uid` is unknown to the app, set it later when the app receives the onUserJoined callback.

To unbind the remote user from the view, set `view` in VideoCanvas as `null`.

Note
  Ensure that you call this method in the UI thread.

Parameters

  remote | The remote video view settings: VideoCanvas.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ setVideoEncoderConfigurationEx()

abstract int io.agora.rtc2.RtcEngineEx.setVideoEncoderConfigurationEx | ( | VideoEncoderConfiguration | config,
|  | RtcConnection | connection
| ) |  |
| abstract

Sets the video encoder configuration with specified connection.

Each configuration profile corresponds to a set of video parameters, including the resolution, frame rate, and bitrate.

The parameters specified in this method are the maximum values under ideal network conditions. If the video engine cannot render the video using the specified parameters due to poor network conditions, the parameters further down the list are considered until a successful configuration is found.

Parameters

  config | The local video encoder configuration: VideoEncoderConfiguration.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ updateChannelMediaOptionsEx()

abstract int io.agora.rtc2.RtcEngineEx.updateChannelMediaOptionsEx | ( | ChannelMediaOptions | options,
|  | RtcConnection | connection
| ) |  |
| abstract

Updates the media options after joining the channel with specified connection.

Parameters

  options | The channel media options: ChannelMediaOptions.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ joinChannelEx()

abstract int io.agora.rtc2.RtcEngineEx.joinChannelEx | ( | String | token,
|  | RtcConnection | connection,
|  | ChannelMediaOptions | options,
|  | IRtcEngineEventHandler | eventHandler
| ) |  |
| abstract

Joins a channel with the connection ID.

You can call this method multiple times to join more than one channels at a time.

Parameters

  token | The token for authentication: In situations not requiring high security: You can use the temporary token generated at Console. For details, see Get a temporary token. In situations requiring high security: Set it as the token generated at your server. For details, see Get a token.
  connection | RtcConnection is used to control different connection instances when you join the same channel multiple times
  options | The channel media options: ChannelMediaOptions.
  eventHandler | The pointer to the IRtcEngine event handler: IRtcEngineEventHandler.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ leaveChannelEx() [1/2]

abstract int io.agora.rtc2.RtcEngineEx.leaveChannelEx | ( | RtcConnection | connection | ) |
| abstract

Leaves the channel with the specified connection ID.

Parameters

  connection | RtcConnection is used to control different connection instances when you join the same channel multiple times

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ leaveChannelEx() [2/2]

abstract int io.agora.rtc2.RtcEngineEx.leaveChannelEx | ( | RtcConnection | connection,
|  | LeaveChannelOptions | options
| ) |  |
| abstract

Leaves the channel with the specified connection ID.

Parameters

  connection | RtcConnection is used to control different connection instances when you join the same channel multiple times
  options | The options for leaving the channel. See {LeaveChannelOptions}. 0: Success.< 0: Failure.

## ◆ leaveChannelWithUserAccountEx()

abstract int io.agora.rtc2.RtcEngineEx.leaveChannelWithUserAccountEx | ( | String | channelId,
|  | String | userAccount,
|  | LeaveChannelOptions | options
| ) |  |
| abstract

Leaves a channel with the channel ID and user account and sets the options for leaving.

Parameters

  channelId | The channel name. The maximum length of this parameter is 64 bytes. Supported character scopes are: All lowercase English letters: a to z. All uppercase English letters: A to Z. All numeric characters: 0 to 9. The space character. Punctuation characters and other symbols, including: "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", " {", "}", "|", "~", ",".
  userAccount | The user account. The maximum length of this parameter is 255 bytes. Ensure that you set this parameter and do not set it as null. Supported character scopes are: All lowercase English letters: a to z. All uppercase English letters: A to Z. All numeric characters: 0 to 9. The space character. Punctuation characters and other symbols, including: "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", " {", "}", "|", "~", ",".
  options | The options for leaving the channel. See {LeaveChannelOptions}. 0: Success.< 0: Failure.

## ◆ enableDualStreamModeEx()

abstract int io.agora.rtc2.RtcEngineEx.enableDualStreamModeEx | ( | boolean | enabled,
|  | SimulcastStreamConfig | streamConfig,
|  | RtcConnection | connection
| ) |  |
| abstract

Enables or disables the dual video stream mode.

Deprecated:
  v4.2.0. This method is deprecated. Use setDualStreamModeEx instead.

If dual-stream mode is enabled, the subscriber can choose to receive the high-stream (high-resolution high-bitrate video stream) or low-stream (low-resolution low-bitrate video stream) video using setRemoteVideoStreamType.

Parameters

  enabled | true: Enable the dual-stream mode. false: (default) Disable the dual-stream mode.
  streamConfig | The minor stream config
  connection | An output parameter which is used to control different connection instances.

## ◆ setDualStreamModeEx()

abstract int io.agora.rtc2.RtcEngineEx.setDualStreamModeEx | ( | Constants.SimulcastStreamMode | mode,
|  | SimulcastStreamConfig | streamConfig,
|  | RtcConnection | connection
| ) |  |
| abstract

Enables, disables or auto enable the dual video stream mode.

If dual-stream mode is enabled, the subscriber can choose to receive the high-stream (high-resolution high-bitrate video stream) or low-stream (low-resolution low-bitrate video stream) video using setRemoteVideoStreamType.

Parameters

  mode | The dual-stream mode
  streamConfig | The minor stream config

## ◆ setSimulcastConfigEx()

abstract int io.agora.rtc2.RtcEngineEx.setSimulcastConfigEx | ( | SimulcastConfig | simulcastConfig,
|  | RtcConnection | connection
| ) |  |
| abstract

Set the multi-layer video stream configuration.

If multi-layer is configed, the subscriber can choose to receive the coresponding layer of video stream using setRemoteVideoStreamType.

Parameters

  simulcastConfig | The configuration for multi-layer video stream. It includes seven layers, ranging from STREAM_LAYER_1 to STREAM_LOW. A maximum of 3 layers can be enabled simultaneously.
  connection | The RtcConnection object.

Returns
  - 0: Success.
  - < 0: Failure. @technical preview

## ◆ getConnectionStateEx()

abstract int io.agora.rtc2.RtcEngineEx.getConnectionStateEx | ( | RtcConnection | connection | ) |
| abstract

Gets the connection state of the SDK.

Parameters

  connection | RtcConnection is used to control different connection instances.

Returns
  The connection state:
  - CONNECTION_STATE_DISCONNECTED(1): The SDK is disconnected from Agora's edge server.
  - CONNECTION_STATE_CONNECTING(2): The SDK is connecting to Agora's edge server.
  - CONNECTION_STATE_CONNECTED(3): The SDK joined a channel and is connected to Agora's edge server. You can now publish or subscribe to a media stream in the channel.
  - CONNECTION_STATE_RECONNECTING(4): The SDK keeps rejoining the channel after being disconnected from a joined channel because of network issues.
  - CONNECTION_STATE_FAILED(5): The SDK fails to join the channel.

## ◆ sendCustomReportMessageEx()

abstract int io.agora.rtc2.RtcEngineEx.sendCustomReportMessageEx | ( | String | id,
|  | String | category,
|  | String | event,
|  | String | label,
|  | int | value,
|  | RtcConnection | connection
| ) |  |
| abstract

Report custom event to argus.

Parameters

  id | Custom Event ID
  category | Custom Event category
  event | Custom Event to report
  label | Custom Event label
  value | Custom Event value
  connection | The connection ID.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ sendStreamMessageEx()

abstract int io.agora.rtc2.RtcEngineEx.sendStreamMessageEx | ( | int | streamId,
|  | byte[] | message,
|  | RtcConnection | connection
| ) |  |
| abstract

Sends data stream messages to all users in a channel.

Up to 30 packets can be sent per second in a channel with each packet having a maximum size of 1 kB. The API controls the data channel transfer rate. Each client can send up to 6 kB of data per second. Each user can have up to five data channels simultaneously.

Parameters

  streamId | Stream ID
  message | Data to be sent.
  connection | Connection ID.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ createDataStreamEx() [1/2]

abstract int io.agora.rtc2.RtcEngineEx.createDataStreamEx | ( | boolean | reliable,
|  | boolean | ordered,
|  | RtcConnection | connection
| ) |  |
| abstract

Creates a data stream.

Each user can only have up to five data channels at the same time.

Parameters

  reliable | True: The recipients will receive data from the sender within 5 seconds. If the recipient does not receive the sent data within 5 seconds, the data channel will report an error to the application. False: The recipients will not receive any data, and it will not report any error upon data missing.
  ordered | True: The recipients will receive data in the order of the sender. False: The recipients will not receive data in the order of the sender.

Returns
  - > 0: the Stream ID when the data stream is created.
  - < 0: an error code when it fails to create the data srteam.

## ◆ createDataStreamEx() [2/2]

abstract int io.agora.rtc2.RtcEngineEx.createDataStreamEx | ( | DataStreamConfig | config,
|  | RtcConnection | connection
| ) |  |
| abstract

Creates a data stream.

Each user can create up to five data streams during the lifecycle of the RtcEngine.

Parameters

  config | The config of data stream.

Returns
  - Returns the stream ID, if the method call is successful.
  - < 0: Failure. The error code is related to the integer displayed in {Error Codes}. For example, if it returns -2, then it indicates Constants#ERR_INVALID_ARGUMENT ERR_INVALID_ARGUMENT(-2)} in { IRtcEngineEventHandler#onError(int) Error Codes}.

## ◆ joinChannelWithUserAccountEx()

abstract int io.agora.rtc2.RtcEngineEx.joinChannelWithUserAccountEx | ( | String | token,
|  | String | channelId,
|  | String | userAccount,
|  | ChannelMediaOptions | options,
|  | IRtcEngineEventHandler | eventHandler
| ) |  |
| abstract

Joins the channel with a user account.

After the user successfully joins the channel, the SDK triggers the following callbacks:

- The local client: onLocalUserRegistered and onJoinChannelSuccess . The remote client: onUserJoined and onUserInfoUpdated , if the user joining the channel is in the `COMMUNICATION` profile, or is a host in the `LIVE_BROADCASTING` profile.

Note
  To ensure smooth communication, use the same parameter type to identify the user. For example, if a user joins the channel with a user ID, then ensure all the other users use the user ID too. The same applies to the user account. If a user joins the channel with the Agora Web SDK, ensure that the uid of the user is set to the same parameter type.

Parameters

  token | The token generated at your server: For low-security requirements: You can use the temporary token generated at Console. For details, see Get a temporary toke. For high-security requirements: Set it as the token generated at your server. For details, see Get a token.
  channelId | The channel name. The maximum length of this parameter is 64 bytes. Supported character scopes are: All lowercase English letters: a to z. All uppercase English letters: A to Z. All numeric characters: 0 to 9. The space character. Punctuation characters and other symbols, including: "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", " {", "}", "|", "~", ",".
  userAccount | The user account. The maximum length of this parameter is 255 bytes. Ensure that you set this parameter and do not set it as null. Supported character scopes are: All lowercase English letters: a to z. All uppercase English letters: A to Z. All numeric characters: 0 to 9. The space character. Punctuation characters and other symbols, including: "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", " {", "}", "|", "~", ",".
  options | The channel media options: ChannelMediaOptions

Returns
  - 0: Success.
  - < 0: Failure.
    - #ERR_INVALID_ARGUMENT (-2)
    - #ERR_NOT_READY (-3)
    - #ERR_REFUSED (-5)

## ◆ getUserInfoByUserAccountEx()

abstract int io.agora.rtc2.RtcEngineEx.getUserInfoByUserAccountEx | ( | String | userAccount,
|  | UserInfo | userInfo,
|  | RtcConnection | connection
| ) |  |
| abstract

Gets the user information by passing in the user account.

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

After receiving the oonUserInfoUpdated callback, you can call this method to get the user ID of the remote user from the `userInfo` object by passing in the user account.

Parameters

  userAccount | The user account of the user. Ensure that you set this parameter.
  userInfo | A userInfo object that identifies the user
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ getUserInfoByUidEx()

abstract int io.agora.rtc2.RtcEngineEx.getUserInfoByUidEx | ( | int | uid,
|  | UserInfo | userInfo,
|  | RtcConnection | connection
| ) |  |
| abstract

Gets the user information by passing in the user ID.

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

After receiving the onUserInfoUpdated callback, you can call this method to get the user account of the remote user from the `userInfo` object by passing in the user ID.

Parameters

  uid | The user ID of the remote user. Ensure that you set this parameter.
  userInfo | A userInfo object that identifies the user
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ adjustRecordingSignalVolumeEx()

abstract int io.agora.rtc2.RtcEngineEx.adjustRecordingSignalVolumeEx | ( | int | volume,
|  | RtcConnection | connection
| ) |  |
| abstract

Adjusts the recording volume.

Parameters

  volume | The recording volume, which ranges from 0 to 400: 0 : Mute the recording volume. 100: The original volume. 400: (Maximum) Four times the original volume with signal clipping protection.
  connection | The RtcConnection object.

Returns
  - 0 : Success.
  - < 0: Failure.

## ◆ muteRecordingSignalEx()

abstract int io.agora.rtc2.RtcEngineEx.muteRecordingSignalEx | ( | boolean | muted,
|  | RtcConnection | connection
| ) |  |
| abstract

Mute or resume recording signal volume.

Parameters

  muted | Determines whether to mute or resume the recording signal volume. true: Mute the recording signal volume. false: (Default) Resume the recording signal volume.
  connection | The RtcConnection object.

Returns
  - 0 : Success.
  - < 0: Failure.

## ◆ adjustUserPlaybackSignalVolumeEx()

abstract int io.agora.rtc2.RtcEngineEx.adjustUserPlaybackSignalVolumeEx | ( | int | uid,
|  | int | volume,
|  | RtcConnection | connection
| ) |  |
| abstract

Adjust the playback signal volume of a specified remote user.

You can call this method as many times as necessary to adjust the playback volume of different remote users, or to repeatedly adjust the playback volume of the same remote user.

Note**

- The playback volume here refers to the mixed volume of a specified remote user.
- This method can only adjust the playback volume of one specified remote user at a time. To adjust the playback volume of different remote users, call the method as many times, once for each remote user.

Parameters

  uid | The ID of the remote user.
  volume | The playback volume of the specified remote user. The value ranges between 0 and 400, including the following:

- 0: Mute.
- 100: (Default) Original volume.
  Parameters

    connection | AgoraRtcConnection by channelId and uid combine

  Returns
- 0: Success.
- < 0: Failure.

## ◆ setRemoteVoicePositionEx()

abstract int io.agora.rtc2.RtcEngineEx.setRemoteVoicePositionEx | ( | int | uid,
|  | double | pan,
|  | double | gain,
|  | RtcConnection | connection
| ) |  |
| abstract

Sets the sound position and gain of a remote user. When the local user calls this method to set the sound position of a remote user, the sound difference between the left and right channels allows the local user to track the real-time position of the remote user, creating a real sense of space. This method applies to massively multiplayer online games, such as Battle Royale games.

Note
  - For this method to work, enable stereo panning for remote users by calling the enableSoundPositionIndication method before joining a channel.
  - This method requires hardware support. For the best sound positioning, we recommend using a wired headset.
  - Ensure that you call this method after joining a channel.

Parameters

  uid | The ID of the remote user.
  pan | The sound position of the remote user. The value ranges from -1.0 to 1.0: 0.0: the remote sound comes from the front. -1.0: the remote sound comes from the left. 1.0: the remote sound comes from the right.
  gain | Gain of the remote user. The value ranges from 0.0 to 100.0. The default value is 100.0 (the original gain of the remote user). The smaller the value, the less the gain.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ setRemoteUserSpatialAudioParamsEx()

abstract int io.agora.rtc2.RtcEngineEx.setRemoteUserSpatialAudioParamsEx | ( | int | uid,
|  | SpatialAudioParams | params,
|  | RtcConnection | connection
| ) |  |
| abstract

Sets the 3D sound position of a remote user.

Note
  - For this method to work, enable stereo panning for remote users by calling the enableSoundPositionIndication method before joining a channel.
  - This method requires hardware support. For the best sound positioning, we recommend using a wired headset.
  - Ensure that you call this method after joining a channel.

Parameters

  uid | The ID of the remote user.
  azimuth |
  elevation |
  distance |
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ addVideoWatermarkEx()

abstract int io.agora.rtc2.RtcEngineEx.addVideoWatermarkEx | ( | String | watermarkUrl,
|  | WatermarkOptions | options,
|  | RtcConnection | connection
| ) |  |
| abstract

Adds a watermark image to the local video.

Since
  v2.9.1 to replace addVideoWatermark1.

This method adds a PNG watermark image to the local video stream in a live streaming. Once the watermark image is added, all the audience in the channel (CDN audience included), and the sampling device can see and capture it.

Agora supports adding only one watermark image onto the local video, and the newly watermark image replaces the previous one.

The watermark position depends on the settings in the {setVideoEncoderConfiguration} method:If the orientation mode of the encoding video is ORIENTATION_MODE_FIXED_LANDSCAPE, or the landscape mode in ORIENTATION_MODE_ADAPTIVE, the watermark uses the landscape orientation.If the orientation mode of the encoding video is ORIENTATION_MODE_FIXED_PORTRAIT, or the portrait mode in ORIENTATION_MODE_ADAPTIVE, the watermark uses the portrait orientation.When setting the watermark position, the region must be less than the dimensions set in the setVideoEncoderConfiguration method. Otherwise, the watermark image will be cropped. Ensure that you have called the RtcEngine#enableVideo enableVideo} method to enable the video module before calling this method.If you only want to add a watermark image to the local video for the audience in the CDN live streaming channel to see and capture, you can call this method or the { RtcEngine#setLiveTranscoding setLiveTranscoding} method.This method supports adding a watermark image in the PNG file format only. Supported pixel formats of the PNG image are RGBA, RGB, Palette, Gray, and Alpha_gray.If the dimensions the PNG image differ from your settings in this method, the image will be cropped or zoomed to conform to your settings.If you have enabled the local video preview by calling the RtcEngine#startPreview startPreview} method, you can use the `visibleInPreview` member in the `WatermarkOptions` class to set whether or not the watermark is visible in preview.If you have enabled the mirror mode for the local video, the watermark on the local video is also mirrored. To avoid mirroring the watermark, Agora recommends that you do not use the mirror and watermark functions for the local video at the same time. You can implement the watermark function in your application layer. watermarkUrl The local file path of the watermark image to be added. This method supports adding a watermark image from either the local file path or the assets file path. If you use the assets file path, you need to start with `/assets/` when filling in this parameter. options The options of the watermark image to be added. See { io.agora.rtc.video.WatermarkOptions Watermark Options}. connection RtcConnection} is used to control different connection instances. 0: Success.< 0: Failure.

## ◆ clearVideoWatermarkEx()

abstract int io.agora.rtc2.RtcEngineEx.clearVideoWatermarkEx | ( | RtcConnection | connection | ) |
| abstract

Removes the watermark image from the video stream added by {watermarkUrl, WatermarkOptions options, RtcConnection connection) addVideoWatermarkEx}. connection RtcConnection} is used to control different connection instances. 0: Success.< 0: Failure.

## ◆ enableAudioVolumeIndicationEx()

abstract int io.agora.rtc2.RtcEngineEx.enableAudioVolumeIndicationEx | ( | int | interval,
|  | int | smooth,
|  | boolean | reportVad,
|  | RtcConnection | connection
| ) |  |
| abstract

Enables the `onAudioVolumeIndication` callback to report on which users are speaking and the speakers' volume.

Once the onAudioVolumeIndication callback is enabled, the SDK returns the volume indication in the at the time interval set in `enableAudioVolumeIndication`, regardless of whether any user is speaking in the channel.

Parameters

  interval | Sets the time interval between two consecutive volume indications: <= 0: Disables the volume indication. > 0: Time interval (ms) between two consecutive volume indications, and should be integral multiple of 200 (less than 200 will be set to 200).
  smooth | The smoothing factor that sets the sensitivity of the audio volume indicator. The value ranges is [0, 10]. The greater the value, the more sensitive the indicator. The recommended value is 3.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ takeSnapshotEx() [1/2]

abstract int io.agora.rtc2.RtcEngineEx.takeSnapshotEx | ( | RtcConnection | connection,
|  | int | uid,
|  | String | filePath
| ) |  |
| abstract

Takes a snapshot of a video stream.

This method takes a snapshot of a video stream from the specified user, generates a JPG image, and saves it to the specified path.

The method is asynchronous, and the SDK has not taken the snapshot when the method call returns. After a successful method call, the SDK triggers the `onSnapshotTaken` callback to report whether the snapshot is successfully taken, as well as the details for that snapshot.

Note
  - Call this method after joining a channel.
  - This method takes a snapshot of the published video stream specified in `ChannelMediaOptions`.
  - If the user's video has been preprocessed, for example, watermarked or beautified, the resulting snapshot includes the pre-processing effect.

Parameters

  connection | The RtcConnection object.
  uid | The user ID. Set uid as 0 if you want to take a snapshot of the local user's video.
  filePath | The local path (including filename extensions) of the snapshot. For example: Windows: `C:\Users\<user_name>\AppData\Local\Agora\<process_name>\example.jpg` iOS: `/App Sandbox/Library/Caches/example.jpg` macOS: `～/Library/Logs/example.jpg` Android: `/storage/emulated/0/Android/data/<package name>/files/example.jpg`

Ensure that the path you specify exists and is writable.

Returns
  - 0 : Success.
  - < 0 : Failure.

## ◆ takeSnapshotEx() [2/2]

abstract int io.agora.rtc2.RtcEngineEx.takeSnapshotEx | ( | RtcConnection | connection,
|  | int | uid,
|  | SnapshotConfig | config
| ) |  |
| abstract

Takes a snapshot of a video stream.

This method takes a snapshot of a video stream from the specified user, generates a JPG image, and saves it to the specified path.

The method is asynchronous, and the SDK has not taken the snapshot when the method call returns. After a successful method call, the SDK triggers the `onSnapshotTaken` callback to report whether the snapshot is successfully taken, as well as the details for that snapshot.

Note
  - Call this method after joining a channel.
  - This method takes a snapshot of the published video stream specified in `ChannelMediaOptions`.

Parameters

  connection | The RtcConnection object.
  uid | The user ID. Set uid as 0 if you want to take a snapshot of the local user's video.
  config | The configuration for the take snapshot. See SnapshotConfig.

Ensure that the path you specify exists and is writable.

Returns
  - 0 : Success.
  - < 0: Failure.
    - -4: Incorrect observation position. Modify the input observation position according to the reqiurements specified in SnapshotConfig.

## ◆ enableContentInspectEx()

abstract int io.agora.rtc2.RtcEngineEx.enableContentInspectEx | ( | boolean | enabled,
|  | ContentInspectConfig | config,
|  | RtcConnection | connection
| ) |  |
| abstract

Enables video screenshot and upload with the connection ID.

Parameters

  enabled | Whether to enable video screenshot and upload: `true`: Yes. `false`: No.
  config | The configuration for video screenshot and upload.
  connection | The connection information. See RtcConnection.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ startRtmpStreamWithoutTranscodingEx()

abstract int io.agora.rtc2.RtcEngineEx.startRtmpStreamWithoutTranscodingEx | ( | String | url,
|  | RtcConnection | connection
| ) |  |
| abstract

Publishes the local stream without transcoding to a specified CDN live RTMP address. (CDN live only.)

Parameters

  url | The CDN streaming URL in the RTMP format. The maximum length of this parameter is 1024 bytes.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ startRtmpStreamWithTranscodingEx()

abstract int io.agora.rtc2.RtcEngineEx.startRtmpStreamWithTranscodingEx | ( | String | url,
|  | LiveTranscoding | transcoding,
|  | RtcConnection | connection
| ) |  |
| abstract

Publishes the local stream with transcoding to a specified CDN live RTMP address. (CDN live only.)

Parameters

  url | The CDN streaming URL in the RTMP format. The maximum length of this parameter is 1024 bytes.
  transcoding | Sets the CDN live audio/video transcoding settings. See LiveTranscoding.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ updateRtmpTranscodingEx()

abstract int io.agora.rtc2.RtcEngineEx.updateRtmpTranscodingEx | ( | LiveTranscoding | transcoding,
|  | RtcConnection | connection
| ) |  |
| abstract

Update the video layout and audio settings for CDN live. (CDN live only.)

Note
  This method applies to Live Broadcast only.

Parameters

  transcoding | Sets the CDN live audio/video transcoding settings. See LiveTranscoding.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ stopRtmpStreamEx()

abstract int io.agora.rtc2.RtcEngineEx.stopRtmpStreamEx | ( | String | url,
|  | RtcConnection | connection
| ) |  |
| abstract

Stop an RTMP stream with transcoding or without transcoding from the CDN. (CDN live only.)

Parameters

  url | The RTMP URL address to be removed. The maximum length of this parameter is 1024 bytes.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ startOrUpdateChannelMediaRelayEx()

abstract int io.agora.rtc2.RtcEngineEx.startOrUpdateChannelMediaRelayEx | ( | ChannelMediaRelayConfiguration | channelMediaRelayConfiguration,
|  | RtcConnection | connection
| ) |  |
| abstract

Starts or update to relay media streams across channels.

Since
  v4.2.0

Parameters

  configuration | The configuration of the media stream relay:ChannelMediaRelayConfiguration.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.
    - -1(ERR_FAILED): A general error occurs (no specified reason).
    - -2(ERR_INVALID_ARGUMENT): The argument is invalid.
    - -5(ERR_REFUSED): The request is rejected.
    - -8(ERR_INVALID_STATE): The current status is invalid, only allowed to be called when the role is the broadcaster.

## ◆ stopChannelMediaRelayEx()

abstract int io.agora.rtc2.RtcEngineEx.stopChannelMediaRelayEx | ( | RtcConnection | connection | ) |
| abstract

Stops the media stream relay.

Once the relay stops, the host quits all the destination channels.

Parameters

  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.
    - -1(ERR_FAILED): A general error occurs (no specified reason).
    - -2(ERR_INVALID_ARGUMENT): The argument is invalid.
    - -5(ERR_REFUSED): The request is rejected.
    - -7(ERR_NOT_INITIALIZED): cross channel media streams are not relayed.

## ◆ pauseAllChannelMediaRelayEx()

abstract int io.agora.rtc2.RtcEngineEx.pauseAllChannelMediaRelayEx | ( | RtcConnection | connection | ) |
| abstract

Updates the channels for media stream relay

Deprecated:
  This method is deprecated from v4.2.0. Use `startOrUpdateChannelMediaRelayEx` instead.

Parameters

  configuration | The media stream relay configuration: ChannelMediaRelayConfiguration.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.
    - -1(ERR_FAILED): A general error occurs (no specified reason).
    - -2(ERR_INVALID_ARGUMENT): The argument is invalid.
    - -5(ERR_REFUSED): The request is rejected.
    - -7(ERR_NOT_INITIALIZED): cross channel media streams are not relayed.

## ◆ resumeAllChannelMediaRelayEx()

abstract int io.agora.rtc2.RtcEngineEx.resumeAllChannelMediaRelayEx | ( | RtcConnection | connection | ) |
| abstract

resume the channels for media stream relay.

Parameters

  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure.
    - -1(ERR_FAILED): A general error occurs (no specified reason).
    - -2(ERR_INVALID_ARGUMENT): The argument is invalid.
    - -5(ERR_REFUSED): The request is rejected.
    - -7(ERR_NOT_INITIALIZED): cross channel media streams are not relayed.

## ◆ startMediaRenderingTracingEx()

abstract int io.agora.rtc2.RtcEngineEx.startMediaRenderingTracingEx | ( | RtcConnection | connection | ) |
| abstract

Start tracing media rendering events.

Since
  v4.1.1 @discussion
  - SDK will trace media rendering events when this API is called.
  - The tracing result can be obtained through callback `IRtcEngineEventHandler.onVideoRenderingTracingResult`

Parameters

  connection | RtcConnection is used to control different connection instances.

Note
  - By default, SDK will trace media rendering events when `RtcEngine.joinChannelEx` is called.
  - The start point of event tracing will be reset after leaving channel.

Returns
  - 0: Success.
  - < 0: Failure.
    - -2(ERR_INVALID_ARGUMENT): The parameter is invalid. Check the channel ID and local uid set by parameter `connection`.
    - -7(ERR_NOT_INITIALIZED): The SDK is not initialized. Initialize the `RtcEngine` instance before calling this method.

## ◆ setParametersEx()

abstract int io.agora.rtc2.RtcEngineEx.setParametersEx | ( | String | parameters,
|  | RtcConnection | connection
| ) |  |
| abstract

Provides technical preview functionalities or special customizations by configuring the SDK with JSON options.

The JSON options are not public by default. Agora is working on making commonly used JSON options public in a standard way.

Parameters

  parameters | Parameter to be set as a JSON string in the specified format.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - <0: Failure.

## ◆ getCallIdEx()

abstract String io.agora.rtc2.RtcEngineEx.getCallIdEx | ( | RtcConnection | connection | ) |
| abstract

Gets the current call ID.

When a user joins a channel on a client, a `callId` is generated to identify the call.

After a call ends, you can call `rate` or `complain` to gather feedback from the customer. These methods require a `callId` parameter. To use these feedback methods, call the this method first to retrieve the `callId` during the call, and then pass the value as an argument in the `rate` or `complain` method after the call ends.

Parameters

  connection | RtcConnection is used to control different connection instances.

Returns
  - NonNull The call ID if the method call is successful.
  - Null: Failure.

## ◆ addHandlerEx()

abstract void io.agora.rtc2.RtcEngineEx.addHandlerEx | ( | IRtcEngineEventHandler | handler,
|  | RtcConnection | connection
| ) |  |
| abstract

Adds the IRtcEngineEventHandler.

Parameters

  handler | The IRtcEngineEventHandler instance.
  connection | RtcConnection is used to control different connection instances.

## ◆ removeHandlerEx()

abstract void io.agora.rtc2.RtcEngineEx.removeHandlerEx | ( | IRtcEngineEventHandler | handler,
|  | RtcConnection | connection
| ) |  |
| abstract

Removes the IRtcEngineEventHandler.

Parameters

  handler | The IRtcEngineEventHandler instance.
  connection | RtcConnection is used to control different connection instances.

## ◆ enableEncryptionEx()

abstract int io.agora.rtc2.RtcEngineEx.enableEncryptionEx | ( | boolean | enabled,
|  | EncryptionConfig | config,
|  | RtcConnection | connection
| ) |  |
| abstract

Enables/Disables the built-in encryption.

In scenarios requiring high security, Agora recommends calling `enableEncryption` to enable the built-in encryption before joining a channel.

All users in the same channel must use the same encryption mode and encryption key. Once all users leave the channel, the encryption key of this channel is automatically cleared.

Note
  - If you enable the built-in encryption, you cannot use the RTMP streaming function.

Parameters

  enabled | Whether to enable the built-in encryption. `true`: Enable the built-in encryption. `false`: Disable the built-in encryption.
  config | Configurations of built-in encryption schemas. See {EncryptionConfig}. connection RtcConnection} is used to control different connection instances. 0: Success.< 0: Failure.-2(ERR_INVALID_ARGUMENT): An invalid parameter is used. Set the parameter with a valid value.-7(ERR_NOT_INITIALIZED: The SDK is not initialized. Initialize the IRtcEngine instance before calling this method.-4(ERR_NOT_SUPPORTED): The encryption mode is incorrect or the SDK fails to load the external encryption library. Check the enumeration or reload the external encryption library.

## ◆ sendAudioMetadataEx()

abstract int io.agora.rtc2.RtcEngineEx.sendAudioMetadataEx | ( | byte[] | metadata,
|  | RtcConnection | connection
| ) |  |
| abstract

Send audio metadata.

Since
  v4.3.1

Parameters

  metadata | Audio Metadata.
  connection | RtcConnection is used to control different connection instances.

Returns
  - 0: Success.
  - < 0: Failure. @technical preview

## ◆ enableVideoImageSourceEx()

abstract int io.agora.rtc2.RtcEngineEx.enableVideoImageSourceEx | ( | boolean | enabled,
|  | ImageTrackOptions | options,
|  | RtcConnection | connection
| ) |  |
| abstract

Enable or disable video image source to replace the current video source published or resume it

Parameters

  enabled | true for enable, false for disable
  options | options for image track
  connection | RtcConnection is used to control different connection instances.

## ◆ preloadEffectEx() [1/2]

abstract int io.agora.rtc2.RtcEngineEx.preloadEffectEx | ( | RtcConnection | connection,
|  | int | soundId,
|  | String | filePath
| ) |  |
| abstract

Preloads a specified audio effect to a specified channel.

Since
  v4.6.0

This method preloads only one specified audio effect into the memory each time it is called. To preload multiple audio effects, call this method multiple times.

After preloading, you can call playEffect to play the preloaded audio effect or call playAllEffects to play all the preloaded audio effects.

Note
  - This method applies to scenarios involving multiple channels.
  - To ensure smooth communication, limit the size of the audio effect file.
  - Agora recommends calling this method before joining the channel.

Parameters

  connection | The RtcConnection object.
  soundId | The ID of the audio effect.
  filePath | The absolute path of the local audio effect file or the URL of the online audio effect file. Supported audio formats: mp3, mp4, m4a, aac, 3gp, mkv and wav.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ preloadEffectEx() [2/2]

abstract int io.agora.rtc2.RtcEngineEx.preloadEffectEx | ( | RtcConnection | connection,
|  | int | soundId,
|  | String | filePath,
|  | int | startPos
| ) |  |
| abstract

Preloads a specified audio effect to a specified channel.

Since
  v4.6.0

This method preloads only one specified audio effect into the memory each time it is called. To preload multiple audio effects, call this method multiple times.

After preloading, you can call playEffect to play the preloaded audio effect or call playAllEffects to play all the preloaded audio effects.

Note
  - This method applies to scenarios involving multiple channels.
  - To ensure smooth communication, limit the size of the audio effect file.
  - Agora recommends calling this method before joining the channel.

Parameters

  connection | The RtcConnection object.
  soundId | The ID of the audio effect.
  filePath | The absolute path of the local audio effect file or the URL of the online audio effect file. Supported audio formats: mp3, mp4, m4a, aac, 3gp, mkv and wav.
  startPos | The playback position (ms) of the audio effect file.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ playEffectEx() [1/2]

abstract int io.agora.rtc2.RtcEngineEx.playEffectEx | ( | RtcConnection | connection,
|  | int | soundId,
|  | String | filePath,
|  | int | loopCount,
|  | double | pitch,
|  | double | pan,
|  | double | gain,
|  | boolean | publish
| ) |  |
| abstract

Plays a specified audio effect to a specified channel.

Since
  v4.6.0

After calling preloadEffect, you can call this method to play the specified audio effect for all users in the channel.

This method plays only one specified audio effect each time it is called. To play multiple audio effects, call this method multiple times.

Note
  - This method applies to scenarios involving multiple channels.
  - Agora recommends playing no more than three audio effects at the same time.
  - The ID and file path of the audio effect in this method must be the same as that in the preloadEffect method.

Parameters

  connection | The RtcConnection object.
  soundId | The ID of the audio effect.
  filePath | The absolute path of the local audio effect file or the URL of the online audio effect file. Supported audio formats: mp3, mp4, m4a, aac, 3gp, mkv and wav.
  loopCount | The number of times the audio effect loops: `-1`: Play the audio effect in an indefinite loop until you call {stopEffect} or RtcEngine#stopAllEffects() stopAllEffects}.`0`: Play the audio effect once.`1`: Play the audio effect twice. pitch The pitch of the audio effect. The value ranges between 0.5 and 2.0. The default value is 1.0 (original pitch). The lower the value, the lower the pitch. pan The spatial position of the audio effect. The value ranges between -1.0 and 1.0:`-1.0`: The audio effect shows on the left.`0.0`: The audio effect shows ahead.`1.0`: The audio effect shows on the right. gain The volume of the audio effect. The value ranges between 0.0 and 100.0. The default value is 100 (original volume). The lower the value, the lower the volume of the audio effect. publish Sets whether to publish the specified audio effect in a channel:True: Publish the audio effect in the channel so that remote user can hear it.False: Do not publish the audio effect in the channel. 0: Success.< 0: Failure.

## ◆ playEffectEx() [2/2]

abstract int io.agora.rtc2.RtcEngineEx.playEffectEx | ( | RtcConnection | connection,
|  | int | soundId,
|  | String | filePath,
|  | int | loopCount,
|  | double | pitch,
|  | double | pan,
|  | double | gain,
|  | boolean | publish,
|  | int | startPos
| ) |  |
| abstract

Plays a specified audio effect to a specified channel.

Since
  v4.6.0

After calling preloadEffect, you can call this method to play the specified audio effect for all users in the channel.

This method plays only one specified audio effect each time it is called. To play multiple audio effects, call this method multiple times.

Note
  - This method applies to scenarios involving multiple channels.
  - Agora recommends playing no more than three audio effects at the same time.
  - The ID and file path of the audio effect in this method must be the same as that in the preloadEffect method.

Parameters

  connection | The RtcConnection object.
  soundId | The ID of the audio effect.
  filePath | The absolute path of the local audio effect file or the URL of the online audio effect file. Supported audio formats: mp3, mp4, m4a, aac, 3gp, mkv and wav.
  loopCount | The number of times the audio effect loops: `-1`: Play the audio effect in an indefinite loop until you call {stopEffect} or RtcEngine#stopAllEffects() stopAllEffects}.`0`: Play the audio effect once.`1`: Play the audio effect twice. pitch The pitch of the audio effect. The value ranges between 0.5 and 2.0. The default value is 1.0 (original pitch). The lower the value, the lower the pitch. pan The spatial position of the audio effect. The value ranges between -1.0 and 1.0:`-1.0`: The audio effect shows on the left.`0.0`: The audio effect shows ahead.`1.0`: The audio effect shows on the right. gain The volume of the audio effect. The value ranges between 0.0 and 100.0. The default value is 100 (original volume). The lower the value, the lower the volume of the audio effect. publish Sets whether to publish the specified audio effect in a channel:True: Publish the audio effect in the channel so that remote user can hear it.False: Do not publish the audio effect in the channel. startPos The playback position (ms) of the audio effect file. 0: Success.< 0: Failure.