cn.tee3.avd_SDK-C++  2.1.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 
415  protected:
416  virtual ~IMAudio() {}
417  };
418 
419  } // namespace avd
420 } // namespace tee3
421 #endif//RT_Audio_H_
DeviceStatus
设备状态.
Definition: combase.h:128
语音激励信息结构.
Definition: common.h:332
String UserId
用户号类型,唯一标识房间内一个用户,长度不大于Max_UserId定义;由应用层定义传递给AVD SDK,要求保证房间...
Definition: common.h:13
std::vector< Microphone > MicrophonesType
麦克风集合类型.
Definition: common.h:138
int Result
返回值类型
Definition: combase.h:9
String DeviceId
设备号类型,唯一标识房间内一个设备,长度不大于Max_DeviceId定义;定义如下:userId+"_"+md5[os.getdeviceid() or os.getsystemid()]
Definition: common.h:12
#define RT_API_EXPORT
Definition: defines.h:186
扬声器信息结构.
Definition: common.h:126
房间模块接口类
Definition: room.h:349
unsigned int uint32
Definition: defines.h:391
virtual ~IListener()
Definition: maudio.h:64
std::string String
tee3定义的String类型
Definition: common.h:10
unsigned long long uint64
Definition: defines.h:380
virtual ~IAudioRender()
Definition: maudio.h:213
房间中音频模块接口.
Definition: maudio.h:221
std::vector< Speaker > SpeakersType
扬声器集合类型.
Definition: common.h:130
virtual ~IListener()
Definition: maudio.h:280
音频设备管理接口.
Definition: maudio.h:16
virtual ~IMAudio()
Definition: maudio.h:416
virtual ~IAudioDevice()
Definition: maudio.h:192
房间中音频混音数据回调接口.
Definition: maudio.h:198
房间接口类
Definition: room.h:17
音频设备管理回调接口.
Definition: maudio.h:23
FileFormats
Definition: combase.h:225
麦克风信息结构.
Definition: common.h:134
unsigned char uint8
Definition: defines.h:395
virtual void onUnsubscribeResult(Result result, const UserId &fromId)
本用户取消订阅音频异步返回
Definition: maudio.h:278
virtual void onSubscribeResult(Result result, const UserId &fromId)
异步返回
Definition: maudio.h:270
Definition: audiocapture.h:5
房间中音频模块回调接口.
Definition: maudio.h:228