io.agora.rtc

## Class AgoraLocalUser

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

-     public class AgoraLocalUser
      extends java.lang.Object

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private AgoraAudioFrameObserver` | `agoraAudioFrameObserver`
    `private AgoraVideoEncodedFrameObserver` | `agoraVideoEncodedFrameObserver`
    `private AgoraVideoFrameObserver2` | `agoraVideoFrameObserver2`
    `private IAudioEncodedFrameObserver` | `audioEncodedFrameObserver`
    `private long` | `cptr`
    `private ILocalUserObserver` | `localUserObserver`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AgoraLocalUser(long cptr)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `adjustPlaybackSignalVolume(int volume)` Adjusts the playback signal volume.
    `void` | `destroy()` Destroys the AgoraLocalUser instance and unregisters all observers.
    `void` | `destroyLocalAudioStatistics(LocalAudioDetailedStats stats)` Destroys the local audio statistics.
    `LocalAudioDetailedStats` | `getLocalAudioStatistics()` Gets the local audio statistics.
    `AgoraMediaCtrlPacketSender` | `getMediaControlPacketSender()` Gets the media control packet sender.
    `int` | `getPlaybackSignalVolume(Out volume)` Gets the playback signal volume.
    `int` | `getUserRole()` Gets the user role.
    `private int` | `nativeAdjustPlaybackSignalVolume(long cptr, int volume)`
    `private int` | `nativeDestroy(long cptr)`
    `private void` | `nativeDestroyLocalAudioStatistics(long cptr, LocalAudioDetailedStats stats)`
    `private LocalAudioDetailedStats` | `nativeGetLocalAudioStatistics(long cptr)`
    `private AgoraMediaCtrlPacketSender` | `nativeGetMediaControlPacketSender(long cptr)`
    `private int` | `nativeGetPlaybackSignalVolume(long cptr, Out volume)`
    `private int` | `nativeGetUserRole(long cptr)`
    `private int` | `nativePublishAudio(long cptr, AgoraLocalAudioTrack agoraLocalAudioTrack)`
    `private int` | `nativePublishVideo(long cptr, AgoraLocalVideoTrack agoraLocalVideoTrack)`
    `private int` | `nativeRegisterAudioEncodedFrameObserver(long cptr, IAudioEncodedFrameObserver observer)`
    `private int` | `nativeRegisterAudioFrameObserver(long cptr, AgoraAudioFrameObserver observer)`
    `private int` | `nativeRegisterMediaControlPacketReceiver(long cptr, AgoraMediaPacketReceiver agoraMediaPacketReceiver)`
    `private int` | `nativeRegisterObserver(long cptr, ILocalUserObserver observer)`
    `private int` | `nativeRegisterVideoEncodedFrameObserver(long cptr, AgoraVideoEncodedFrameObserver agoraVideoEncodedFrameObserver)`
    `private int` | `nativeRegisterVideoFrameObserver(long cptr, AgoraVideoFrameObserver2 agoraVideoFrameObserver2)`
    `private int` | `nativeSendAudioMetaData(long cptr, byte[] metaData)`
    `private int` | `nativeSendIntraRequest(long cptr, java.lang.String userId)`
    `private int` | `nativeSetAudioEncoderConfig(long cptr, AudioEncoderConfig config)`
    `private int` | `nativeSetAudioScenario(long cptr, int scenarioType)`
    `private int` | `nativeSetAudioVolumeIndicationParameters(long cptr, int intervalInMs, int smooth, boolean reportVad)`
    `private int` | `nativeSetMixedAudioFrameParameters(long cptr, int channels, int sampleRateHz, int samplesPerCall)`
    `private int` | `nativeSetPlaybackAudioFrameBeforeMixingParameters(long cptr, int channels, int sampleRateHz)`
    `private int` | `nativeSetPlaybackAudioFrameParameters(long cptr, int channels, int sampleRateHz, int mode, int samplesPerCall)`
    `private int` | `nativeSetRecordingAudioFrameParameters(long cptr, int channels, int sampleRateHz, int mode, int samplesPerCall)`
    `private int` | `nativeSetUserRole(long cptr, int role)`
    `private int` | `nativeSubscribeAllAudio(long cptr)`
    `private int` | `nativeSubscribeAllVideo(long cptr, VideoSubscriptionOptions options)`
    `private int` | `nativeSubscribeAudio(long cptr, java.lang.String userId)`
    `private int` | `nativeSubscribeVideo(long cptr, java.lang.String userId, VideoSubscriptionOptions options)`
    `private int` | `nativeUnpublishAudio(long cptr, AgoraLocalAudioTrack agoraLocalAudioTrack)`
    `private int` | `nativeUnpublishVideo(long cptr, AgoraLocalVideoTrack agoraLocalVideoTrack)`
    `private int` | `nativeUnregisterAudioEncodedFrameObserver(long cptr, IAudioEncodedFrameObserver observer)`
    `private int` | `nativeUnregisterAudioFrameObserver(long cptr)`
    `private int` | `nativeUnregisterMediaControlPacketReceiver(long cptr, AgoraMediaPacketReceiver agoraMediaPacketReceiver)`
    `private int` | `nativeUnregisterObserver(long cptr)`
    `private int` | `nativeUnregisterVideoEncodedFrameObserver(long cptr, AgoraVideoEncodedFrameObserver agoraVideoEncodedFrameObserver)`
    `private int` | `nativeUnregisterVideoFrameObserver(long cptr, AgoraVideoFrameObserver2 agoraVideoFrameObserver2)`
    `private int` | `nativeUnsubscribeAllAudio(long cptr)`
    `private int` | `nativeUnsubscribeAllVideo(long cptr)`
    `private int` | `nativeUnsubscribeAudio(long cptr, java.lang.String userId)`
    `private int` | `nativeUnsubscribeVideo(long cptr, java.lang.String userId)`
    `int` | `publishAudio(AgoraLocalAudioTrack agoraLocalAudioTrack)` Publishes the local audio track.
    `int` | `publishVideo(AgoraLocalVideoTrack agoraLocalVideoTrack)` Publishes the local video track.
    `int` | `registerAudioEncodedFrameObserver(IAudioEncodedFrameObserver observer)` Registers an audio encoded frame observer.
    `int` | `registerAudioFrameObserver(IAudioFrameObserver observer)` Registers an audio frame observer.
    `int` | `registerAudioFrameObserver(IAudioFrameObserver observer, boolean enableVad, AgoraAudioVadConfigV2 vadConfig)` Registers an audio frame observer with VAD (Voice Activity Detection) enabled.
    `int` | `registerMediaControlPacketReceiver(AgoraMediaPacketReceiver agoraMediaPacketReceiver)` Registers a media control packet receiver.
    `int` | `registerObserver(ILocalUserObserver observer)` Registers a local user observer.
    `int` | `registerVideoEncodedFrameObserver(AgoraVideoEncodedFrameObserver agoraVideoEncodedFrameObserver)` Registers a video encoded frame observer.
    `int` | `registerVideoFrameObserver(AgoraVideoFrameObserver2 agoraVideoFrameObserver2)` Registers a video frame observer.
    `int` | `sendAudioMetaData(byte[] metaData)` Sends audio metadata.
    `int` | `sendIntraRequest(java.lang.String userId)` Sends an intra request to a specified user.
    `int` | `setAudioEncoderConfig(AudioEncoderConfig config)` Sets the audio encoder configuration.
    `int` | `setAudioScenario(int scenarioType)` Sets the audio scenario.
    `int` | `setAudioVolumeIndicationParameters(int intervalInMs, int smooth, boolean reportVad)` Sets the audio volume indication parameters.
    `int` | `setMixedAudioFrameParameters(int channels, int sampleRateHz, int samplesPerCall)` Sets the mixed audio frame parameters.
    `int` | `setPlaybackAudioFrameBeforeMixingParameters(int channels, int sampleRateHz)` Sets the playback audio frame parameters before mixing.
    `int` | `setPlaybackAudioFrameParameters(int channels, int sampleRateHz, int mode, int samplesPerCall)` Sets the playback audio frame parameters.
    `int` | `setRecordingAudioFrameParameters(int channels, int sampleRateHz, int mode, int samplesPerCall)` Sets the recording audio frame parameters.
    `void` | `setUserRole(int role)` Sets the user role.
    `int` | `subscribeAllAudio()` Subscribes to the audio of all users.
    `int` | `subscribeAllVideo(VideoSubscriptionOptions options)` Subscribes to the video of all users.
    `int` | `subscribeAudio(java.lang.String userId)` Subscribes to the audio of a specified user.
    `int` | `subscribeVideo(java.lang.String userId, VideoSubscriptionOptions options)` Subscribes to the video of a specified user.
    `int` | `unpublishAudio(AgoraLocalAudioTrack agoraLocalAudioTrack)` Unpublishes the local audio track.
    `int` | `unpublishVideo(AgoraLocalVideoTrack agoraLocalVideoTrack)` Unpublishes the local video track.
    `int` | `unregisterAudioEncodedFrameObserver(IAudioEncodedFrameObserver observer)` Unregisters the audio encoded frame observer.
    `int` | `unregisterAudioFrameObserver()` Unregisters the audio frame observer.
    `int` | `unregisterMediaControlPacketReceiver(AgoraMediaPacketReceiver agoraMediaPacketReceiver)` Unregisters the media control packet receiver.
    `int` | `unregisterObserver()` Unregisters the local user observer.
    `int` | `unregisterVideoEncodedFrameObserver(AgoraVideoEncodedFrameObserver agoraVideoEncodedFrameObserver)` Unregisters the video encoded frame observer.
    `int` | `unregisterVideoFrameObserver(AgoraVideoFrameObserver2 agoraVideoFrameObserver2)` Unregisters the video frame observer.
    `int` | `unsubscribeAllAudio()` Unsubscribes from the audio of all users.
    `int` | `unsubscribeAllVideo()` Unsubscribes from the video of all users.
    `int` | `unsubscribeAudio(java.lang.String userId)` Unsubscribes from the audio of a specified user.
    `int` | `unsubscribeVideo(java.lang.String userId)` Unsubscribes from the video of a specified user.

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

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

- - ### Field Detail

    - #### cptr

          private long cptr

    - #### agoraAudioFrameObserver

          private AgoraAudioFrameObserver agoraAudioFrameObserver

    - #### audioEncodedFrameObserver

          private IAudioEncodedFrameObserver audioEncodedFrameObserver

    - #### agoraVideoFrameObserver2

          private AgoraVideoFrameObserver2 agoraVideoFrameObserver2

    - #### agoraVideoEncodedFrameObserver

          private AgoraVideoEncodedFrameObserver agoraVideoEncodedFrameObserver

    - #### localUserObserver

          private volatile ILocalUserObserver localUserObserver

  - ### Constructor Detail

    - #### AgoraLocalUser

          public AgoraLocalUser(long cptr)

  - ### Method Detail

    - #### destroy

          public void destroy()

      Destroys the AgoraLocalUser instance and unregisters all observers.

    - #### registerAudioFrameObserver

          public int registerAudioFrameObserver(IAudioFrameObserver observer)

      Registers an audio frame observer.
      Parameters:
        `observer` - The audio frame observer to register.
      Returns:
        0: Success, < 0: Failure

    - #### registerAudioFrameObserver

          public int registerAudioFrameObserver(IAudioFrameObserver observer,
                                                boolean enableVad,
                                                AgoraAudioVadConfigV2 vadConfig)

      Registers an audio frame observer with VAD (Voice Activity Detection) enabled.
      Parameters:
        `observer` - The audio frame observer to register.
        `enableVad` - Whether to enable VAD.
        `vadConfig` - The VAD configuration.
      Returns:
        0: Success, < 0: Failure

    - #### unregisterAudioFrameObserver

          public int unregisterAudioFrameObserver()

      Unregisters the audio frame observer.
      Returns:
        0: Success, < 0: Failure

    - #### registerAudioEncodedFrameObserver

          public int registerAudioEncodedFrameObserver(IAudioEncodedFrameObserver observer)

      Registers an audio encoded frame observer.
      Parameters:
        `observer` - The audio encoded frame observer to register.
      Returns:
        0: Success, < 0: Failure

    - #### unregisterAudioEncodedFrameObserver

          public int unregisterAudioEncodedFrameObserver(IAudioEncodedFrameObserver observer)

      Unregisters the audio encoded frame observer.
      Parameters:
        `observer` - The audio encoded frame observer to unregister.
      Returns:
        0: Success, < 0: Failure

    - #### registerObserver

          public int registerObserver(ILocalUserObserver observer)

      Registers a local user observer.
      Parameters:
        `observer` - The local user observer to register.
      Returns:
        0: Success, < 0: Failure

    - #### unregisterObserver

          public int unregisterObserver()

      Unregisters the local user observer.
      Returns:
        0: Success, < 0: Failure

    - #### registerVideoFrameObserver

          public int registerVideoFrameObserver(AgoraVideoFrameObserver2 agoraVideoFrameObserver2)

      Registers a video frame observer.
      Parameters:
        `agoraVideoFrameObserver2` - The video frame observer to register.
      Returns:
        0: Success, < 0: Failure

    - #### unregisterVideoFrameObserver

          public int unregisterVideoFrameObserver(AgoraVideoFrameObserver2 agoraVideoFrameObserver2)

      Unregisters the video frame observer.
      Parameters:
        `agoraVideoFrameObserver2` - The video frame observer to unregister.
      Returns:
        0: Success, < 0: Failure

    - #### registerVideoEncodedFrameObserver

          public int registerVideoEncodedFrameObserver(AgoraVideoEncodedFrameObserver agoraVideoEncodedFrameObserver)

      Registers a video encoded frame observer.
      Parameters:
        `agoraVideoEncodedFrameObserver` - The video encoded frame observer to register.
      Returns:
        0: Success, < 0: Failure

    - #### unregisterVideoEncodedFrameObserver

          public int unregisterVideoEncodedFrameObserver(AgoraVideoEncodedFrameObserver agoraVideoEncodedFrameObserver)

      Unregisters the video encoded frame observer.
      Parameters:
        `agoraVideoEncodedFrameObserver` - The video encoded frame observer to unregister.
      Returns:
        0: Success, < 0: Failure

    - #### setUserRole

          public void setUserRole(int role)

      Sets the user role.
      Parameters:
        `role` - The user role to set.

    - #### getUserRole

          public int getUserRole()

      Gets the user role.
      Returns:
        The user role.

    - #### setAudioEncoderConfig

          public int setAudioEncoderConfig(AudioEncoderConfig config)

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

    - #### getLocalAudioStatistics

          public LocalAudioDetailedStats getLocalAudioStatistics()

      Gets the local audio statistics.
      Returns:
        The local audio statistics.

    - #### destroyLocalAudioStatistics

          public void destroyLocalAudioStatistics(LocalAudioDetailedStats stats)

      Destroys the local audio statistics.
      Parameters:
        `stats` - The local audio statistics to destroy.

    - #### publishAudio

          public int publishAudio(AgoraLocalAudioTrack agoraLocalAudioTrack)

      Publishes the local audio track.
      Parameters:
        `agoraLocalAudioTrack` - The local audio track to publish.
      Returns:
        0: Success, < 0: Failure

    - #### unpublishAudio

          public int unpublishAudio(AgoraLocalAudioTrack agoraLocalAudioTrack)

      Unpublishes the local audio track.
      Parameters:
        `agoraLocalAudioTrack` - The local audio track to unpublish.
      Returns:
        0: Success, < 0: Failure

    - #### publishVideo

          public int publishVideo(AgoraLocalVideoTrack agoraLocalVideoTrack)

      Publishes the local video track.
      Parameters:
        `agoraLocalVideoTrack` - The local video track to publish.
      Returns:
        0: Success, < 0: Failure

    - #### unpublishVideo

          public int unpublishVideo(AgoraLocalVideoTrack agoraLocalVideoTrack)

      Unpublishes the local video track.
      Parameters:
        `agoraLocalVideoTrack` - The local video track to unpublish.
      Returns:
        0: Success, < 0: Failure

    - #### subscribeAudio

          public int subscribeAudio(java.lang.String userId)

      Subscribes to the audio of a specified user.
      Parameters:
        `userId` - The user ID to subscribe to.
      Returns:
        0: Success, < 0: Failure

    - #### subscribeAllAudio

          public int subscribeAllAudio()

      Subscribes to the audio of all users.
      Returns:
        0: Success, < 0: Failure

    - #### unsubscribeAudio

          public int unsubscribeAudio(java.lang.String userId)

      Unsubscribes from the audio of a specified user.
      Parameters:
        `userId` - The user ID to unsubscribe from.
      Returns:
        0: Success, < 0: Failure

    - #### unsubscribeAllAudio

          public int unsubscribeAllAudio()

      Unsubscribes from the audio of all users.
      Returns:
        0: Success, < 0: Failure

    - #### adjustPlaybackSignalVolume

          public int adjustPlaybackSignalVolume(int volume)

      Adjusts the playback signal volume.
      Parameters:
        `volume` - The volume to set.
      Returns:
        0: Success, < 0: Failure

    - #### getPlaybackSignalVolume

          public int getPlaybackSignalVolume(Out volume)

      Gets the playback signal volume.
      Parameters:
        `volume` - The output volume.
      Returns:
        0: Success, < 0: Failure

    - #### setPlaybackAudioFrameParameters

          public int setPlaybackAudioFrameParameters(int channels,
                                                     int sampleRateHz,
                                                     int mode,
                                                     int samplesPerCall)

      Sets the playback audio frame parameters.
      Parameters:
        `channels` - The number of channels.
        `sampleRateHz` - The sample rate in Hz.
        `mode` - The mode.
        `samplesPerCall` - The number of samples per call.
      Returns:
        0: Success, < 0: Failure

    - #### setRecordingAudioFrameParameters

          public int setRecordingAudioFrameParameters(int channels,
                                                      int sampleRateHz,
                                                      int mode,
                                                      int samplesPerCall)

      Sets the recording audio frame parameters.
      Parameters:
        `channels` - The number of channels.
        `sampleRateHz` - The sample rate in Hz.
        `mode` - The mode.
        `samplesPerCall` - The number of samples per call.
      Returns:
        0: Success, < 0: Failure

    - #### setMixedAudioFrameParameters

          public int setMixedAudioFrameParameters(int channels,
                                                  int sampleRateHz,
                                                  int samplesPerCall)

      Sets the mixed audio frame parameters.
      Parameters:
        `channels` - The number of channels.
        `sampleRateHz` - The sample rate in Hz.
        `samplesPerCall` - The number of samples per call.
      Returns:
        0: Success, < 0: Failure

    - #### setPlaybackAudioFrameBeforeMixingParameters

          public int setPlaybackAudioFrameBeforeMixingParameters(int channels,
                                                                 int sampleRateHz)

      Sets the playback audio frame parameters before mixing.
      Parameters:
        `channels` - The number of channels.
        `sampleRateHz` - The sample rate in Hz.
      Returns:
        0: Success, < 0: Failure

    - #### subscribeVideo

          public int subscribeVideo(java.lang.String userId,
                                    VideoSubscriptionOptions options)

      Subscribes to the video of a specified user.
      Parameters:
        `userId` - The user ID to subscribe to.
        `options` - The video subscription options.
      Returns:
        0: Success, < 0: Failure

    - #### subscribeAllVideo

          public int subscribeAllVideo(VideoSubscriptionOptions options)

      Subscribes to the video of all users.
      Parameters:
        `options` - The video subscription options.
      Returns:
        0: Success, < 0: Failure

    - #### unsubscribeVideo

          public int unsubscribeVideo(java.lang.String userId)

      Unsubscribes from the video of a specified user.
      Parameters:
        `userId` - The user ID to unsubscribe from.
      Returns:
        0: Success, < 0: Failure

    - #### unsubscribeAllVideo

          public int unsubscribeAllVideo()

      Unsubscribes from the video of all users.
      Returns:
        0: Success, < 0: Failure

    - #### setAudioVolumeIndicationParameters

          public int setAudioVolumeIndicationParameters(int intervalInMs,
                                                        int smooth,
                                                        boolean reportVad)

      Sets the audio volume indication parameters.
      Parameters:
        `intervalInMs` - The interval in milliseconds.
        `smooth` - The smoothness.
        `reportVad` - Whether to report VAD.
      Returns:
        0: Success, < 0: Failure

    - #### getMediaControlPacketSender

          public AgoraMediaCtrlPacketSender getMediaControlPacketSender()

      Gets the media control packet sender.
      Returns:
        The media control packet sender.

    - #### registerMediaControlPacketReceiver

          public int registerMediaControlPacketReceiver(AgoraMediaPacketReceiver agoraMediaPacketReceiver)

      Registers a media control packet receiver.
      Parameters:
        `agoraMediaPacketReceiver` - The media control packet receiver to register.
      Returns:
        0: Success, < 0: Failure

    - #### unregisterMediaControlPacketReceiver

          public int unregisterMediaControlPacketReceiver(AgoraMediaPacketReceiver agoraMediaPacketReceiver)

      Unregisters the media control packet receiver.
      Parameters:
        `agoraMediaPacketReceiver` - The media control packet receiver to unregister.
      Returns:
        0: Success, < 0: Failure

    - #### sendIntraRequest

          public int sendIntraRequest(java.lang.String userId)

      Sends an intra request to a specified user.
      Parameters:
        `userId` - The user ID to send the intra request to.
      Returns:
        0: Success, < 0: Failure

    - #### setAudioScenario

          public int setAudioScenario(int scenarioType)

      Sets the audio scenario.
      Parameters:
        `scenarioType` - The audio scenario type to set.
      Returns:
        0: Success, < 0: Failure

    - #### sendAudioMetaData

          public int sendAudioMetaData(byte[] metaData)

      Sends audio metadata.
      Parameters:
        `metaData` - The audio metadata to send.
      Returns:
        0: Success, < 0: Failure

    - #### nativeDestroy

          private int nativeDestroy(long cptr)

    - #### nativeRegisterAudioFrameObserver

          private int nativeRegisterAudioFrameObserver(long cptr,
                                                       AgoraAudioFrameObserver observer)

    - #### nativeUnregisterAudioFrameObserver

          private int nativeUnregisterAudioFrameObserver(long cptr)

    - #### nativeRegisterAudioEncodedFrameObserver

          private int nativeRegisterAudioEncodedFrameObserver(long cptr,
                                                              IAudioEncodedFrameObserver observer)

    - #### nativeUnregisterAudioEncodedFrameObserver

          private int nativeUnregisterAudioEncodedFrameObserver(long cptr,
                                                                IAudioEncodedFrameObserver observer)

    - #### nativeRegisterObserver

          private int nativeRegisterObserver(long cptr,
                                             ILocalUserObserver observer)

    - #### nativeUnregisterObserver

          private int nativeUnregisterObserver(long cptr)

    - #### nativeRegisterVideoFrameObserver

          private int nativeRegisterVideoFrameObserver(long cptr,
                                                       AgoraVideoFrameObserver2 agoraVideoFrameObserver2)

    - #### nativeUnregisterVideoFrameObserver

          private int nativeUnregisterVideoFrameObserver(long cptr,
                                                         AgoraVideoFrameObserver2 agoraVideoFrameObserver2)

    - #### nativeRegisterVideoEncodedFrameObserver

          private int nativeRegisterVideoEncodedFrameObserver(long cptr,
                                                              AgoraVideoEncodedFrameObserver agoraVideoEncodedFrameObserver)

    - #### nativeUnregisterVideoEncodedFrameObserver

          private int nativeUnregisterVideoEncodedFrameObserver(long cptr,
                                                                AgoraVideoEncodedFrameObserver agoraVideoEncodedFrameObserver)

    - #### nativeSetUserRole

          private int nativeSetUserRole(long cptr,
                                        int role)

    - #### nativeGetUserRole

          private int nativeGetUserRole(long cptr)

    - #### nativeSetAudioEncoderConfig

          private int nativeSetAudioEncoderConfig(long cptr,
                                                  AudioEncoderConfig config)

    - #### nativeGetLocalAudioStatistics

          private LocalAudioDetailedStats nativeGetLocalAudioStatistics(long cptr)

    - #### nativeDestroyLocalAudioStatistics

          private void nativeDestroyLocalAudioStatistics(long cptr,
                                                         LocalAudioDetailedStats stats)

    - #### nativePublishAudio

          private int nativePublishAudio(long cptr,
                                         AgoraLocalAudioTrack agoraLocalAudioTrack)

    - #### nativeUnpublishAudio

          private int nativeUnpublishAudio(long cptr,
                                           AgoraLocalAudioTrack agoraLocalAudioTrack)

    - #### nativePublishVideo

          private int nativePublishVideo(long cptr,
                                         AgoraLocalVideoTrack agoraLocalVideoTrack)

    - #### nativeUnpublishVideo

          private int nativeUnpublishVideo(long cptr,
                                           AgoraLocalVideoTrack agoraLocalVideoTrack)

    - #### nativeSubscribeAudio

          private int nativeSubscribeAudio(long cptr,
                                           java.lang.String userId)

    - #### nativeSubscribeAllAudio

          private int nativeSubscribeAllAudio(long cptr)

    - #### nativeUnsubscribeAudio

          private int nativeUnsubscribeAudio(long cptr,
                                             java.lang.String userId)

    - #### nativeUnsubscribeAllAudio

          private int nativeUnsubscribeAllAudio(long cptr)

    - #### nativeAdjustPlaybackSignalVolume

          private int nativeAdjustPlaybackSignalVolume(long cptr,
                                                       int volume)

    - #### nativeGetPlaybackSignalVolume

          private int nativeGetPlaybackSignalVolume(long cptr,
                                                    Out volume)

    - #### nativeSetPlaybackAudioFrameParameters

          private int nativeSetPlaybackAudioFrameParameters(long cptr,
                                                            int channels,
                                                            int sampleRateHz,
                                                            int mode,
                                                            int samplesPerCall)

    - #### nativeSetRecordingAudioFrameParameters

          private int nativeSetRecordingAudioFrameParameters(long cptr,
                                                             int channels,
                                                             int sampleRateHz,
                                                             int mode,
                                                             int samplesPerCall)

    - #### nativeSetMixedAudioFrameParameters

          private int nativeSetMixedAudioFrameParameters(long cptr,
                                                         int channels,
                                                         int sampleRateHz,
                                                         int samplesPerCall)

    - #### nativeSetPlaybackAudioFrameBeforeMixingParameters

          private int nativeSetPlaybackAudioFrameBeforeMixingParameters(long cptr,
                                                                        int channels,
                                                                        int sampleRateHz)

    - #### nativeSubscribeVideo

          private int nativeSubscribeVideo(long cptr,
                                           java.lang.String userId,
                                           VideoSubscriptionOptions options)

    - #### nativeSubscribeAllVideo

          private int nativeSubscribeAllVideo(long cptr,
                                              VideoSubscriptionOptions options)

    - #### nativeUnsubscribeVideo

          private int nativeUnsubscribeVideo(long cptr,
                                             java.lang.String userId)

    - #### nativeUnsubscribeAllVideo

          private int nativeUnsubscribeAllVideo(long cptr)

    - #### nativeSetAudioVolumeIndicationParameters

          private int nativeSetAudioVolumeIndicationParameters(long cptr,
                                                               int intervalInMs,
                                                               int smooth,
                                                               boolean reportVad)

    - #### nativeGetMediaControlPacketSender

          private AgoraMediaCtrlPacketSender nativeGetMediaControlPacketSender(long cptr)

    - #### nativeRegisterMediaControlPacketReceiver

          private int nativeRegisterMediaControlPacketReceiver(long cptr,
                                                               AgoraMediaPacketReceiver agoraMediaPacketReceiver)

    - #### nativeUnregisterMediaControlPacketReceiver

          private int nativeUnregisterMediaControlPacketReceiver(long cptr,
                                                                 AgoraMediaPacketReceiver agoraMediaPacketReceiver)

    - #### nativeSendIntraRequest

          private int nativeSendIntraRequest(long cptr,
                                             java.lang.String userId)

    - #### nativeSetAudioScenario

          private int nativeSetAudioScenario(long cptr,
                                             int scenarioType)

    - #### nativeSendAudioMetaData

          private int nativeSendAudioMetaData(long cptr,
                                              byte[] metaData)