?? audioplay.cpp
字號:
//NetTalk
/*------------------------------------------------------------------------------*\
=============================
模塊名稱: AudioPlay.cpp
=============================
[版權]
2000-2002 115軟件工廠 版權所有
\*------------------------------------------------------------------------------*/
#include "WndX.h"
#include <MMREG.H>
#include "WaveOut.h"
#include "AudioPlay.h"
/*------------------------------------------------------------------------------*/
CAudioPlay::CAudioPlay()
{
}
/*------------------------------------------------------------------------------*/
//播放一塊數據
BOOL CAudioPlay::Play(char *buf, UINT uSize)
{
BOOL bRet=FALSE;
char* p;
LPWAVEHDR pwh=new WAVEHDR;
if(!pwh)
goto RET;
p=new char[uSize];//重新分配一塊內存(在播放結束后刪除)
if(!p)
goto RET;
CopyMemory(p,buf,uSize);
ZeroMemory(pwh,sizeof(WAVEHDR));
pwh->dwBufferLength=uSize;
pwh->lpData=p;
//
m_mmr=waveOutPrepareHeader(m_hOut,pwh,sizeof(WAVEHDR));
if(m_mmr)
goto RET;
m_mmr=waveOutWrite(m_hOut,pwh,sizeof(WAVEHDR));
if(m_mmr)
goto RET;
bRet=TRUE;
RET:
return bRet;
}
/*------------------------------------------------------------------------------*/
//打開音頻輸出設備
BOOL CAudioPlay::Create(WAVEFORMATEX *pwf,DWORD dwCallBack,DWORD dwInst,DWORD fdwOpen )
{
BOOL bRet=FALSE;
if(m_hOut)
{
bRet=TRUE;
goto RET;
}
//打開設備
if(!OpenDev(pwf,dwCallBack,dwInst,fdwOpen))
goto RET;
bRet=TRUE;
RET:
return bRet;
}
/*------------------------------------------------------------------------------*/
CAudioPlay::~CAudioPlay()
{
Destroy();
}
/*------------------------------------------------------------------------------*/
BOOL CAudioPlay::Destroy()
{
BOOL bRet=FALSE;
if(!CloseDev())
goto RET;
bRet=TRUE;
RET:
return bRet;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -