AudioRecoder.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. //
  2. // Created by carbit on 3/8/20.
  3. //
  4. #ifndef AUDIORECODER_H
  5. #define AUDIORECODER_H
  6. #include "ECSDKAudioManager.h"
  7. #include <mutex>
  8. #include <functional>
  9. typedef std::function<void (bool,int,int,int)> FUNCRECORDSTART;
  10. typedef std::function<void (string&)> FUNCRECORDDATA;
  11. using namespace ECSDKFrameWork;
  12. /*
  13. * 用户实现:声音录音功能
  14. * 此功能使用车机的麦克风录音,并传输给手机。
  15. *
  16. * start:初始化录音设备
  17. * record:上传录音数据, 此接口ECSDKFramewor每间隔50ms调用一次,将从mic设备获取的数据填充到data。
  18. * stop:停止录音设备
  19. * 所有接口最好保证线程安全
  20. *
  21. * */
  22. class AudioRecoder : public IECAudioRecorder
  23. {
  24. public:
  25. AudioRecoder();
  26. virtual ~AudioRecoder();
  27. virtual void start(const ECAudioInfo& info) override;
  28. virtual int32_t record(string& data) override;
  29. virtual void stop() override;
  30. public:
  31. void registerRecStartCallback(FUNCRECORDSTART func);
  32. void setRecData(string& recData);
  33. void registerRecDataCallback(FUNCRECORDDATA func);
  34. private:
  35. bool mHasInit = false;
  36. std::mutex mMutex;
  37. FUNCRECORDSTART mFuncRecordStart;
  38. FUNCRECORDDATA mFuncRecordData;
  39. string mstrRecorder;
  40. };
  41. #endif //AUDIORECODER_H