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 
15 namespace agora {
16 namespace rtc {
17 
18 enum class PcmSendErrorCode {
19  ERR_OK,
20  ERR_BUFFEROVERFLOW,
21 };
22 
23 
25  std::string data;
26  uint32_t capture_timestamp;
27  size_t samples_per_channel;
28  size_t bytes_per_sample;
29  size_t number_of_channels;
30  uint32_t sample_rate;
31 };
32 
34  public:
35  virtual ~IAudioPcmDataCallback() {}
36  virtual PcmSendErrorCode OnPcmData(agora_refptr<AudioPcmData> data) = 0;
37 };
38 
40  public:
41  virtual ~IAudioPcmDataSenderEx() {}
42  virtual void RegisterPcmDataCallback(IAudioPcmDataCallback* dataCallback) = 0;
43  virtual void DeRegisterPcmDataCallback(IAudioPcmDataCallback* dataCallback) = 0;
44 };
45 
47  std::string data;
48  uint32_t sample_rate = 0;
49  bool send_even_if_empty = false;
50  bool speech = false;
51  AUDIO_CODEC_TYPE encoder_type = AUDIO_CODEC_OPUS;
52  int samples_per_channel = 0;
53  int number_of_channels = 0;
54 };
55 
57  public:
58  virtual agora_refptr<rtc::IAudioPcmDataSender> getAudioPcmDataSender() const = 0;
59 };
60 
62  public:
63  virtual ~IAudioEncodedFrameDataCallback() {}
64  virtual bool OnEncodedFrameData(agora_refptr<AudioEncodedFrameData> data) = 0;
65 };
66 
68  public:
69  virtual ~IAudioEncodedFrameSenderEx() {}
70  virtual void RegisterEncodedFrameDataCallback(IAudioEncodedFrameDataCallback* dataCallback) = 0;
71  virtual void DeRegisterEncodedFrameDataCallback() = 0;
72 };
73 
75  public:
76  virtual ~IRecordingDeviceSourceEx() {}
77 
78  virtual agora_refptr<rtc::IAudioPcmDataSender> getAudioPcmDataSender() = 0;
79 };
80 
81 } // namespace rtc
82 } // namespace agora
agora::rtc::IRemoteAudioMixerSourceEx
Definition: audio_node_i.h:56
agora::agora_refptr
Definition: AgoraRefPtr.h:34
agora::rtc::IAudioEncodedFrameDataCallback
Definition: audio_node_i.h:61
agora::rtc::IAudioPcmDataSender
Definition: NGIAgoraMediaNode.h:240
agora::rtc::IAudioPcmDataSenderEx
Definition: audio_node_i.h:39
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:67
agora::rtc::AudioPcmData
Definition: audio_node_i.h:24
agora::rtc::IRecordingDeviceSourceEx
Definition: audio_node_i.h:74
agora::RefCountInterface
Definition: AgoraRefPtr.h:21
agora::rtc::AudioEncodedFrameData
Definition: audio_node_i.h:46
agora::rtc::IAudioPcmDataCallback
Definition: audio_node_i.h:33