Agora C++ API Reference for All Platforms

Classes | Public Member Functions | Protected Member Functions | List of all members
agora::rtc::ILocalAudioTrack Class Referenceabstract

Inherits agora::rtc::IAudioTrack.

Inherited by agora::rtc::ILocalAudioTrackEx.

## Classes
struct | LocalAudioTrackStats

## Public Member Functions
virtual int | setEnabled (bool enable, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual bool | isEnabled () const =0
virtual LOCAL_AUDIO_STREAM_STATE | getState ()=0
virtual LocalAudioTrackStats | GetStats ()=0
virtual int | adjustPublishVolume (int volume, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int | getPublishVolume (int *volume)=0
virtual int | enableLocalPlayback (bool enable, bool sync=true, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int | enableEarMonitor (bool enable, int includeAudioFilters, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int | registerTrackObserver (ILocalAudioTrackObserver *observer, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int | unregisterTrackObserver (ILocalAudioTrackObserver *observer)=0
virtual void | setMaxBufferedAudioFrameNumber (int number, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int | ClearSenderBuffer ()=0
Public Member Functions inherited from agora::rtc::IAudioTrack
virtual int | adjustPlayoutVolume (int volume, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int | getPlayoutVolume (int *volume)=0
virtual bool | addAudioFilter (agora_refptr< IAudioFilter > filter, AudioFilterPosition position, ExtensionContext *extContext=NULL, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual bool | removeAudioFilter (agora_refptr< IAudioFilter > filter, AudioFilterPosition position, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int | enableAudioFilter (const char *id, bool enable, AudioFilterPosition position, aosl_ref_t ares=AOSL_REF_INVALID)
virtual int | setFilterProperty (const char *id, const char *key, const char *jsonValue, AudioFilterPosition position, aosl_ref_t ares=AOSL_REF_INVALID)
virtual int | getFilterProperty (const char *id, const char *key, char *jsonValue, size_t bufSize, AudioFilterPosition position)
virtual agora_refptr< IAudioFilter > | getAudioFilter (const char *name, AudioFilterPosition position) const =0
virtual bool | addAudioSink (agora_refptr< IAudioSinkBase > sink, const AudioSinkWants &wants, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual bool | removeAudioSink (agora_refptr< IAudioSinkBase > sink, aosl_ref_t ares=AOSL_REF_INVALID)=0
Public Member Functions inherited from agora::RefCountInterface
virtual void | AddRef () const =0
virtual RefCountReleaseStatus | Release () const =0
virtual bool | HasOneRef () const =0

## Protected Member Functions
| ~ILocalAudioTrack ()
Protected Member Functions inherited from agora::RefCountInterface
virtual | ~RefCountInterface ()

## Additional Inherited Members
Public Types inherited from agora::rtc::IAudioTrack
enum | AudioFilterPosition { RecordingLocalPlayback, PostAudioProcessing, RemoteUserPlayback, PcmSource, PcmSourceSending, PcmSourceLocalPlayback, RemoteMixedPlayback }

## Detailed Description

`ILocalAudioTrack` is the basic class for local audio tracks, providing main methods of local audio tracks.

You can create a local audio track by calling one of the following methods:

- `createLocalAudioTrack`
- `createCustomAudioTrack`
- `createMediaPlayerAudioTrack` You can also use the APIs in the IAudioDeviceManager class if multiple recording devices are available in the system.

After creating local audio tracks, you can publish one or more local audio tracks by calling publishAudio.

## Constructor & Destructor Documentation

## ◆ ~ILocalAudioTrack()

agora::rtc::ILocalAudioTrack::~ILocalAudioTrack | ( |  | ) |
| inline protected

## Member Function Documentation

## ◆ setEnabled()

virtual int agora::rtc::ILocalAudioTrack::setEnabled | ( | bool | enable,
|  | aosl_ref_t | ares = `AOSL_REF_INVALID`
| ) |  |
| pure virtual

Enables or disables the local audio track.

Once the local audio is enabled, the SDK allows for local audio capturing, processing, and encoding.

Parameters

  enable | Whether to enable the audio track: `true`: Enable the local audio track. `false`: Disable the local audio track.

## ◆ isEnabled()

virtual bool agora::rtc::ILocalAudioTrack::isEnabled | ( |  | ) | const
| pure virtual

Gets whether the local audio track is enabled.

Returns
  Whether the local audio track is enabled:
  - `true`: The local track is enabled.
  - `false`: The local track is disabled.

## ◆ getState()

virtual LOCAL_AUDIO_STREAM_STATE agora::rtc::ILocalAudioTrack::getState | ( |  | ) |
| pure virtual

Gets the state of the local audio.

Returns
  The state of the local audio: LOCAL_AUDIO_STREAM_STATE: Success.

## ◆ GetStats()

virtual LocalAudioTrackStats agora::rtc::ILocalAudioTrack::GetStats | ( |  | ) |
| pure virtual

Gets the statistics of the local audio track: LocalAudioTrackStats.

Returns
  The statistics of the local audio: LocalAudioTrackStats: Success.

## ◆ adjustPublishVolume()

virtual int agora::rtc::ILocalAudioTrack::adjustPublishVolume | ( | int | volume,
|  | aosl_ref_t | ares = `AOSL_REF_INVALID`
| ) |  |
| pure virtual

Adjusts the audio volume for publishing.

Parameters

  volume | The volume for publishing. The value ranges between 0 and 100 (default).

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

## ◆ getPublishVolume()

virtual int agora::rtc::ILocalAudioTrack::getPublishVolume | ( | int * | volume | ) |
| pure virtual

Gets the current volume for publishing.

Parameters

  volume | A pointer to the publishing volume.

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

## ◆ enableLocalPlayback()

virtual int agora::rtc::ILocalAudioTrack::enableLocalPlayback | ( | bool | enable,
|  | bool | sync = `true`,
|  | aosl_ref_t | ares = `AOSL_REF_INVALID`
| ) |  |
| pure virtual

Enables or disables local playback.

Parameters

  enable | Whether to enable local playback: `true`: Enable local playback. `false`: Disable local playback.
  sync | Whether to destroy local playback synchronously: `true`: Destroy local playback synchronously. `false`: Destroy local playback asynchronously.

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

## ◆ enableEarMonitor()

virtual int agora::rtc::ILocalAudioTrack::enableEarMonitor | ( | bool | enable,
|  | int | includeAudioFilters,
|  | aosl_ref_t | ares = `AOSL_REF_INVALID`
| ) |  |
| pure virtual

Enables in-ear monitoring (for Android and iOS only).

Parameters

  enabled | Determines whether to enable in-ear monitoring. true: Enable. false: (Default) Disable.
  includeAudioFilters | The type of the ear monitoring: EAR_MONITORING_FILTER_TYPE

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

## ◆ registerTrackObserver()

virtual int agora::rtc::ILocalAudioTrack::registerTrackObserver | ( | ILocalAudioTrackObserver * | observer,
|  | aosl_ref_t | ares = `AOSL_REF_INVALID`
| ) |  |
| pure virtual

Register an local audio track observer

Parameters

  observer | A pointer to the local audio track observer: ILocalAudioTrackObserver.

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

## ◆ unregisterTrackObserver()

virtual int agora::rtc::ILocalAudioTrack::unregisterTrackObserver | ( | ILocalAudioTrackObserver * | observer | ) |
| pure virtual

Releases the local audio track observer

Parameters

  observer | A pointer to the local audio track observer: ILocalAudioTrackObserver.

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

## ◆ setMaxBufferedAudioFrameNumber()

virtual void agora::rtc::ILocalAudioTrack::setMaxBufferedAudioFrameNumber | ( | int | number,
|  | aosl_ref_t | ares = `AOSL_REF_INVALID`
| ) |  |
| pure virtual

set Max buffered audio frame number

Parameters

  number | : the buffer number set，unit is 10ms

## ◆ ClearSenderBuffer()

virtual int agora::rtc::ILocalAudioTrack::ClearSenderBuffer | ( |  | ) |
| pure virtual

clear sender buffer

Returns
  - >= 0: Frame number in sender buffer.
  - < 0: Failure.

Implemented in agora::rtc::ILocalAudioTrackEx.