BufferWaveOut.h
上传用户:goak128
上传日期:2013-07-17
资源大小:155k
文件大小:1k
- #include "WaveOut.h"
- #ifndef _BUFFERWAVEOUT_H_
- #define _BUFFERWAVEOUT_H_
- //////////////////////////////////////////////////////////////////////////
- // class CBufferWaveOut
- //
- // 功能: 实现内存中的裸音频数据的播放
- // 创建人: 陈文凯 (chwkai@gmail.com)
- // 创建日期:2005年5月19日
- // 修改人:
- // 修改日期:
- // 版本
- class CBufferWaveOut: public CWaveOut
- {
- public:
- CBufferWaveOut(void);
- ~CBufferWaveOut(void);
- protected:
- //////////////////////////////////////////////////////////////////////////
- // 打开输出设备,设置回调方式,并Prepare缓存
- BOOL Init(WAVEFORMATEX fmt, DWORD hWnd);
-
- //////////////////////////////////////////////////////////////////////////
- // 释放所占用资源,重置属性
- void Dispose();
- public:
- void Start(); // 开始播放音频逻数据,发送第一个缓冲块
- void Stop(); // 停止播放,关闭输出设备, Unprepared缓存
- LRESULT OnDone(DWORD dwParam); // 处理WOU_DONE消息
- // 设定播放的缓存区,调用init进行初始化
- BOOL LoadBuffer(
- WAVEHDR* pBuffer /*播放的缓存区指针*/,
- WAVEFORMATEX fmt /*缓存区中音频数据的格式*/,
- DWORD hWnd);
- private:
- WAVEHDR* m_pAllocBuffer; // 载入的缓冲区头指针
- WAVEHDR* m_pPreBuffer; // 刚播放过的缓冲块
- WAVEHDR* m_pNextBuffer; // 待播放的缓冲块
- };
- #endif /*_BUFFERWAVEOUT_H_*/