Agora Java API Reference for Android
audio_node_i.h
1 //
2 // Agora RTC/MEDIA SDK
3 //
4 // Created by Ender Zheng in 2018-09.
5 // Copyright (c) 2018 Agora.io. All rights reserved.
6 //
7 #pragma once
8 
9 #include <string>
10 
11 #include "AgoraRefPtr.h"
12 #include "NGIAgoraAudioDeviceManager.h"
13 #include "NGIAgoraMediaNodeFactory.h"
14 #include "NGIAgoraMediaNode.h"
15 #include "NGIAgoraRemoteAudioMixerSource.h"
16 
17 namespace agora {
18 namespace rtc {
19 
20 enum class PcmSendErrorCode {
21  ERR_OK,
22  ERR_BUFFEROVERFLOW,
23 };
24 
25 
27  std::string data;
28  uint32_t capture_timestamp;
29  size_t samples_per_channel;
30  size_t bytes_per_sample;
31  size_t number_of_channels;
32  uint32_t sample_rate;
33 };
34 
36  public:
37  virtual ~IAudioPcmDataCallback() {}
38  virtual PcmSendErrorCode OnPcmData(agora_refptr<AudioPcmData> data) = 0;
39 };
40 
42  public:
43  virtual ~IAudioPcmDataSenderEx() {}
44  virtual void RegisterPcmDataCallback(IAudioPcmDataCallback* dataCallback) = 0;
45  virtual void DeRegisterPcmDataCallback(IAudioPcmDataCallback* dataCallback) = 0;
46 };
47 
49  std::string data;
50  uint32_t sample_rate = 0;
51  bool send_even_if_empty = false;
52  bool speech = false;
53  AUDIO_CODEC_TYPE encoder_type = AUDIO_CODEC_OPUS;
54  int samples_per_channel = 0;
55  int number_of_channels = 0;
56 };
57 
59  public:
60  virtual agora_refptr<rtc::IAudioPcmDataSender> getAudioPcmDataSender() const = 0;
61 };
62 
64  public:
65  virtual ~IAudioEncodedFrameDataCallback() {}
66  virtual bool OnEncodedFrameData(agora_refptr<AudioEncodedFrameData> data) = 0;
67 };
68 
70  public:
71  virtual ~IAudioEncodedFrameSenderEx() {}
72  virtual void RegisterEncodedFrameDataCallback(IAudioEncodedFrameDataCallback* dataCallback) = 0;
73  virtual void DeRegisterEncodedFrameDataCallback() = 0;
74 };
75 
77  public:
78  virtual ~IRecordingDeviceSourceEx() {}
79 
80  virtual agora_refptr<rtc::IAudioPcmDataSender> getAudioPcmDataSender() = 0;
81 };
82 
83 } // namespace rtc
84 } // namespace agora
agora::rtc::IRemoteAudioMixerSourceEx
Definition: audio_node_i.h:58
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::IAudioEncodedFrameDataCallback
Definition: audio_node_i.h:63
agora::rtc::IAudioPcmDataSender
Definition: NGIAgoraMediaNode.h:240
agora::rtc::IAudioPcmDataSenderEx
Definition: audio_node_i.h:41
agora::rtc::IRemoteAudioMixerSource
Definition: NGIAgoraRemoteAudioMixerSource.h:21
agora::rtc::IRecordingDeviceSource
Definition: NGIAgoraAudioDeviceManager.h:87
agora::rtc::IAudioEncodedFrameSender
Definition: NGIAgoraMediaNode.h:273
agora::rtc::IAudioEncodedFrameSenderEx
Definition: audio_node_i.h:69
agora::rtc::AudioPcmData
Definition: audio_node_i.h:26
agora::rtc::IRecordingDeviceSourceEx
Definition: audio_node_i.h:76
agora::RefCountInterface
Definition: AgoraRefPtr.h:31
agora::rtc::AudioEncodedFrameData
Definition: audio_node_i.h:48
agora::rtc::IAudioPcmDataCallback
Definition: audio_node_i.h:35