www.pudn.com > hmmPlatform.rar > BufferWaveOut.h


#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_*/