📄 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 + -