请问如何实现一个程序中实现对双声卡的同时采集?谢谢!

taianmonkey 2004-11-11 03:07:21
请问如何实现一个程序中实现对双声卡的同时采集?
...全文
206 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnlyk 2004-11-29
  • 打赏
  • 举报
回复
楼主在贴子中写道:
--------------------------------------------------------------------------
回复人: taianmonkey() ( ) 信誉:131 2004-11-11 17:07:21 得分: 0
参与者,人人有分!
--------------------------------------------------------------------------
什么玩意吗?楼主的信誉值都有131,却这样,请版主给予其以教训.


cnlyk 2004-11-20
  • 打赏
  • 举报
回复
楼主竟然一分都不给,这是什么意思呢!
taianmonkey 2004-11-15
  • 打赏
  • 举报
回复
主要实现代码如下:


HRESULT hr;
ZeroMemory(g_dvInfo,sizeof(g_dvInfo));//一个用来存放设备guid的数组
if( FAILED( hr = DirectSoundCaptureEnumerate( (LPDSENUMCALLBACK)DSoundEnumCallback,NULL) ) )
return;


BOOL CALLBACK DSoundEnumCallback(GUID *pGUID, LPSTR strDesc, LPSTR strDrvName, VOID *pContext)
{
static GUID AudioDriverGUIDs[20];
static DWORD dwAudioDriverIndex = 0;

GUID* pTemp = NULL;
TCHAR pDiscrip = NULL;

if( pGUID )
{
if( dwAudioDriverIndex >= MAX_DEVICE_NUM +1 )
return true;

memcpy((g_dvInfo[dwAudioDriverIndex].tcFriendName),strDesc,MAX_LEN);

pTemp = &(g_dvInfo[dwAudioDriverIndex++].guid);

memcpy( pTemp, pGUID, sizeof(GUID) );
}
return true;
}

taianmonkey 2004-11-15
  • 打赏
  • 举报
回复
问题解决了!
cnlyk 2004-11-14
  • 打赏
  • 举报
回复
这个跟驱动没关系,只是跟音频设备有关,首先枚举系统中的所有音频设备,得到声卡的个数,在调用WaveInOpen函数时,首先选取设备ID,获取设备句柄,有专门的以WAVE开头的API,选取后直接录制即可,和单个时没有太大区别。

可查看:基于API的录音机程序
http://www.vckbase.com/document/viewdoc/?id=904
zhjie374 2004-11-14
  • 打赏
  • 举报
回复
这个,是不是要涉及到驱动?
oyljerry 2004-11-14
  • 打赏
  • 举报
回复
先枚举系统的音频设备,得到设备句柄,操作相应的声卡
AthlonxpX86 2004-11-13
  • 打赏
  • 举报
回复
可以,你看看winamp, 虽然控制面板设置中只能打开一块声卡,但是winamp可以通过设置打开另外一块声卡的驱动来播放音乐,

我想方法肯定是先枚举出每个声卡,然后用waveInOpen打开,还有最好不要用WAVE_MAPPER,直接使用声卡驱动比如我的是realtek AC97 Audio
taianmonkey 2004-11-11
  • 打赏
  • 举报
回复
参与者,人人有分!
taianmonkey 2004-11-11
  • 打赏
  • 举报
回复
第二个值可以设置成WAVE_MAPPER,然后使用不同的采集格式来自动区别!
但是我是一个使用waveInOpen,一个使用dsound来录音!
应该怎么处理?
taianmonkey 2004-11-11
  • 打赏
  • 举报
回复
DentistryDoctor(雅克医生<改行做程序员了>) 说的对!
但是我是一个使用waveInOpen,一个使用dsound来录音!
应该怎么处理?
DentistryDoctor 2004-11-11
  • 打赏
  • 举报
回复
还有,你还可以使用DirectShow!
DentistryDoctor 2004-11-11
  • 打赏
  • 举报
回复
waveInOpen的第二个参数用于区分不同的采集设备。
老夏Max 2004-11-11
  • 打赏
  • 举报
回复
呵呵,可能自己写一个程序全权控制另外一个声卡,还有可能!
快乐鹦鹉 2004-11-11
  • 打赏
  • 举报
回复
猴子问点问题连蹭分的机会都没有。郁闷也
taianmonkey 2004-11-11
  • 打赏
  • 举报
回复
肯定是可以的!
老夏Max 2004-11-11
  • 打赏
  • 举报
回复
可能不行把,呵呵,控制面板中选择的都只能选择一个当前设备。

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧