www.pudn.com > vc-network-communication.rar > AudioRec.cpp
//NetTalk
/*------------------------------------------------------------------------------*\
=============================
模块名称: AidopRec.cpp
=============================
[版权]
2000-2002 115软件工厂 版权所有
\*------------------------------------------------------------------------------*/
#include "WndX.h"
#include "WaveShow.h"
#include "UDPSocket.h"
#include "WaveIn.h"
#include "AudioRec.h"
#include "stdio.h"
/*------------------------------------------------------------------------------*/
CAudioRec::CAudioRec()
{
}
/*------------------------------------------------------------------------------*/
CAudioRec::~CAudioRec()
{
Destroy();
}
/*------------------------------------------------------------------------------*/
//开始录音
BOOL CAudioRec::Start()
{
BOOL bRet=FALSE;
if(!m_hIn)
goto RET;
if(!AllocBuffer())
goto RET;
m_mmr=waveInStart(m_hIn);
if(m_mmr)
goto RET;
bRet=TRUE;
RET:
return bRet;
}
/*------------------------------------------------------------------------------*/
//停止录音
BOOL CAudioRec::Stop()
{
BOOL bRet=FALSE;
if(!m_hIn)
goto RET;
m_mmr=waveInReset(m_hIn);
if(m_mmr)
goto RET;
if(!FreeBuffer())
goto RET;
bRet=TRUE;
RET:
return TRUE;
}
/*------------------------------------------------------------------------------*/
//为录音分配一组内存
BOOL CAudioRec::AllocBuffer()
{
BOOL bRet=FALSE;
UINT i;
m_pHdr=new WAVEHDR[NUM_BUF];
//为了使录音连续,采用多个缓冲区
for(i=0;i