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