Agora Java API Reference for Android
NGIAgoraAudioTrack.h
1 
2 // Copyright (c) 2018 Agora.io. All rights reserved
3 
4 // This program is confidential and proprietary to Agora.io.
5 // And may not be copied, reproduced, modified, disclosed to others, published
6 // or used, in whole or in part, without the express prior written permission
7 // of Agora.io.
8 
9 #pragma once // NOLINT(build/header_guard)
10 
11 #include "AgoraRefPtr.h"
12 #include "IAgoraService.h"
13 #include "NGIAgoraMediaNodeFactory.h"
14 
15 // FIXME(Ender): use this class instead of AudioSendStream as local track
16 namespace agora {
17 namespace rtc {
18 class IAudioTrackStateObserver;
19 
30 
32  size_t channels;
33 
35  channels(0) {}
36  AudioSinkWants(int sampleRate, size_t chs) : samplesPerSec(sampleRate),
37  channels(chs) {}
38 };
39 
44 public:
61  };
62 
63  public:
71  virtual int adjustPlayoutVolume(int volume) = 0;
72 
80  virtual int getPlayoutVolume(int* volume) = 0;
81 
103 
112  virtual agora_refptr<IAudioFilter> getAudioFilter(const char *name) const = 0;
113 
123  virtual bool addAudioSink(agora_refptr<IAudioSinkBase> sink, const AudioSinkWants& wants) = 0;
124 
134 };
135 
151  public:
159  uint32_t source_id;
186  uint32_t effect_type;
190  bool enabled;
191 
198  effect_type(0),
199  enabled(false) {}
200  };
201 
202  public:
212  virtual void setEnabled(bool enable) = 0;
213 
220  virtual bool isEnabled() const = 0;
221 
226  virtual LOCAL_AUDIO_STREAM_STATE getState() = 0;
227 
233 
242  virtual int adjustPublishVolume(int volume) = 0;
243 
251  virtual int getPublishVolume(int* volume) = 0;
252 
262  virtual int enableLocalPlayback(bool enable) = 0;
274  virtual int enableEarMonitor(bool enable, int includeAudioFilters) = 0;
275 
276  protected:
277  ~ILocalAudioTrack() {}
278 };
279 
287  uid_t uid;
291  int quality;
329  int64_t received_bytes;
357  int32_t audio_level;
382 
384  uid(0),
385  quality(0),
388  audio_loss_rate(0),
389  num_channels(0),
391  received_bitrate(0),
393  frozen_rate(0),
394  received_bytes(0),
399  min_sequence_number(0xFFFF),
401  audio_level(0),
406  frozen_time_200_ms(0) { }
407 };
408 
413  public:
421  virtual bool getStatistics(RemoteAudioTrackStats& stats) = 0;
422 
427  virtual REMOTE_AUDIO_STATE getState() = 0;
428 
441  virtual int registerMediaPacketReceiver(IMediaPacketReceiver* packetReceiver) = 0;
442 
450  virtual int unregisterMediaPacketReceiver(IMediaPacketReceiver* packetReceiver) = 0;
451 };
452 
453 } // namespace rtc
454 } // namespace agora
agora::rtc::ILocalAudioTrack::LocalAudioTrackStats::effect_type
uint32_t effect_type
Definition: NGIAgoraAudioTrack.h:186
agora::rtc::ILocalAudioTrack::enableLocalPlayback
virtual int enableLocalPlayback(bool enable)=0
agora::rtc::ILocalAudioTrack::LocalAudioTrackStats
Definition: NGIAgoraAudioTrack.h:155
agora::rtc::RemoteAudioTrackStats::frozen_rate
int frozen_rate
Definition: NGIAgoraAudioTrack.h:325
agora::rtc::IAudioTrack::PostAudioProcessing
@ PostAudioProcessing
Definition: NGIAgoraAudioTrack.h:60
agora::agora_refptr
Definition: AgoraRefPtr.h:34
agora::rtc::RemoteAudioTrackStats::total_frozen_time
int total_frozen_time
Definition: NGIAgoraAudioTrack.h:321
agora::rtc::ILocalAudioTrack::setEnabled
virtual void setEnabled(bool enable)=0
agora::rtc::RemoteAudioTrackStats::frozen_time_200_ms
uint16_t frozen_time_200_ms
Definition: NGIAgoraAudioTrack.h:377
agora::rtc::ILocalAudioTrack::LocalAudioTrackStats::buffered_pcm_data_list_size
uint32_t buffered_pcm_data_list_size
Definition: NGIAgoraAudioTrack.h:166
agora::rtc::ILocalAudioTrack
Definition: NGIAgoraAudioTrack.h:150
agora::rtc::ILocalAudioTrack::LocalAudioTrackStats::missed_audio_frames
uint32_t missed_audio_frames
Definition: NGIAgoraAudioTrack.h:170
agora::rtc::IAudioTrack::addAudioSink
virtual bool addAudioSink(agora_refptr< IAudioSinkBase > sink, const AudioSinkWants &wants)=0
agora::rtc::RemoteAudioTrackStats::mean_waiting_time
int mean_waiting_time
Definition: NGIAgoraAudioTrack.h:333
agora::rtc::ILocalAudioTrack::getState
virtual LOCAL_AUDIO_STREAM_STATE getState()=0
agora::rtc::ILocalAudioTrack::GetStats
virtual LocalAudioTrackStats GetStats()=0
agora::rtc::ILocalAudioTrack::LocalAudioTrackStats::pushed_audio_frames
uint32_t pushed_audio_frames
Definition: NGIAgoraAudioTrack.h:178
agora::rtc::IRemoteAudioTrack::getStatistics
virtual bool getStatistics(RemoteAudioTrackStats &stats)=0
agora::rtc::ILocalAudioTrack::enableEarMonitor
virtual int enableEarMonitor(bool enable, int includeAudioFilters)=0
agora::rtc::ILocalAudioTrack::LocalAudioTrackStats::enabled
bool enabled
Definition: NGIAgoraAudioTrack.h:190
agora::rtc::RemoteAudioTrackStats
Definition: NGIAgoraAudioTrack.h:283
agora::rtc::RemoteAudioTrackStats::frozen_time_80_ms
uint16_t frozen_time_80_ms
Definition: NGIAgoraAudioTrack.h:369
agora::rtc::IAudioTrack::addAudioFilter
virtual bool addAudioFilter(agora_refptr< IAudioFilter > filter, AudioFilterPosition position)=0
agora::rtc::IAudioTrack::removeAudioSink
virtual bool removeAudioSink(agora_refptr< IAudioSinkBase > sink)=0
agora::rtc::ILocalAudioTrack::adjustPublishVolume
virtual int adjustPublishVolume(int volume)=0
agora::rtc::RemoteAudioTrackStats::timestamps_since_last_report
uint32_t timestamps_since_last_report
Definition: NGIAgoraAudioTrack.h:345
agora::rtc::ILocalAudioTrack::isEnabled
virtual bool isEnabled() const =0
agora::rtc::IAudioTrack
Definition: NGIAgoraAudioTrack.h:43
agora::rtc::IAudioTrack::adjustPlayoutVolume
virtual int adjustPlayoutVolume(int volume)=0
agora::rtc::RemoteAudioTrackStats::expanded_speech_samples
size_t expanded_speech_samples
Definition: NGIAgoraAudioTrack.h:337
agora::rtc::RemoteAudioTrackStats::expanded_noise_samples
size_t expanded_noise_samples
Definition: NGIAgoraAudioTrack.h:341
agora::rtc::RemoteAudioTrackStats::frozen_count_80_ms
uint16_t frozen_count_80_ms
Definition: NGIAgoraAudioTrack.h:365
agora::rtc::RemoteAudioTrackStats::uid
uid_t uid
Definition: NGIAgoraAudioTrack.h:287
agora::rtc::RemoteAudioTrackStats::audio_level
int32_t audio_level
Definition: NGIAgoraAudioTrack.h:357
agora::rtc::IAudioTrack::getAudioFilter
virtual agora_refptr< IAudioFilter > getAudioFilter(const char *name) const =0
agora::rtc::RemoteAudioTrackStats::max_sequence_number
uint16_t max_sequence_number
Definition: NGIAgoraAudioTrack.h:353
agora::rtc::RemoteAudioTrackStats::downlink_process_time_ms
uint32_t downlink_process_time_ms
Definition: NGIAgoraAudioTrack.h:361
agora::rtc::IMediaPacketReceiver
Definition: NGIAgoraMediaNode.h:298
agora::rtc::AudioSinkWants::channels
size_t channels
Definition: NGIAgoraAudioTrack.h:32
agora::rtc::IAudioTrack::removeAudioFilter
virtual bool removeAudioFilter(agora_refptr< IAudioFilter > filter, AudioFilterPosition position)=0
agora::rtc::IAudioTrack::PostAudioRecordingDevice
@ PostAudioRecordingDevice
Definition: NGIAgoraAudioTrack.h:56
agora::rtc::RemoteAudioTrackStats::audio_loss_rate
int audio_loss_rate
Definition: NGIAgoraAudioTrack.h:303
agora::rtc::RemoteAudioTrackStats::received_bytes
int64_t received_bytes
Definition: NGIAgoraAudioTrack.h:329
agora::rtc::RemoteAudioTrackStats::received_sample_rate
int received_sample_rate
Definition: NGIAgoraAudioTrack.h:311
agora::rtc::RemoteAudioTrackStats::delay_estimate_ms
uint32_t delay_estimate_ms
Definition: NGIAgoraAudioTrack.h:381
agora::rtc::ILocalAudioTrack::getPublishVolume
virtual int getPublishVolume(int *volume)=0
agora::rtc::ILocalAudioTrack::LocalAudioTrackStats::sent_audio_frames
uint32_t sent_audio_frames
Definition: NGIAgoraAudioTrack.h:174
agora::rtc::ILocalAudioTrack::LocalAudioTrackStats::dropped_audio_frames
uint32_t dropped_audio_frames
Definition: NGIAgoraAudioTrack.h:182
agora::rtc::RemoteAudioTrackStats::received_bitrate
int received_bitrate
Definition: NGIAgoraAudioTrack.h:315
agora::rtc::RemoteAudioTrackStats::jitter_buffer_delay
uint32_t jitter_buffer_delay
Definition: NGIAgoraAudioTrack.h:299
agora::rtc::AudioSinkWants
Definition: NGIAgoraAudioTrack.h:27
agora::RefCountInterface
Definition: AgoraRefPtr.h:21
agora::rtc::IAudioTrack::getPlayoutVolume
virtual int getPlayoutVolume(int *volume)=0
agora::rtc::RemoteAudioTrackStats::frozen_count_200_ms
uint16_t frozen_count_200_ms
Definition: NGIAgoraAudioTrack.h:373
agora::rtc::RemoteAudioTrackStats::num_channels
int num_channels
Definition: NGIAgoraAudioTrack.h:307
agora::rtc::IRemoteAudioTrack::registerMediaPacketReceiver
virtual int registerMediaPacketReceiver(IMediaPacketReceiver *packetReceiver)=0
agora::rtc::RemoteAudioTrackStats::min_sequence_number
uint16_t min_sequence_number
Definition: NGIAgoraAudioTrack.h:349
agora::rtc::AudioSinkWants::samplesPerSec
int samplesPerSec
Definition: NGIAgoraAudioTrack.h:29
agora::rtc::IRemoteAudioTrack::getState
virtual REMOTE_AUDIO_STATE getState()=0
agora::rtc::ILocalAudioTrack::LocalAudioTrackStats::source_id
uint32_t source_id
Definition: NGIAgoraAudioTrack.h:159
agora::rtc::RemoteAudioTrackStats::quality
int quality
Definition: NGIAgoraAudioTrack.h:291
agora::rtc::IRemoteAudioTrack::unregisterMediaPacketReceiver
virtual int unregisterMediaPacketReceiver(IMediaPacketReceiver *packetReceiver)=0
agora::rtc::IAudioTrack::AudioFilterPosition
AudioFilterPosition
Definition: NGIAgoraAudioTrack.h:48
agora::rtc::IAudioTrack::RecordingLocalPlayback
@ RecordingLocalPlayback
Definition: NGIAgoraAudioTrack.h:52
agora::rtc::RemoteAudioTrackStats::network_transport_delay
int network_transport_delay
Definition: NGIAgoraAudioTrack.h:295
agora::rtc::IRemoteAudioTrack
Definition: NGIAgoraAudioTrack.h:412