Agora Java API Reference for Android
NGIAgoraAudioDeviceManager.h
1 //
2 // Agora SDK
3 //
4 // Copyright (c) 2018 Agora.io. All rights reserved.
5 //
6 
7 #pragma once // NOLINT(build/header_guard)
8 
9 #include <cstring>
10 
11 #include "AgoraBase.h"
12 #include "AgoraRefPtr.h"
13 
14 namespace agora {
15 namespace media {
16 namespace base {
17 class IAudioFrameObserver;
18 } // namespace base
19 } // namespace media
20 
21 namespace rtc {
22 
23 static const int kAdmMaxDeviceNameSize = 128;
24 static const int kAdmMaxGuidSize = 128;
25 static const int kIntervalInMillseconds = 200;
26 
27 
28 #if defined(_WIN32) || (TARGET_OS_MAC && !TARGET_OS_IPHONE)
29 
35 struct AudioDeviceInfo {
39  char deviceName[kAdmMaxDeviceNameSize];
43  char deviceId[kAdmMaxGuidSize];
49  bool isCurrentSelected;
55  bool isPlayoutDevice;
56 
57  AudioDeviceInfo() : isCurrentSelected(false),
58  isPlayoutDevice(true) {
59  memset(deviceName, 0, sizeof(deviceName));
60  memset(deviceId, 0, sizeof(deviceId));
61  }
62 };
63 #endif // _WIN32 || (TARGET_OS_MAC && !TARGET_OS_IPHONE)
64 
69 {
70 public:
71  virtual ~IAudioDeviceManagerObserver() {}
72 
78  virtual void onDeviceStateChanged() = 0;
79 
90  virtual void onAudioDeviceStateChanged(const char *deviceId, int deviceType, int deviceState) = 0;
91 
96  virtual void onVolumeIndication(int volume) = 0;
97 
103  virtual void onRoutingChanged(AudioRoute route) = 0;
104 };
105 
107  public:
114  virtual int initRecording() = 0;
115 
122  virtual int startRecording() = 0;
123 
130  virtual int stopRecording() = 0;
131 
141 
151 
152  virtual ~IRecordingDeviceSource() {}
153 };
154 
162 public:
171  virtual agora_refptr<IRecordingDeviceSource> createRecordingDeviceSource(char deviceId[kAdmMaxDeviceNameSize]) = 0;
172 
180  virtual int setMicrophoneVolume(unsigned int volume) = 0;
188  virtual int getMicrophoneVolume(unsigned int& volume) = 0;
196  virtual int setSpeakerVolume(unsigned int volume) = 0;
204  virtual int getSpeakerVolume(unsigned int& volume) = 0;
214  virtual int setMicrophoneMute(bool mute) = 0;
222  virtual int getMicrophoneMute(bool& mute) = 0;
232  virtual int setSpeakerMute(bool mute) = 0;
240  virtual int getSpeakerMute(bool& mute) = 0;
241 
249  virtual int getPlayoutAudioParameters(AudioParameters* params) const = 0;
250 
258  virtual int getRecordAudioParameters(AudioParameters* params) const = 0;
259 
260 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
261 
276  virtual int setDefaultAudioRouting(AudioRoute route) = 0;
288  virtual int changeAudioRouting(AudioRoute route) = 0;
300  virtual int getCurrentRouting(AudioRoute& route) = 0;
301 #endif // __ANDROID__ || TARGET_OS_IPHONE
302 
303 #if defined(_WIN32) || (TARGET_OS_MAC && !TARGET_OS_IPHONE)
304 
314  virtual int getNumberOfPlayoutDevices() = 0;
315 
326  virtual int getNumberOfRecordingDevices() = 0;
337  virtual AudioDeviceInfo getPlayoutDeviceInfo(int index) = 0;
348  virtual AudioDeviceInfo getRecordingDeviceInfo(int index) = 0;
360  virtual int setPlayoutDevice(int index) = 0;
372  virtual int setRecordingDevice(int index) = 0;
373 #endif // _WIN32 || (TARGET_OS_MAC && !TARGET_OS_IPHONE)
374 
375 #if defined(_WIN32)
376 
387  virtual int setApplicationVolume(unsigned int volume) = 0;
399  virtual int getApplicationVolume(unsigned int& volume) = 0;
413  virtual int setApplicationMuteState(bool mute) = 0;
425  virtual int getApplicationMuteState(bool& mute) = 0;
426 #endif // _WIN32
427 
439  virtual int registerObserver(IAudioDeviceManagerObserver* observer, void(*safeDeleter)(IAudioDeviceManagerObserver*) = NULL) = 0;
448 
449 protected:
451 };
452 
453 } //namespace rtc
454 } // namespace agora
agora::rtc::INGAudioDeviceManager::setMicrophoneVolume
virtual int setMicrophoneVolume(unsigned int volume)=0
agora::rtc::INGAudioDeviceManager::setSpeakerMute
virtual int setSpeakerMute(bool mute)=0
agora::rtc::IAudioDeviceManagerObserver::onAudioDeviceStateChanged
virtual void onAudioDeviceStateChanged(const char *deviceId, int deviceType, int deviceState)=0
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::AudioParameters
Definition: AgoraMediaBase.h:88
agora::rtc::IAudioDeviceManagerObserver::onDeviceStateChanged
virtual void onDeviceStateChanged()=0
agora::rtc::IAudioDeviceManagerObserver::onVolumeIndication
virtual void onVolumeIndication(int volume)=0
agora::rtc::INGAudioDeviceManager::getRecordAudioParameters
virtual int getRecordAudioParameters(AudioParameters *params) const =0
agora::rtc::IRecordingDeviceSource::startRecording
virtual int startRecording()=0
agora::rtc::INGAudioDeviceManager::getMicrophoneMute
virtual int getMicrophoneMute(bool &mute)=0
agora::rtc::IRecordingDeviceSource::registerAudioFrameObserver
virtual int registerAudioFrameObserver(media::base::IAudioFrameObserver *observer)=0
agora::rtc::INGAudioDeviceManager::getSpeakerVolume
virtual int getSpeakerVolume(unsigned int &volume)=0
agora::rtc::IRecordingDeviceSource
Definition: NGIAgoraAudioDeviceManager.h:106
agora::rtc::IRecordingDeviceSource::initRecording
virtual int initRecording()=0
agora::rtc::IRecordingDeviceSource::unregisterAudioFrameObserver
virtual int unregisterAudioFrameObserver(media::base::IAudioFrameObserver *observer)=0
agora::rtc::INGAudioDeviceManager::unregisterObserver
virtual int unregisterObserver(IAudioDeviceManagerObserver *observer)=0
agora::rtc::INGAudioDeviceManager::setMicrophoneMute
virtual int setMicrophoneMute(bool mute)=0
agora::rtc::INGAudioDeviceManager::getPlayoutAudioParameters
virtual int getPlayoutAudioParameters(AudioParameters *params) const =0
agora::rtc::INGAudioDeviceManager::setSpeakerVolume
virtual int setSpeakerVolume(unsigned int volume)=0
agora::rtc::INGAudioDeviceManager::getSpeakerMute
virtual int getSpeakerMute(bool &mute)=0
agora::rtc::INGAudioDeviceManager::registerObserver
virtual int registerObserver(IAudioDeviceManagerObserver *observer, void(*safeDeleter)(IAudioDeviceManagerObserver *)=NULL)=0
agora::rtc::INGAudioDeviceManager
Definition: NGIAgoraAudioDeviceManager.h:161
agora::rtc::IAudioDeviceManagerObserver
Definition: NGIAgoraAudioDeviceManager.h:69
agora::media::base::IAudioFrameObserver
Definition: AgoraMediaBase.h:395
agora::RefCountInterface
Definition: AgoraRefPtr.h:31
agora::rtc::INGAudioDeviceManager::getMicrophoneVolume
virtual int getMicrophoneVolume(unsigned int &volume)=0
agora::rtc::INGAudioDeviceManager::createRecordingDeviceSource
virtual agora_refptr< IRecordingDeviceSource > createRecordingDeviceSource(char deviceId[kAdmMaxDeviceNameSize])=0
agora::rtc::IAudioDeviceManagerObserver::onRoutingChanged
virtual void onRoutingChanged(AudioRoute route)=0
agora::rtc::IRecordingDeviceSource::stopRecording
virtual int stopRecording()=0