Agora C++ API Reference for All Platforms
audio_track_i.h
1 //
2 // Agora Media SDK
3 //
4 // Created by Rao Qi in 2019.
5 // Copyright (c) 2019 Agora IO. All rights reserved.
6 //
7 #pragma once
8 
9 #include <memory>
10 
11 #include "AgoraRefPtr.h"
12 #include "AgoraBase.h"
13 
14 #include "NGIAgoraAudioTrack.h"
15 
16 #include "track_stat_i.h"
17 #include "video_config_i.h"
18 
19 namespace agora {
20 namespace rtc {
21 
22 class AudioState;
23 class AudioNodeBase;
24 struct PacketStats;
25 
28  public:
30 
31  public:
33  virtual ~ILocalAudioTrackEx() {}
34 
36  std::shared_ptr<AudioNodeBase> audioNetworkSink, uint32_t sourceId) = 0;
37  virtual void detach(DetachReason reason) = 0;
38 
39  virtual void setMaxBufferedAudioFrameNumber(int number) = 0;
40 
41  virtual int setExtraDelay(int delay_ms) {
42  return -ERR_NOT_SUPPORTED;
43  }
44 
45  virtual bool getStatistics(PacketStats& stats) { return true; }
46 
47  virtual bool isMediaPacketTrack() = 0;
48 
50  notifier_.Notify(ts, state, errorCode);
51  }
52 
53  LocalAudioEvents GetEvents(bool readOnly = false) {
54  return notifier_.GetEvents(readOnly);
55  }
56 
57  protected:
59 };
60 
63  public:
65 
66  virtual ~IRemoteAudioTrackEx() {}
67 
69  notifier_.Notify(ts, state, reason);
70  }
71 
72  RemoteAudioEvents GetEvents() {
73  return notifier_.GetEvents();
74  }
75 
76  protected:
78 };
79 
80 } // namespace rtc
81 } // namespace agora
agora::rtc::ILocalAudioTrackEx::setMaxBufferedAudioFrameNumber
virtual void setMaxBufferedAudioFrameNumber(int number)=0
agora::rtc::ILocalAudioTrackEx::setExtraDelay
virtual int setExtraDelay(int delay_ms)
Definition: audio_track_i.h:41
agora::rtc::ILocalAudioTrackEx::~ILocalAudioTrackEx
virtual ~ILocalAudioTrackEx()
Definition: audio_track_i.h:33
agora::rtc::REMOTE_AUDIO_STATE_STOPPED
@ REMOTE_AUDIO_STATE_STOPPED
Definition: AgoraBase.h:2597
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::REMOTE_AUDIO_STATE
REMOTE_AUDIO_STATE
Definition: AgoraBase.h:2590
agora::rtc::ILocalAudioTrackEx::detach
virtual void detach(DetachReason reason)=0
agora::rtc::ILocalAudioTrackEx::attach
virtual void attach(agora_refptr< agora::rtc::AudioState > audioState, std::shared_ptr< AudioNodeBase > audioNetworkSink, uint32_t sourceId)=0
agora::rtc::ILocalAudioTrack
Definition: NGIAgoraAudioTrack.h:181
agora::rtc::ILocalAudioTrackEx::isMediaPacketTrack
virtual bool isMediaPacketTrack()=0
agora::rtc::IRemoteAudioTrackEx::~IRemoteAudioTrackEx
virtual ~IRemoteAudioTrackEx()
Definition: audio_track_i.h:66
agora::rtc::IRemoteAudioTrackEx::NotifyTrackStateChange
void NotifyTrackStateChange(uint64_t ts, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason)
Definition: audio_track_i.h:68
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::ILocalAudioTrackEx::notifier_
StateNotifier< LOCAL_AUDIO_STREAM_STATE, LOCAL_AUDIO_STREAM_ERROR > notifier_
Definition: audio_track_i.h:58
agora::rtc::IRemoteAudioTrackEx::notifier_
StateNotifier< REMOTE_AUDIO_STATE, REMOTE_AUDIO_STATE_REASON > notifier_
Definition: audio_track_i.h:77
agora::rtc::ILocalAudioTrackEx
Definition: audio_track_i.h:26
agora::rtc::StateNotifier::GetEvents
StateEvents< STATE_TYPE, REASON_TYPE > GetEvents(bool readOnly=false)
Definition: track_stat_i.h:38
agora::rtc::StateNotifier< LOCAL_AUDIO_STREAM_STATE, LOCAL_AUDIO_STREAM_ERROR >
agora::rtc::ILocalAudioTrackEx::DetachReason
DetachReason
Definition: audio_track_i.h:29
agora::rtc::IRemoteAudioTrackEx::IRemoteAudioTrackEx
IRemoteAudioTrackEx()
Definition: audio_track_i.h:64
agora::rtc::ILocalAudioTrackEx::getStatistics
virtual bool getStatistics(PacketStats &stats)
Definition: audio_track_i.h:45
agora::rtc::ILocalAudioTrackEx::MIXER_DESTROY
@ MIXER_DESTROY
Definition: audio_track_i.h:29
agora::rtc::ILocalAudioTrackEx::NotifyTrackStateChange
void NotifyTrackStateChange(uint64_t ts, LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_ERROR errorCode)
Definition: audio_track_i.h:49
agora::rtc::LOCAL_AUDIO_STREAM_STATE_STOPPED
@ LOCAL_AUDIO_STREAM_STATE_STOPPED
Definition: AgoraBase.h:2495
agora::rtc::ILocalAudioTrackEx::GetEvents
LocalAudioEvents GetEvents(bool readOnly=false)
Definition: audio_track_i.h:53
agora::rtc::StateEvents
std::vector< StateEvent< STATE_TYPE, REASON_TYPE > > StateEvents
Definition: track_stat_i.h:21
agora::rtc::ILocalAudioTrackEx::TRACK_DESTROY
@ TRACK_DESTROY
Definition: audio_track_i.h:29
agora::rtc::REMOTE_AUDIO_STATE_REASON
REMOTE_AUDIO_STATE_REASON
Definition: AgoraBase.h:2625
agora::rtc::IRemoteAudioTrackEx::GetEvents
RemoteAudioEvents GetEvents()
Definition: audio_track_i.h:72
agora::rtc::ILocalAudioTrackEx::MANUAL
@ MANUAL
Definition: audio_track_i.h:29
agora::rtc::StateNotifier::Notify
void Notify(uint64_t ts, STATE_TYPE state, REASON_TYPE reason)
Definition: track_stat_i.h:29
agora::rtc::IRemoteAudioTrackEx
Definition: audio_track_i.h:61
agora::ERR_NOT_SUPPORTED
@ ERR_NOT_SUPPORTED
Definition: AgoraBase.h:496
agora::rtc::LOCAL_AUDIO_STREAM_STATE
LOCAL_AUDIO_STREAM_STATE
Definition: AgoraBase.h:2491
agora::rtc::ILocalAudioTrackEx::ILocalAudioTrackEx
ILocalAudioTrackEx()
Definition: audio_track_i.h:32
rtc
Definition: video_node_i.h:27
agora::rtc::LOCAL_AUDIO_STREAM_ERROR
LOCAL_AUDIO_STREAM_ERROR
Definition: AgoraBase.h:2513
agora::rtc::IRemoteAudioTrack
Definition: NGIAgoraAudioTrack.h:459