io.agora.rtc

## Class AgoraService

- java.lang.Object
- - io.agora.rtc.AgoraService

-     public class AgoraService
      extends java.lang.Object

  Main service class for Agora SDK. Provides initialization, configuration, and media track creation functionality.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private AgoraParameter` | `agoraParameter` Agora parameter instance
    `private AgoraServiceConfig` | `agoraServiceConfig` Agora service configuration
    `private long` | `cptr` Native pointer to the Agora service instance.
    `private boolean` | `deliverMuteDataHasSet` Flag to track if deliver mute data has been set.
    `private java.util.concurrent.ExecutorService` | `executorService` Executor service for asynchronous operations
    `private AgoraMediaNodeFactory` | `mediaNodeFactory` Media node factory for creating media nodes

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AgoraService()` Constructs an Agora service instance.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `AgoraRtcConn` | `agoraRtcConnCreate(RtcConnConfig rtcConnConfig, RtcConnPublishConfig rtcConnPublishConfig)` Creates an RTC connection.
    `private void` | `checkPlatformArchitecture()` Checks the platform architecture compatibility.
    `AgoraAudioDeviceManager` | `createAudioDeviceManager()` Creates an audio device manager.
    `AgoraLocalVideoTrack` | `createCameraVideoTrack(AgoraCameraCapturer agoraCameraCapturer)` Creates a camera video track.
    `(package private) AgoraLocalAudioTrack` | `createCustomAudioTrackEncoded(AgoraAudioEncodedFrameSender agoraAudioEncodedFrameSender, int mixMode)` Creates a custom audio track with encoded frame sender.
    `AgoraLocalAudioTrack` | `createCustomAudioTrackPacket(AgoraMediaPacketSender agoraMediaPacketSender)` Creates a custom audio track with media packet sender.
    `(package private) AgoraLocalAudioTrack` | `createCustomAudioTrackPcm(AgoraAudioPcmDataSender agoraAudioPcmDataSender, int audioScenario, boolean isSendExternalAudioForAI)` Creates a custom audio track with PCM data sender.
    `(package private) AgoraLocalVideoTrack` | `createCustomVideoTrackEncoded(AgoraVideoEncodedImageSender agora_video_encoded_image_sender, SenderOptions options)` Creates a custom video track with encoded image sender.
    `(package private) AgoraLocalVideoTrack` | `createCustomVideoTrackFrame(AgoraVideoFrameSender agoraVideoFrameSender)` Creates a custom video track with frame sender.
    `AgoraLocalVideoTrack` | `createCustomVideoTrackPacket(AgoraMediaPacketSender agoraMediaPacketSender)` Creates a custom video track with media packet sender.
    `AgoraExternalAudioProcessor` | `createExternalAudioProcessor()` Creates an external audio processor for processing audio with 3A and VAD.
    `AgoraLocalAudioTrack` | `createLocalAudioTrack()` Creates a local audio track.
    `(package private) AgoraMediaNodeFactory` | `createMediaNodeFactory()` Creates a media node factory.
    `AgoraLocalAudioTrack` | `createMediaPlayerAudioTrack(AgoraMediaPlayerSource agoraMediaPlayerSource)` Creates a media player audio track.
    `AgoraLocalVideoTrack` | `createMediaPlayerVideoTrack(AgoraMediaPlayerSource agoraMediaPlayerSource)` Creates a media player video track.
    `AgoraLocalVideoTrack` | `createMixedVideoTrack(AgoraVideoMixer agoraVideoMixer)` Creates a mixed video track.
    `AgoraLocalAudioTrack` | `createRecordingDeviceAudioTrack(AgoraRecordDevice agoraRecordDevice)` Creates a recording device audio track.
    `AgoraRtmpStreamingService` | `createRtmpStreamingService(AgoraRtcConn agoraRtcConn, java.lang.String appId)` Creates an RTMP streaming service.
    `AgoraRtmService` | `createRtmService()` Creates an RTM service.
    `AgoraLocalVideoTrack` | `createScreenVideoTrack(AgoraScreenCapturer agoraScreenCapturer)` Creates a screen video track.
    `void` | `destroy()` Destroys the Agora service.
    `(package private) void` | `destroyAudioSessionConfig(AudioSessionConfig config)` Destroys the audio session configuration.
    `int` | `disableExtension(java.lang.String provider, java.lang.String extension, java.lang.String trackId)` Disables an extension.
    `int` | `enableExtension(java.lang.String provider, java.lang.String extension, java.lang.String trackId, boolean enable)` Enables an extension.
    `AgoraParameter` | `getAgoraParameter()` Gets the Agora parameter.
    `AudioSessionConfig` | `getAudioSessionConfig()` Gets the audio session configuration.
    `(package private) java.util.concurrent.ExecutorService` | `getExecutorService()` Gets the executor service for asynchronous operations.
    `static java.lang.String` | `getSdkVersion()` Gets the SDK version
    `private long` | `init()` Initializes the native Agora service.
    `int` | `initialize(AgoraServiceConfig config)` Initializes the Agora service with the specified configuration.
    `int` | `loadExtensionProvider(java.lang.String path, boolean unloadAfterUse)` Loads an extension provider.
    `private AgoraRtcConn` | `nativeAgoraRtcConnCreate(long cptr, RtcConnConfig rtcConnConfig)` Creates an RTC connection natively.
    `private AgoraAudioDeviceManager` | `nativeCreateAudioDeviceManager(long cptr)` Creates an audio device manager natively.
    `private AgoraLocalVideoTrack` | `nativeCreateCameraVideoTrack(long cptr, AgoraCameraCapturer agoraCameraCapturer)` Creates a camera video track natively.
    `private AgoraLocalAudioTrack` | `nativeCreateCustomAudioTrackEncoded(long cptr, AgoraAudioEncodedFrameSender agoraAudioEncodedFrameSender, int mixMode)` Creates a custom encoded audio track natively.
    `private AgoraLocalAudioTrack` | `nativeCreateCustomAudioTrackPacket(long cptr, AgoraMediaPacketSender agoraMediaPacketSender)` Creates a custom packet audio track natively.
    `private AgoraLocalAudioTrack` | `nativeCreateCustomAudioTrackPcm(long cptr, AgoraAudioPcmDataSender agoraAudioPcmDataSender)` Creates a custom PCM audio track natively.
    `private AgoraLocalVideoTrack` | `nativeCreateCustomVideoTrackEncoded(long cptr, AgoraVideoEncodedImageSender agoraVideoEncodedImageSender, SenderOptions options)` Creates a custom encoded video track natively.
    `private AgoraLocalVideoTrack` | `nativeCreateCustomVideoTrackFrame(long cptr, AgoraVideoFrameSender agoraVideoFrameSender)` Creates a custom frame video track natively.
    `private AgoraLocalVideoTrack` | `nativeCreateCustomVideoTrackPacket(long cptr, AgoraMediaPacketSender agoraMediaPacketSender)` Creates a custom packet video track natively.
    `private AgoraLocalAudioTrack` | `nativeCreateDirectCustomAudioTrackPcm(long cptr, AgoraAudioPcmDataSender agoraAudioPcmDataSender)` Creates a direct custom PCM audio track natively.
    `private AgoraLocalAudioTrack` | `nativeCreateLocalAudioTrack(long cptr)` Creates a local audio track natively.
    `private AgoraMediaNodeFactory` | `nativeCreateMediaNodeFactory(long cptr)` Creates a media node factory natively.
    `private AgoraLocalAudioTrack` | `nativeCreateMediaPlayerAudioTrack(long cptr, AgoraMediaPlayerSource agoraMediaPlayerSource)` Creates a media player audio track natively.
    `private AgoraLocalVideoTrack` | `nativeCreateMediaPlayerVideoTrack(long cptr, AgoraMediaPlayerSource agoraMediaPlayerSource)` Creates a media player video track natively.
    `private AgoraLocalVideoTrack` | `nativeCreateMixedVideoTrack(long cptr, AgoraVideoMixer agoraVideoMixer)` Creates a mixed video track natively.
    `private AgoraLocalAudioTrack` | `nativeCreateRecordingDeviceAudioTrack(long cptr, AgoraRecordDevice agoraRecordDevice)` Creates a recording device audio track natively.
    `private AgoraRtmpStreamingService` | `nativeCreateRtmpStreamingService(long cptr, AgoraRtcConn agoraRtcConn, java.lang.String appId)` Creates an RTMP streaming service natively.
    `private AgoraRtmService` | `nativeCreateRtmService(long cptr)` Creates an RTM service natively.
    `private AgoraLocalVideoTrack` | `nativeCreateScreenVideoTrack(long cptr, AgoraScreenCapturer agoraScreenCapturer)` Creates a screen video track natively.
    `private void` | `nativeDestroy(long cptr)` Releases the native Agora service handle.
    `private void` | `nativeDestroyAudioSessionConfig(long cptr, AudioSessionConfig config)` Destroys the audio session configuration object natively.
    `private int` | `nativeDisableExtension(long cptr, java.lang.String provider, java.lang.String extension, java.lang.String trackId)` Disables an extension natively.
    `private int` | `nativeEnableExtension(long cptr, java.lang.String provider, java.lang.String extension, java.lang.String trackId, boolean enable)` Enables an extension natively.
    `private AgoraParameter` | `nativeGetAgoraParameter(long cptr)` Gets the Agora parameter instance natively.
    `private AudioSessionConfig` | `nativeGetAudioSessionConfig(long cptr)` Gets the audio session configuration natively.
    `private int` | `nativeInitialize(long cptr, AgoraServiceConfig config, AgoraServiceConfigEx configEx)` Initializes the Agora service natively.
    `private int` | `nativeLoadExtensionProvider(long cptr, java.lang.String path, boolean unloadAfterUse)` Loads an extension provider natively.
    `private int` | `nativeSetAudioSessionConfig(long cptr, AudioSessionConfig config)` Sets the audio session configuration natively.
    `private int` | `nativeSetAudioSessionPreset(long cptr, int audioScenario)` Sets the audio session preset natively.
    `private int` | `nativeSetLogFile(long cptr, java.lang.String filePath, int fileSize)` Sets the log file path and size natively.
    `private int` | `nativeSetLogFilter(long cptr, int filters)` Sets the log filter natively.
    `int` | `setAudioSessionConfig(AudioSessionConfig config)` Sets the audio session configuration.
    `int` | `setAudioSessionPreset(int audioScenario)` Sets the audio session preset.
    `(package private) boolean` | `setDeliverMuteData(boolean deliverMuteData)` Sets whether to deliver mute data for fake admin.
    `int` | `setLogFile(java.lang.String filePath, int fileSize)` Sets the log file.
    `int` | `setLogFilter(int filters)` Sets the log filter.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### cptr

          private long cptr

      Native pointer to the Agora service instance.

    - #### agoraParameter

          private AgoraParameter agoraParameter

      Agora parameter instance

    - #### mediaNodeFactory

          private AgoraMediaNodeFactory mediaNodeFactory

      Media node factory for creating media nodes

    - #### executorService

          private final java.util.concurrent.ExecutorService executorService

      Executor service for asynchronous operations

    - #### agoraServiceConfig

          private AgoraServiceConfig agoraServiceConfig

      Agora service configuration

    - #### deliverMuteDataHasSet

          private boolean deliverMuteDataHasSet

      Flag to track if deliver mute data has been set. Note: This can only be set at the RTC engine level, not at the connection level. Once set, it affects all connections.

  - ### Constructor Detail

    - #### AgoraService

          public AgoraService()

      Constructs an Agora service instance.

  - ### Method Detail

    - #### init

          private long init()

      Initializes the native Agora service.
      Returns:
        Native pointer to the service instance

    - #### getSdkVersion

          public static java.lang.String getSdkVersion()

      Gets the SDK version
      Returns:
        SDK version

    - #### checkPlatformArchitecture

          private void checkPlatformArchitecture()

      Checks the platform architecture compatibility.

    - #### getExecutorService

          java.util.concurrent.ExecutorService getExecutorService()

      Gets the executor service for asynchronous operations.
      Returns:
        Executor service instance

    - #### initialize

          public int initialize(AgoraServiceConfig config)

      Initializes the Agora service with the specified configuration.
      Parameters:
        `config` - The configuration for the Agora service.
      Returns:
        0: Success, < 0: Failure

    - #### destroy

          public void destroy()

      Destroys the Agora service.

    - #### setAudioSessionPreset

          public int setAudioSessionPreset(int audioScenario)

      Sets the audio session preset.
      Parameters:
        `audioScenario` - The audio scenario to set.
      Returns:
        0: Success, < 0: Failure

    - #### setAudioSessionConfig

          public int setAudioSessionConfig(AudioSessionConfig config)

      Sets the audio session configuration.
      Parameters:
        `config` - The audio session configuration to set.
      Returns:
        0: Success, < 0: Failure

    - #### getAudioSessionConfig

          public AudioSessionConfig getAudioSessionConfig()

      Gets the audio session configuration.
      Returns:
        The audio session configuration.

    - #### destroyAudioSessionConfig

          void destroyAudioSessionConfig(AudioSessionConfig config)

      Destroys the audio session configuration.
      Parameters:
        `config` - The audio session configuration to destroy.

    - #### setLogFile

          public int setLogFile(java.lang.String filePath,
                                int fileSize)

      Sets the log file.
      Parameters:
        `filePath` - The path of the log file.
        `fileSize` - The size of the log file in bytes.
      Returns:
        0: Success, < 0: Failure

    - #### setLogFilter

          public int setLogFilter(int filters)

      Sets the log filter.
      Parameters:
        `filters` - The log filters to set.
      Returns:
        0: Success, < 0: Failure

    - #### createLocalAudioTrack

          public AgoraLocalAudioTrack createLocalAudioTrack()

      Creates a local audio track.
      Returns:
        The local audio track.

    - #### createCustomAudioTrackPcm

          AgoraLocalAudioTrack createCustomAudioTrackPcm(AgoraAudioPcmDataSender agoraAudioPcmDataSender,
                                                         int audioScenario,
                                                         boolean isSendExternalAudioForAI)

      Creates a custom audio track with PCM data sender.
      Parameters:
        `agoraAudioPcmDataSender` - The PCM data sender.
        `audioScenario` - The audio scenario.
        `isSendExternalAudioForAI` - Whether to send external audio for AI scenario.
      Returns:
        The custom audio track.

    - #### createCustomAudioTrackEncoded

          AgoraLocalAudioTrack createCustomAudioTrackEncoded(AgoraAudioEncodedFrameSender agoraAudioEncodedFrameSender,
                                                             int mixMode)

      Creates a custom audio track with encoded frame sender.
      Parameters:
        `agoraAudioEncodedFrameSender` - The encoded frame sender.
        `mixMode` - The mix mode.
      Returns:
        The custom audio track.

    - #### createCustomAudioTrackPacket

          public AgoraLocalAudioTrack createCustomAudioTrackPacket(AgoraMediaPacketSender agoraMediaPacketSender)

      Creates a custom audio track with media packet sender.
      Parameters:
        `agoraMediaPacketSender` - The media packet sender.
      Returns:
        The custom audio track.

    - #### createMediaPlayerAudioTrack

          public AgoraLocalAudioTrack createMediaPlayerAudioTrack(AgoraMediaPlayerSource agoraMediaPlayerSource)

      Creates a media player audio track.
      Parameters:
        `agoraMediaPlayerSource` - The media player source.
      Returns:
        The media player audio track.

    - #### createRecordingDeviceAudioTrack

          public AgoraLocalAudioTrack createRecordingDeviceAudioTrack(AgoraRecordDevice agoraRecordDevice)

      Creates a recording device audio track.
      Parameters:
        `agoraRecordDevice` - The recording device.
      Returns:
        The recording device audio track.

    - #### createAudioDeviceManager

          public AgoraAudioDeviceManager createAudioDeviceManager()

      Creates an audio device manager.
      Returns:
        The audio device manager.

    - #### createMediaNodeFactory

          AgoraMediaNodeFactory createMediaNodeFactory()

      Creates a media node factory.
      Returns:
        The media node factory.

    - #### createCameraVideoTrack

          public AgoraLocalVideoTrack createCameraVideoTrack(AgoraCameraCapturer agoraCameraCapturer)

      Creates a camera video track.
      Parameters:
        `agoraCameraCapturer` - The camera capturer.
      Returns:
        The camera video track.

    - #### createScreenVideoTrack

          public AgoraLocalVideoTrack createScreenVideoTrack(AgoraScreenCapturer agoraScreenCapturer)

      Creates a screen video track.
      Parameters:
        `agoraScreenCapturer` - The screen capturer.
      Returns:
        The screen video track.

    - #### createMixedVideoTrack

          public AgoraLocalVideoTrack createMixedVideoTrack(AgoraVideoMixer agoraVideoMixer)

      Creates a mixed video track.
      Parameters:
        `agoraVideoMixer` - The video mixer.
      Returns:
        The mixed video track.

    - #### createCustomVideoTrackFrame

          AgoraLocalVideoTrack createCustomVideoTrackFrame(AgoraVideoFrameSender agoraVideoFrameSender)

      Creates a custom video track with frame sender.
      Parameters:
        `agoraVideoFrameSender` - The video frame sender.
      Returns:
        The custom video track.

    - #### createCustomVideoTrackEncoded

          AgoraLocalVideoTrack createCustomVideoTrackEncoded(AgoraVideoEncodedImageSender agora_video_encoded_image_sender,
                                                             SenderOptions options)

      Creates a custom video track with encoded image sender.
      Parameters:
        `agora_video_encoded_image_sender` - The encoded image sender.
        `options` - The sender options.
      Returns:
        The custom video track.

    - #### createCustomVideoTrackPacket

          public AgoraLocalVideoTrack createCustomVideoTrackPacket(AgoraMediaPacketSender agoraMediaPacketSender)

      Creates a custom video track with media packet sender.
      Parameters:
        `agoraMediaPacketSender` - The media packet sender.
      Returns:
        The custom video track.

    - #### createMediaPlayerVideoTrack

          public AgoraLocalVideoTrack createMediaPlayerVideoTrack(AgoraMediaPlayerSource agoraMediaPlayerSource)

      Creates a media player video track.
      Parameters:
        `agoraMediaPlayerSource` - The media player source.
      Returns:
        The media player video track.

    - #### createRtmpStreamingService

          public AgoraRtmpStreamingService createRtmpStreamingService(AgoraRtcConn agoraRtcConn,
                                                                      java.lang.String appId)

      Creates an RTMP streaming service.
      Parameters:
        `agoraRtcConn` - The RTC connection.
        `appId` - The application ID.
      Returns:
        The RTMP streaming service.

    - #### createRtmService

          public AgoraRtmService createRtmService()

      Creates an RTM service.
      Returns:
        The RTM service.

    - #### agoraRtcConnCreate

          public AgoraRtcConn agoraRtcConnCreate(RtcConnConfig rtcConnConfig,
                                                 RtcConnPublishConfig rtcConnPublishConfig)

      Creates an RTC connection.
      Parameters:
        `rtcConnConfig` - The RTC connection configuration.
        `rtcConnPublishConfig` - The RTC connection publish configuration.
      Returns:
        The RTC connection.

    - #### loadExtensionProvider

          public int loadExtensionProvider(java.lang.String path,
                                           boolean unloadAfterUse)

      Loads an extension provider.
      Parameters:
        `path` - The path of the extension provider.
        `unloadAfterUse` - Whether to unload after use.
      Returns:
        0: Success, < 0: Failure

    - #### enableExtension

          public int enableExtension(java.lang.String provider,
                                     java.lang.String extension,
                                     java.lang.String trackId,
                                     boolean enable)

      Enables an extension.
      Parameters:
        `provider` - The provider of the extension.
        `extension` - The extension to enable.
        `trackId` - The track ID.
        `enable` - Whether to enable the extension.
      Returns:
        0: Success, < 0: Failure

    - #### disableExtension

          public int disableExtension(java.lang.String provider,
                                      java.lang.String extension,
                                      java.lang.String trackId)

      Disables an extension.
      Parameters:
        `provider` - The provider of the extension.
        `extension` - The extension to disable.
        `trackId` - The track ID.
      Returns:
        0: Success, < 0: Failure

    - #### getAgoraParameter

          public AgoraParameter getAgoraParameter()

      Gets the Agora parameter.
      Returns:
        The Agora parameter.

    - #### createExternalAudioProcessor

          public AgoraExternalAudioProcessor createExternalAudioProcessor()

      Creates an external audio processor for processing audio with 3A and VAD. The external audio processor allows pushing PCM audio data for processing and receiving processed audio through observer callbacks.
      Returns:
        The external audio processor instance, or null on failure

    - #### nativeInitialize

          private int nativeInitialize(long cptr,
                                       AgoraServiceConfig config,
                                       AgoraServiceConfigEx configEx)

      Initializes the Agora service natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `config` - Service configuration
        `configEx` - Extended service configuration
      Returns:
        0 on success, <0 on failure

    - #### nativeDestroy

          private void nativeDestroy(long cptr)

      Releases the native Agora service handle.
      Parameters:
        `cptr` - Native pointer to the service instance

    - #### nativeSetAudioSessionPreset

          private int nativeSetAudioSessionPreset(long cptr,
                                                  int audioScenario)

      Sets the audio session preset natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `audioScenario` - Audio scenario value
      Returns:
        0 on success, <0 on failure

    - #### nativeSetAudioSessionConfig

          private int nativeSetAudioSessionConfig(long cptr,
                                                  AudioSessionConfig config)

      Sets the audio session configuration natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `config` - Audio session configuration
      Returns:
        0 on success, <0 on failure

    - #### nativeGetAudioSessionConfig

          private AudioSessionConfig nativeGetAudioSessionConfig(long cptr)

      Gets the audio session configuration natively.
      Parameters:
        `cptr` - Native pointer to the service instance
      Returns:
        Audio session configuration

    - #### nativeDestroyAudioSessionConfig

          private void nativeDestroyAudioSessionConfig(long cptr,
                                                       AudioSessionConfig config)

      Destroys the audio session configuration object natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `config` - Audio session configuration to destroy

    - #### nativeSetLogFile

          private int nativeSetLogFile(long cptr,
                                       java.lang.String filePath,
                                       int fileSize)

      Sets the log file path and size natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `filePath` - Log file path
        `fileSize` - Log file size
      Returns:
        0 on success, <0 on failure

    - #### nativeSetLogFilter

          private int nativeSetLogFilter(long cptr,
                                         int filters)

      Sets the log filter natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `filters` - Log filter flags
      Returns:
        0 on success, <0 on failure

    - #### nativeCreateLocalAudioTrack

          private AgoraLocalAudioTrack nativeCreateLocalAudioTrack(long cptr)

      Creates a local audio track natively.
      Parameters:
        `cptr` - Native pointer to the service instance
      Returns:
        Local audio track instance

    - #### nativeCreateCustomAudioTrackPcm

          private AgoraLocalAudioTrack nativeCreateCustomAudioTrackPcm(long cptr,
                                                                       AgoraAudioPcmDataSender agoraAudioPcmDataSender)

      Creates a custom PCM audio track natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `agoraAudioPcmDataSender` - PCM data sender
      Returns:
        Local audio track instance

    - #### nativeCreateDirectCustomAudioTrackPcm

          private AgoraLocalAudioTrack nativeCreateDirectCustomAudioTrackPcm(long cptr,
                                                                             AgoraAudioPcmDataSender agoraAudioPcmDataSender)

      Creates a direct custom PCM audio track natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `agoraAudioPcmDataSender` - PCM data sender
      Returns:
        Local audio track instance

    - #### nativeCreateCustomAudioTrackEncoded

          private AgoraLocalAudioTrack nativeCreateCustomAudioTrackEncoded(long cptr,
                                                                           AgoraAudioEncodedFrameSender agoraAudioEncodedFrameSender,
                                                                           int mixMode)

      Creates a custom encoded audio track natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `agoraAudioEncodedFrameSender` - Encoded frame sender
        `mixMode` - Mix mode
      Returns:
        Local audio track instance

    - #### nativeCreateCustomAudioTrackPacket

          private AgoraLocalAudioTrack nativeCreateCustomAudioTrackPacket(long cptr,
                                                                          AgoraMediaPacketSender agoraMediaPacketSender)

      Creates a custom packet audio track natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `agoraMediaPacketSender` - Media packet sender
      Returns:
        Local audio track instance

    - #### nativeCreateMediaPlayerAudioTrack

          private AgoraLocalAudioTrack nativeCreateMediaPlayerAudioTrack(long cptr,
                                                                         AgoraMediaPlayerSource agoraMediaPlayerSource)

      Creates a media player audio track natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `agoraMediaPlayerSource` - Media player source
      Returns:
        Local audio track instance

    - #### nativeCreateRecordingDeviceAudioTrack

          private AgoraLocalAudioTrack nativeCreateRecordingDeviceAudioTrack(long cptr,
                                                                             AgoraRecordDevice agoraRecordDevice)

      Creates a recording device audio track natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `agoraRecordDevice` - Recording device
      Returns:
        Local audio track instance

    - #### nativeCreateAudioDeviceManager

          private AgoraAudioDeviceManager nativeCreateAudioDeviceManager(long cptr)

      Creates an audio device manager natively.
      Parameters:
        `cptr` - Native pointer to the service instance
      Returns:
        Audio device manager instance

    - #### nativeCreateMediaNodeFactory

          private AgoraMediaNodeFactory nativeCreateMediaNodeFactory(long cptr)

      Creates a media node factory natively.
      Parameters:
        `cptr` - Native pointer to the service instance
      Returns:
        Media node factory instance

    - #### nativeCreateCameraVideoTrack

          private AgoraLocalVideoTrack nativeCreateCameraVideoTrack(long cptr,
                                                                    AgoraCameraCapturer agoraCameraCapturer)

      Creates a camera video track natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `agoraCameraCapturer` - Camera capturer
      Returns:
        Local video track instance

    - #### nativeCreateScreenVideoTrack

          private AgoraLocalVideoTrack nativeCreateScreenVideoTrack(long cptr,
                                                                    AgoraScreenCapturer agoraScreenCapturer)

      Creates a screen video track natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `agoraScreenCapturer` - Screen capturer
      Returns:
        Local video track instance

    - #### nativeCreateMixedVideoTrack

          private AgoraLocalVideoTrack nativeCreateMixedVideoTrack(long cptr,
                                                                   AgoraVideoMixer agoraVideoMixer)

      Creates a mixed video track natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `agoraVideoMixer` - Video mixer
      Returns:
        Local video track instance

    - #### nativeCreateCustomVideoTrackFrame

          private AgoraLocalVideoTrack nativeCreateCustomVideoTrackFrame(long cptr,
                                                                         AgoraVideoFrameSender agoraVideoFrameSender)

      Creates a custom frame video track natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `agoraVideoFrameSender` - Video frame sender
      Returns:
        Local video track instance

    - #### nativeCreateCustomVideoTrackEncoded

          private AgoraLocalVideoTrack nativeCreateCustomVideoTrackEncoded(long cptr,
                                                                           AgoraVideoEncodedImageSender agoraVideoEncodedImageSender,
                                                                           SenderOptions options)

      Creates a custom encoded video track natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `agoraVideoEncodedImageSender` - Video encoded image sender
        `options` - Sender options
      Returns:
        Local video track instance

    - #### nativeCreateCustomVideoTrackPacket

          private AgoraLocalVideoTrack nativeCreateCustomVideoTrackPacket(long cptr,
                                                                          AgoraMediaPacketSender agoraMediaPacketSender)

      Creates a custom packet video track natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `agoraMediaPacketSender` - Media packet sender
      Returns:
        Local video track instance

    - #### nativeCreateMediaPlayerVideoTrack

          private AgoraLocalVideoTrack nativeCreateMediaPlayerVideoTrack(long cptr,
                                                                         AgoraMediaPlayerSource agoraMediaPlayerSource)

      Creates a media player video track natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `agoraMediaPlayerSource` - Media player source
      Returns:
        Local video track instance

    - #### nativeCreateRtmpStreamingService

          private AgoraRtmpStreamingService nativeCreateRtmpStreamingService(long cptr,
                                                                             AgoraRtcConn agoraRtcConn,
                                                                             java.lang.String appId)

      Creates an RTMP streaming service natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `agoraRtcConn` - RTC connection
        `appId` - Application ID
      Returns:
        RTMP streaming service instance

    - #### nativeCreateRtmService

          private AgoraRtmService nativeCreateRtmService(long cptr)

      Creates an RTM service natively.
      Parameters:
        `cptr` - Native pointer to the service instance
      Returns:
        RTM service instance

    - #### nativeAgoraRtcConnCreate

          private AgoraRtcConn nativeAgoraRtcConnCreate(long cptr,
                                                        RtcConnConfig rtcConnConfig)

      Creates an RTC connection natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `rtcConnConfig` - RTC connection configuration
      Returns:
        RTC connection instance

    - #### nativeLoadExtensionProvider

          private int nativeLoadExtensionProvider(long cptr,
                                                  java.lang.String path,
                                                  boolean unloadAfterUse)

      Loads an extension provider natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `path` - Extension provider path
        `unloadAfterUse` - Whether to unload after use
      Returns:
        0 on success, <0 on failure

    - #### nativeEnableExtension

          private int nativeEnableExtension(long cptr,
                                            java.lang.String provider,
                                            java.lang.String extension,
                                            java.lang.String trackId,
                                            boolean enable)

      Enables an extension natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `provider` - Extension provider name
        `extension` - Extension name
        `trackId` - Track ID
        `enable` - 1 to enable, 0 to disable
      Returns:
        0 on success, <0 on failure

    - #### nativeDisableExtension

          private int nativeDisableExtension(long cptr,
                                             java.lang.String provider,
                                             java.lang.String extension,
                                             java.lang.String trackId)

      Disables an extension natively.
      Parameters:
        `cptr` - Native pointer to the service instance
        `provider` - Extension provider name
        `extension` - Extension name
        `trackId` - Track ID
      Returns:
        0 on success, <0 on failure

    - #### nativeGetAgoraParameter

          private AgoraParameter nativeGetAgoraParameter(long cptr)

      Gets the Agora parameter instance natively.
      Parameters:
        `cptr` - Native pointer to the service instance
      Returns:
        Agora parameter instance

    - #### setDeliverMuteData

          boolean setDeliverMuteData(boolean deliverMuteData)

      Sets whether to deliver mute data for fake admin. Note: This can only be set at the RTC engine level, not at the connection level. Once set, it affects all connections.

      This method sets the parameter "che.audio.deliver_mute_data_for_fake_adm" to false when deliverMuteData is false and the parameter hasn't been set yet.

      Parameters:
        `deliverMuteData` - Whether to deliver mute data
      Returns:
        true if set successfully, false otherwise