?? waveout.h
字號:
/*------------------------------------------------------------------------------*\
[模塊名稱]
CWaveOut
[文件名稱]
CWaveOut.h
[相關文件]
CWaveOut.cpp
[目的]
方便音頻播放
[描述]
封裝 waveout api
只使用了 pcm 方式
[注意]
PLAY_DELAY 10 //播放時候的延遲,大于它,說明有PLAY_DELAY個包沒有播放完成,后面的包不應再播放
[依賴性]
Winmm.lib
[版權]
2002.12 hb 版權所有
[修改記錄]
版本: 1.01.01
日期: 02-12-16 ~ 02-12-17
作者: hb
Mial: sendh@21cn.com
備注:
\*------------------------------------------------------------------------------*/
#ifndef _WAVEOUT_H_
#define _WAVEOUT_H_
#define WOSA_POOR 8000
#define WOSA_LOW 11025
#define WOSA_NORMAL 22050
#define WOSA_HIGH 44100
#define PLAY_DELAY 10
#include <mmsystem.h>
#include <afxmt.h>
class CWaveOut
{
public:
static DWORD WINAPI AudioOutThreadProc(LPVOID lpParameter);
public:
BOOL SetFormatByFile(CString file);
BOOL Play(char* buf,UINT uSize);
BOOL StartPlay();
BOOL StopPlay();
inline int GetBufferNum();
inline void BufferSub();
inline void BufferAdd();
inline DWORD GetInstance();
inline WORD GetBit();
inline DWORD GetSample();
inline WORD GetChannel();
inline void SetBit(WORD wBit);
inline void SetSample(DWORD dwSample);
inline void SetChannel(WORD wChannel);
inline MMRESULT GetLastMMError();
CString GetLastErrorString();
CWaveOut();
virtual ~CWaveOut();
protected:
BOOL OpenDev();
BOOL CloseDev();
BOOL StopThread();
BOOL StartThread();
protected:
static DWORD s_dwInstance;
protected:
WORD m_wChannel;
DWORD m_dwSample;
WORD m_wBit;
protected:
MMRESULT m_mmr;
HWAVEOUT m_hOut;
HANDLE m_hAudioOut;
DWORD m_dwAudioOutId;
int m_iBufferNum;
CCriticalSection m_csLock;
BOOL m_bThreadStart;
BOOL m_bDevOpen;
friend DWORD WINAPI AudioOutThreadProc(LPVOID lpParameter);
};
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -