C++SDK  1.0.0
maudio.h
浏览该文件的文档.
1 #ifndef RT_Audio_H_
2 #define RT_Audio_H_
3 
4 #include "common.h"
5 #include "room.h"
6 
7 namespace tee3 {
8  namespace avd {
9  class IRoom;
10 
17  public:
23  class IListener {
24  public:
26 
31  virtual void onMicrophonePlugin(const Microphone& item) = 0;
37  virtual void onMicrophonePlugout(const Microphone& item) = 0;
43  virtual void onSpeakerPlugin(const Speaker& item) = 0;
49  virtual void onSpeakerPlugout(const Speaker& item) = 0;
50 
56  virtual void onMicrophoneVolumeChanged(uint32 volume) = 0;
62  virtual void onSpeakerVolumeChanged(uint32 volume) = 0;
63  protected:
64  virtual ~IListener() {}
65  };
66  public:
73  virtual Result setListener(IListener* listener) = 0;
75 
80  virtual Result getMicrophones(MicrophonesType& items) const = 0;
86  virtual const Microphone& getMicrophone(const DeviceId& id) const = 0;
90  virtual const Microphone& getRecordingMicrophone() const = 0;
96  virtual Result setRecordingMicrophone(const DeviceId& id) = 0;
102  virtual Result setRecordingVolume(uint32 volume) = 0;
107  virtual uint32 getRecordingVolume() const = 0;
112  virtual DeviceId getFakeMicrophoneId() const = 0;
114 
119  virtual Result getSpeakers(SpeakersType& items) const = 0;
125  virtual const Speaker& getSpeaker(const DeviceId& id) const = 0;
129  virtual const Speaker& getPlayoutSpeaker() const = 0;
135  virtual Result setPlayoutSpeaker(const DeviceId& id) = 0;
141  virtual Result setPlayoutVolume(uint32 volume) = 0;
146  virtual uint32 getPlayoutVolume() const = 0;
147 
149 
154  virtual Result recordPlayStart() = 0;
159  virtual Result recordPlayStop() = 0;
168  virtual Result playVoice(const String& file, bool loop, FileFormats format) = 0;
173  virtual Result stopVoice() = 0;
174 
179  virtual bool isPlayingVoice() = 0;
184  virtual uint32 getRecordLevel() = 0;
189  virtual uint32 getPlayoutLevel() = 0;
190 
191  protected:
192  virtual ~IAudioDevice() {}
193  };
194 
198  class IAudioRender {
199  public:
204  virtual void onAudioParam(uint32 sampleRate, uint32 channels) = 0;
210  virtual void onAudioData(uint64 timestamp_ns, const uint8 *data, uint32 len) = 0;
211 
212  protected:
213  virtual ~IAudioRender() {}
214  };
215 
221  class RT_API_EXPORT IMAudio : public IModule {
222  public:
228  class IListener {
229  public:
231 
239  virtual void onMicrophoneStatusNotify(MicrophoneStatus status, const UserId& fromUserId) = 0;
246  virtual void onAudioLevelMonitorNotify(const AudioInfo& info) = 0;
247 
249 
254  virtual void onOpenMicrophoneResult(Result result) = 0;
260  virtual void onCloseMicrophoneResult(Result result) = 0;
261 
263 
270  virtual void onSubscribeResult(Result result, const UserId& fromId){}
278  virtual void onUnsubscribeResult(Result result, const UserId& fromId){}
279  protected:
280  virtual ~IListener() {}
281  };
288  static IMAudio* getAudio(IRoom* room);
289  //
296  virtual Result setListener(IListener* listener) = 0;
303  virtual Result openMicrophone() = 0;
310  virtual Result closeMicrophone() = 0;
314  virtual MicrophoneStatus getMicrophoneStatus() const = 0;
315  // no input audio, anyone cann't listen my speak; like pause mic
321  virtual Result muteMicrophone() = 0;
325  virtual Result unmuteMicrophone() = 0;
329  virtual bool ismuteMicrophone() const = 0;
330  // no output audio, cann't listen anyone sound
336  virtual Result muteSpeaker() = 0;
340  virtual Result unmuteSpeaker() = 0;
343  virtual bool ismuteSpeaker() const = 0;
344 
346 
350  virtual MicrophoneStatus getRemoteMicrophoneStatus(const UserId& userId) const = 0;
355  virtual Result remotecmdOpenMicrophone(const UserId& userId) = 0;
360  virtual Result remotecmdCloseMicrophone(const UserId& userId) = 0;
361 
367  virtual IAudioDevice* getAudioDevice() = 0;
368 
372  virtual Result monitorAudioLevel() = 0;
376  virtual Result unmonitorAudioLevel() = 0;
379  virtual bool ismonitorAudioLevel() const = 0;
380 
382  public:
392  virtual Result setMixerDataListener(IAudioRender* listener) = 0;
393  virtual Result setMixerDataListener(IAudioRender* listener, uint32 sampleRate, uint32 channels) = 0;
394 
396 
404  virtual Result subscribe(const UserId& userId) = 0;
413  virtual Result unsubscribe(const UserId& userId) = 0;
414 
420  virtual Result getPubAudioUsers(std::vector<UserId>& items) = 0;
426  virtual Result getSubAudioUsers(std::vector<UserId>& items) = 0;
431  virtual bool isAudioPublished(const UserId& userId) = 0;
436  virtual bool isAudioSubscribed(const UserId& userId) = 0;
437  protected:
438  virtual ~IMAudio() {}
439  };
440 
441  } // namespace avd
442 } // namespace tee3
443 #endif//RT_Audio_H_
virtual ~IMAudio()
Definition: maudio.h:438
Definition: maudio.h:23
Definition: maudio.h:221
DeviceStatus
Definition: combase.h:132
NAMESPACE_TEE3_BEGIN typedef std::string String
Definition: common.h:10
String UserId
Definition: common.h:13
std::vector< Microphone > MicrophonesType
Definition: common.h:139
Definition: common.h:135
Definition: maudio.h:16
int Result
Definition: combase.h:13
Definition: common.h:333
String DeviceId
Definition: common.h:12
Definition: room.h:17
virtual void onUnsubscribeResult(Result result, const UserId &fromId)
Definition: maudio.h:278
Definition: common.h:127
#define RT_API_EXPORT
Definition: defines.h:188
unsigned int uint32
Definition: defines.h:393
Definition: room.h:366
virtual void onSubscribeResult(Result result, const UserId &fromId)
异步返回
Definition: maudio.h:270
unsigned long long uint64
Definition: defines.h:382
Definition: maudio.h:198
std::vector< Speaker > SpeakersType
Definition: common.h:131
virtual ~IAudioRender()
Definition: maudio.h:213
Definition: maudio.h:228
FileFormats
Definition: combase.h:237
unsigned char uint8
Definition: defines.h:397
virtual ~IListener()
Definition: maudio.h:280
virtual void onAudioData(uint64 timestamp_ns, const uint8 *data, uint32 len)=0
virtual ~IListener()
Definition: maudio.h:64
virtual void onAudioParam(uint32 sampleRate, uint32 channels)=0
virtual ~IAudioDevice()
Definition: maudio.h:192
Definition: audiocapture.h:5