AudioPlayer.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef AUDIOPLAYER_H
  2. #define AUDIOPLAYER_H
  3. #include "ECSDKAudioManager.h"
  4. using namespace ECSDKFrameWork;
  5. #include <mutex>
  6. /*
  7. * 用户实现:声音播放器功能
  8. * start:初始化并启动播放器
  9. * stop:停止并释放播放器
  10. * play:播放手机传输过来的音频数据
  11. * setVolume:设置音量
  12. * 所有接口最好保证线程安全
  13. * */
  14. #include <functional>
  15. typedef std::function<void(bool, int,int,int,int)> FUNCAUDIOSTART;
  16. typedef std::function<void(int, unsigned char*, int)> FUNCAUDIODATA;
  17. class AudioPlayer : public IECAudioPlayer
  18. {
  19. public:
  20. AudioPlayer();
  21. ~AudioPlayer();
  22. void start(ECAudioType type, const ECAudioInfo& info) override;
  23. void stop(ECAudioType type) override;
  24. void play(ECAudioType type, const void* data, uint32_t len) override;
  25. void setVolume(ECAudioType type, uint32_t vol) override;
  26. public:
  27. void registerAudioDataCallback(FUNCAUDIODATA func);
  28. void registerStartAudioCallback(FUNCAUDIOSTART func);
  29. private:
  30. bool mHasInit = false;
  31. std::mutex mMutex;
  32. FUNCAUDIODATA mFuncAudioData;
  33. FUNCAUDIOSTART mFuncAudioStart;
  34. };
  35. #endif //AUDIOPLAYER_H