BufferWaveOut.h
上传用户:goak128
上传日期:2013-07-17
资源大小:155k
文件大小:1k
源码类别:

控制台编程

开发平台:

C/C++

  1. #include "WaveOut.h"
  2. #ifndef _BUFFERWAVEOUT_H_
  3. #define _BUFFERWAVEOUT_H_
  4. //////////////////////////////////////////////////////////////////////////
  5. // class CBufferWaveOut
  6. //
  7. // 功能: 实现内存中的裸音频数据的播放
  8. // 创建人: 陈文凯 (chwkai@gmail.com)
  9. // 创建日期:2005年5月19日
  10. // 修改人:
  11. // 修改日期:
  12. // 版本
  13. class CBufferWaveOut: public CWaveOut
  14. {
  15. public:
  16. CBufferWaveOut(void);
  17. ~CBufferWaveOut(void);
  18. protected:
  19. //////////////////////////////////////////////////////////////////////////
  20. // 打开输出设备,设置回调方式,并Prepare缓存
  21. BOOL Init(WAVEFORMATEX fmt, DWORD hWnd);
  22. //////////////////////////////////////////////////////////////////////////
  23. // 释放所占用资源,重置属性
  24. void Dispose();
  25. public:
  26. void Start(); // 开始播放音频逻数据,发送第一个缓冲块
  27. void Stop(); // 停止播放,关闭输出设备, Unprepared缓存
  28. LRESULT OnDone(DWORD dwParam); // 处理WOU_DONE消息
  29. // 设定播放的缓存区,调用init进行初始化
  30. BOOL LoadBuffer(
  31. WAVEHDR* pBuffer /*播放的缓存区指针*/,
  32. WAVEFORMATEX fmt /*缓存区中音频数据的格式*/,
  33. DWORD hWnd);
  34. private:
  35. WAVEHDR* m_pAllocBuffer; // 载入的缓冲区头指针
  36. WAVEHDR* m_pPreBuffer; // 刚播放过的缓冲块
  37. WAVEHDR* m_pNextBuffer; // 待播放的缓冲块
  38. };
  39. #endif /*_BUFFERWAVEOUT_H_*/