audioplay.cpp
来自「一个实时音频或视频通讯程序」· C++ 代码 · 共 85 行
CPP
85 行
//NetTalk
/*------------------------------------------------------------------------------*\
=============================
模块名称: AudioPlay.cpp
=============================
[版权]
2000-2001 115软件工厂 版权所有
\*------------------------------------------------------------------------------*/
#include "WndX.h"
#include <MMREG.H>
#include "WaveOut.h"
#include "AudioPlay.h"
CAudioPlay::CAudioPlay()
{
}
//Alloc new buf,and delete it when done
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 + =
减小字号Ctrl + -
显示快捷键?