Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
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
19namespace agora {
20namespace rtc {
21
22class AudioState;
23class AudioNodeBase;
24struct PacketStats;
25
27 public:
33
34 public:
37
39 std::shared_ptr<AudioNodeBase> audioNetworkSink, uint32_t sourceId) = 0;
40 virtual void detach(DetachReason reason) = 0;
41
42 virtual int ClearSenderBuffer() {
43 return -ERR_NOT_SUPPORTED;
44 }
45
46 virtual int setExtraDelay(int delay_ms) {
47 return -ERR_NOT_SUPPORTED;
48 }
49
50 virtual bool getStatistics(PacketStats& stats) { return true; }
51
52 virtual bool isMediaPacketTrack() { return false; }
53
54 virtual bool isEncodedFrameTrack() { return false; }
55
56 virtual int enableMusicMode(bool enable) {
57 return -ERR_NOT_SUPPORTED;
58 }
59
60 virtual int setDetachOption(DetachOption& option) {
61 return -ERR_NOT_SUPPORTED;
62 }
63 virtual int enableEarMonitorLLApiInternal(bool enable, int includeAudioFilters) = 0;
65 virtual int setEnabledLLApiInternal(bool enable) = 0;
66 virtual bool isEnabledLLApiInternal() const = 0;
67 virtual bool addAudioFilterLLApiInternal(agora_refptr<IAudioFilter> filter, AudioFilterPosition position, const ExtensionContext& extContext = {}) = 0;
69 virtual int enableAudioFilterLLApiInternal(const char* id, bool enable, AudioFilterPosition position) {return -1;};
70 virtual int setFilterPropertyLLApiInternal(const char* id, const char* key, const char* jsonValue, AudioFilterPosition position){return -1;};
71 virtual int getFilterPropertyLLApiInternal(const char* id, const char* key, char* jsonValue, size_t bufSize, AudioFilterPosition position){return -1;};
72 virtual agora_refptr<IAudioFilter> getAudioFilterLLApiInternal(const char* name, AudioFilterPosition position) const = 0;
73 virtual int adjustPlayoutVolumeLLApiInternal(int volume) = 0;
74 virtual int getPlayoutVolumeLLApiInternal(int* volume) = 0;
75 virtual int adjustPublishVolumeLLApiInternal(int volume) = 0;
76 virtual int getPublishVolumeLLApiInternal(int* volume) = 0;
77 virtual int enableLocalPlaybackLLApiInternal(bool enable, bool sync = true) = 0;
85 virtual void setMaxBufferedAudioFrameNumberApiInternal(int number) = 0;
88};
89
92 public:
94
96
98 notifier_.Notify(ts, state, reason);
99 }
100
101 virtual void SetExternalJitterInfo(int32_t audio_jitter95, int32_t video_jitter95, bool receiving_video) = 0;
102
103 RemoteAudioEvents GetEvents() {
104 return notifier_.GetEvents();
105 }
106
107 virtual int GetAudioLevel() { return 0; }
110 virtual int adjustPlayoutVolumeLLApiInternal(int volume) = 0;
111 virtual int getPlayoutVolumeLLApiInternal(int* volume) = 0;
112 virtual int setPlayoutSignalLoudnessLLApiInternal(float loudness) = 0;
113 virtual bool addAudioFilterLLApiInternal(agora_refptr<IAudioFilter> filter, AudioFilterPosition position, const ExtensionContext &extConetxt = {}) = 0;
120 virtual int setRemoteVoicePositionLLApiInternal(float pan, float gain) = 0;
121 virtual int adjustAudioAccelerationLLApiInternal(int percentage) = 0;
122 virtual int adjustAudioDecelerationLLApiInternal(int percentage) = 0;
123 virtual int adjustDecodedAudioVolumeLLApiInternal(int decoded_index, int volume) = 0;
124 virtual int enableSpatialAudioLLApiInternal(bool enabled) = 0;
128 virtual int enableAudioFilterLLApiInternal(const char* id, bool enable, AudioFilterPosition position) = 0;
129 virtual int setFilterPropertyLLApiInternal(const char* id, const char* key, const char* jsonValue, AudioFilterPosition position) = 0;
130 virtual int getFilterPropertyLLApiInternal(const char* id, const char* key, char* jsonValue, size_t bufSize, AudioFilterPosition position) = 0;
131 protected:
133};
134
135} // namespace rtc
136} // namespace agora
Definition AgoraOptional.h:413
Definition AgoraRefPtr.h:44
Definition NGIAgoraMediaNode.h:298
AudioFilterPosition
Definition NGIAgoraAudioTrack.h:64
virtual int enableAudioFilterLLApiInternal(const char *id, bool enable, AudioFilterPosition position)
Definition audio_track_i.h:69
virtual int adjustPublishVolumeLLApiInternal(int volume)=0
virtual bool isEnabledLLApiInternal() const =0
virtual int getFilterPropertyLLApiInternal(const char *id, const char *key, char *jsonValue, size_t bufSize, AudioFilterPosition position)
Definition audio_track_i.h:71
virtual int ClearSenderBuffer()
Definition audio_track_i.h:42
virtual agora_refptr< IAudioFilter > getAudioFilterLLApiInternal(const char *name, AudioFilterPosition position) const =0
virtual void detachAudioDeviceLLApiInternal()=0
virtual int getPublishVolumeLLApiInternal(int *volume)=0
virtual bool removeAudioFilterLLApiInternal(agora_refptr< IAudioFilter > filter, AudioFilterPosition position)=0
virtual void attachAudioDeviceLLApiInternal()=0
DetachReason
Definition audio_track_i.h:28
@ MIXER_DESTROY
Definition audio_track_i.h:28
@ MANUAL
Definition audio_track_i.h:28
@ TRACK_DESTROY
Definition audio_track_i.h:28
virtual void attach(agora_refptr< agora::rtc::AudioState > audioState, std::shared_ptr< AudioNodeBase > audioNetworkSink, uint32_t sourceId)=0
virtual bool getStatistics(PacketStats &stats)
Definition audio_track_i.h:50
virtual bool removeAudioSinkLLApiInternal(agora_refptr< IAudioSinkBase > sink)=0
virtual AUDIO_SOURCE_TYPE audioSourceType()=0
virtual int getPlayoutVolumeLLApiInternal(int *volume)=0
virtual ~ILocalAudioTrackEx()
Definition audio_track_i.h:36
virtual bool addAudioFilterLLApiInternal(agora_refptr< IAudioFilter > filter, AudioFilterPosition position, const ExtensionContext &extContext={})=0
virtual int setDetachOption(DetachOption &option)
Definition audio_track_i.h:60
virtual int enableMusicMode(bool enable)
Definition audio_track_i.h:56
virtual bool enforceFilterCompositesReadyLLApiInternal()=0
virtual ILocalAudioTrack::LocalAudioTrackStats GetStatsLLApiInternal()=0
virtual int setEnabledLLApiInternal(bool enable)=0
virtual int setFilterPropertyLLApiInternal(const char *id, const char *key, const char *jsonValue, AudioFilterPosition position)
Definition audio_track_i.h:70
virtual bool isEncodedFrameTrack()
Definition audio_track_i.h:54
ILocalAudioTrackEx()
Definition audio_track_i.h:35
virtual LOCAL_AUDIO_STREAM_STATE getStateLLApiInternal()=0
virtual int adjustPlayoutVolumeLLApiInternal(int volume)=0
virtual void setMaxBufferedAudioFrameNumberApiInternal(int number)=0
virtual bool addAudioSinkLLApiInternal(agora_refptr< IAudioSinkBase > sink, const AudioSinkWants &wants)=0
virtual int enableEarMonitorLLApiInternal(bool enable, int includeAudioFilters)=0
virtual int unregisterTrackObserverLLApiInternal(ILocalAudioTrackObserver *observer)=0
virtual int registerTrackObserverLLApiInternal(ILocalAudioTrackObserver *observer)=0
virtual int setExtraDelay(int delay_ms)
Definition audio_track_i.h:46
virtual int enableLocalPlaybackLLApiInternal(bool enable, bool sync=true)=0
virtual bool isMediaPacketTrack()
Definition audio_track_i.h:52
virtual void detach(DetachReason reason)=0
Definition NGIAgoraAudioTrack.h:262
Definition NGIAgoraAudioTrack.h:234
Definition NGIAgoraMediaNode.h:318
virtual bool getStatisticsLLApiInternal(RemoteAudioTrackStats &stats)=0
virtual bool removeAudioFilterLLApiInternal(agora_refptr< IAudioFilter > filter, AudioFilterPosition position)=0
virtual int adjustAudioDecelerationLLApiInternal(int percentage)=0
void NotifyTrackStateChange(uint64_t ts, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason)
Definition audio_track_i.h:97
StateNotifier< REMOTE_AUDIO_STATE, REMOTE_AUDIO_STATE_REASON > notifier_
Definition audio_track_i.h:132
virtual agora_refptr< IAudioFilter > getAudioFilterLLApiInternal(const char *name, AudioFilterPosition position) const =0
virtual int getFilterPropertyLLApiInternal(const char *id, const char *key, char *jsonValue, size_t bufSize, AudioFilterPosition position)=0
virtual void SetExternalJitterInfo(int32_t audio_jitter95, int32_t video_jitter95, bool receiving_video)=0
virtual int enableSpatialAudioLLApiInternal(bool enabled)=0
virtual int registerAudioEncodedFrameReceiverLLApiInternal(IAudioEncodedFrameReceiver *packetReceiver, const AudioEncFrameRecvParams &recvParams)=0
virtual bool removeAudioSinkLLApiInternal(agora_refptr< IAudioSinkBase > sink)=0
virtual int unregisterMediaPacketReceiverLLApiInternal(IMediaPacketReceiver *packetReceiver)=0
virtual ~IRemoteAudioTrackEx()
Definition audio_track_i.h:95
virtual bool addAudioFilterLLApiInternal(agora_refptr< IAudioFilter > filter, AudioFilterPosition position, const ExtensionContext &extConetxt={})=0
virtual int unregisterAudioEncodedFrameReceiverLLApiInternal(IAudioEncodedFrameReceiver *packetReceiver)=0
RemoteAudioEvents GetEvents()
Definition audio_track_i.h:103
virtual int registerMediaPacketReceiverLLApiInternal(IMediaPacketReceiver *packetReceiver)=0
virtual int getPlayoutVolumeLLApiInternal(int *volume)=0
virtual int adjustPlayoutVolumeLLApiInternal(int volume)=0
virtual int adjustAudioAccelerationLLApiInternal(int percentage)=0
virtual int setPlayoutSignalLoudnessLLApiInternal(float loudness)=0
virtual int setRemoteVoicePositionLLApiInternal(float pan, float gain)=0
virtual int GetAudioLevel()
Definition audio_track_i.h:107
IRemoteAudioTrackEx()
Definition audio_track_i.h:93
virtual int enableAudioFilterLLApiInternal(const char *id, bool enable, AudioFilterPosition position)=0
virtual REMOTE_AUDIO_STATE getStateLLApiInternal()=0
virtual bool addAudioSinkLLApiInternal(agora_refptr< IAudioSinkBase > sink, const AudioSinkWants &wants)=0
virtual int adjustDecodedAudioVolumeLLApiInternal(int decoded_index, int volume)=0
virtual int setFilterPropertyLLApiInternal(const char *id, const char *key, const char *jsonValue, AudioFilterPosition position)=0
virtual int setRemoteUserSpatialAudioParamsLLApiInternal(const agora::SpatialAudioParams &params)=0
Definition NGIAgoraAudioTrack.h:778
Definition track_stat_i.h:24
Definition AgoraExtensions.h:5
LOCAL_AUDIO_STREAM_STATE
Definition AgoraBase.h:3266
AUDIO_SOURCE_TYPE
Definition AgoraMediaBase.h:127
REMOTE_AUDIO_STATE_REASON
Definition AgoraBase.h:3530
std::vector< StateEvent< STATE_TYPE, REASON_TYPE > > StateEvents
Definition track_stat_i.h:21
REMOTE_AUDIO_STATE
Definition AgoraBase.h:3496
@ REMOTE_AUDIO_STATE_STOPPED
Definition AgoraBase.h:3502
Definition AgoraAtomicOps.h:21
@ ERR_NOT_SUPPORTED
Definition AgoraBase.h:481
Definition AgoraBase.h:7507
Definition NGIAgoraAudioTrack.h:709
Definition NGIAgoraAudioTrack.h:37
Definition AgoraMediaBase.h:41
Definition NGIAgoraAudioTrack.h:267
Optional< bool > sync_destroy
Definition audio_track_i.h:30
Optional< bool > detach_default_audio_state
Definition audio_track_i.h:31
Definition NGIAgoraAudioTrack.h:454