• 大小: 147KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-22
  • 语言: 其他
  • 标签: VC  录音  声卡  

资源简介

VC 可支持声卡输入输出声音同时录音的程序 找了好久 可以选择声道 可以设定混音录音还是只录制声卡输入声音。 可支持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 ( “line 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


评论

共有 条评论