RecordThread.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #ifndef _RECORDTHREAD_H_
  2. #define _RECORDTHREAD_H_
  3. #include <mutex>
  4. #include <condition_variable>
  5. #include "AudioData.h"
  6. #include "RingQueue.hpp"
  7. #include "GlobalVariable.h"
  8. #include "BaseRecordThread.h"
  9. #include "AudioRecord.h"
  10. #include "spdlog/spdlog.h"
  11. class AssignSrcDataThread;
  12. /**
  13. * @brief 获取原始音频数据的线程
  14. *
  15. */
  16. class RecordThread : public BaseRecordThread
  17. {
  18. public:
  19. RecordThread(RecordThreadInfo_t& threadInfo);
  20. ~RecordThread() override;
  21. /* 录制功能线程函数 */
  22. void threadTask() override;
  23. /* 设置声卡描述符 */
  24. void setAudioRecordDesc(const std::string& desc);
  25. private:
  26. /* 设置数据,这里用不到 */
  27. bool setData(const AudioSrcData& srcData) override;
  28. /* 初始化数据 */
  29. bool initData() override;
  30. /* 清除数据 */
  31. void clearData() override;
  32. /* 获取AssignSrcDataThread线程 */
  33. AssignSrcDataThread* getAssignSrcDataThread();
  34. private:
  35. AudioRecord m_audioRecord; /* 音频录制类 */
  36. std::string m_audioRecordDesc; /* 声卡描述符 */
  37. char* m_pRecordBuffer = nullptr; /* 录音数据缓存 */
  38. uint32_t m_recordBufferSize = 0; /* 录音数据缓存大小 */
  39. AssignSrcDataThread* m_assignThread = nullptr; /* 分派数据线程指针 */
  40. };
  41. #endif // _RECORDTHREAD_H_