資源簡介
VC 可支持聲卡輸入輸出聲音同時錄音的程序 找了好久 可以選擇聲道 可以設(shè)定混音錄音還是只錄制聲卡輸入聲音。 可支持wav和mp3兩種方式保存 非常好的程序

代碼片段和文件信息
//?AudioPlayRec.cpp?:?implementation?file
//?Download?by?http://www.codefans.net
#include?“stdafx.h“
#include?“hwaudiorec.h“
#include?“AudioPlayRec.h“
#include?
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
BOOL?CALLBACK?InputLineProc?(?UINT?uLineIndex?MIXERLINE*?pLineInfo?DWORD?dwUserValue?)
{
CAudioPlayRec?*pAudioPlayRec?=?reinterpret_cast(dwUserValue);
ASSERT?(?pAudioPlayRec?);
CString?csShortName?=?pLineInfo->szShortName;
csShortName.MakeLower?();
if?(?csShortName.Find?(?“microphone“?)?>=?0?||?pLineInfo->dwComponentType?==?MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE?)
{
pAudioPlayRec->m_uLineIndex_Microphone?=?pLineInfo->dwSource;
}
else?if?(?csShortName.Find?(?“l(fā)ine?in“?)?>=?0?||?pLineInfo->dwComponentType?==?MIXERLINE_COMPONENTTYPE_SRC_LINE?)
{
pAudioPlayRec->m_uLineIndex_LineIn?=?pLineInfo->dwSource;
}
TRACE?(?“csShortName?=?%s?dwComponentType?=?%d\n“?csShortName?pLineInfo->dwComponentType?);
return?TRUE;
}
/////////////////////////////////////////////////////////////////////////////
//?CAudioPlayRec
CAudioPlayRec::CAudioPlayRec?()
:?m_eStatus?(?ENUM_STATUS_INVALID?)
?m_hRecord?(?NULL?)
?m_hPlay?(?NULL?)
?m_dwQueuBufferSize?(?1024?)
?m_nDataQueueNum?(?0?)
?m_bRecording?(?FALSE?)
?m_eRecChannel?(?ENUM_REC_CHANNEL_MONO?)
?m_szAryInData?(?NULL?)
?m_szLeftInData?(?NULL?)
?m_szRightInData?(?NULL?)
?m_pAryHdr?(?NULL?)
?m_bAlwaysDrawTowChannel?(?FALSE?)
?m_uLineIndex_Microphone?(?0?)
?m_uLineIndex_LineIn?(?0?)
{
memset?(?&m_Format?0?sizeof(WAVEFORMATEX)?);
ZeroMemory(&m_MMCKInfoParentsizeof(m_MMCKInfoParent));
ZeroMemory(&m_MMCKInfoChildsizeof(m_MMCKInfoChild));
memset?(?m_hWaveFile?0?sizeof(m_hWaveFile)?);
ResetMp3EncodeVar?();
m_clrBK?=?RGB?(?000?);
SetBkColor?(?m_clrBK?);
}
CAudioPlayRec::~CAudioPlayRec()
{
StopAndFreeAll?();
if?(?m_brsBkGnd.GetSafeHandle()?)
{
m_brsBkGnd.DeleteTempMap();
m_brsBkGnd.Deleteobject();
}
if?(?m_PenB.GetSafeHandle()?)
m_PenB.Deleteobject();
if?(?m_PenG.GetSafeHandle()?)
m_PenG.Deleteobject();
if?(?m_PenPartLine.GetSafeHandle()?)
m_PenPartLine.Deleteobject();
if?(?m_fntChannelText.GetSafeHandle()?)
m_fntChannelText.Deleteobject();
if?(?m_fntDeviceNameText.GetSafeHandle()?)
m_fntDeviceNameText.Deleteobject();
}
BEGIN_MESSAGE_MAP(CAudioPlayRec?CWnd)
//{{AFX_MSG_MAP(CAudioPlayRec)
ON_WM_ERASEBKGND()
ON_WM_SETCURSOR()
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//?CAudioPlayRec?message?handlers
void?CAudioPlayRec::SetWaveFormat?(?ENUM_REC_CHANNEL?eRecChannel?DWORD?nSamplesPerSec?WORD?wBitsPerSample?)
{
m_eRecChannel?=?eRecChannel;
memset?(?&m_Format?0?sizeof(WAVEFORMATEX)?);
m_Format.cbSize =?0;
m_Format.wFormatTag =?WAVE_FORMAT_PCM;
m_Format.wBitsPerSample =?wBitsPe
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
-----------?---------??----------?-----??----
???????????????369615????????????????????23
評論
共有 條評論