资源简介
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
相关资源
- Windows异步套接字网络编程
- VC 获得文件属性 获取文件的创建时
- 基于MVC模式的会员管理系统
- silicon lab公司的收音IC SI47XX全套开发工
- 读者写者问题(读者优先,写者优先
- MFC程序-碰撞的小球
- vc 柱形图 CBarChart
- 用vc 写的导线测量,针对刚学测绘的
- 用VC 编写的仿QQ聊天室程序源代码
- 栅栏填充算法源码(VC)
- 简单的房屋租赁系统
- .net网站服装销售系统(MVC)
-
ob
jectARX给Auto CAD加工具条 - blowfish的vc2008工程.rar
- 画图程序MFC/VC/VC CRectTracker 串行化
- capon波束形成算法-VC实现
- 读取串口数据并画实时曲线的VC 程序
- VC 游戏编程—附源代码
- IpHlpApi.h&IpHlpApi.lib
- vc 6.0开发的流程图编辑器
- VC 天空盒(skyBox)实现(附源代码)
- c MFC 画多边形
- keil vcom windows 7 64bit 驱动
- vc URL编解码类
- vc编写中国象棋详细源码注释并附有视
- VC 围棋源代码
- 用VC 编写的基于SNMP的路由器拓扑程序
- vc利用MFC底层开发的二维GIS管理软件,
- 兰勃托地图投影VC源码
- 清华大学郑莉C 语言程序设计课件
评论
共有 条评论