关于音频设备

jefffrank 2004-01-01 11:37:46
比如说 我现在一台机器上有两个声卡 如何把默认得音频输入输出声卡换成另外一个声卡
...全文
65 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yintongshun 2004-01-18
  • 打赏
  • 举报
回复
上面的是枚举,跟指定没什么关系的,DirectSound很容易的,游戏网站上例子很多,DirectX SDK 中页有例子的
zhangcrony 2004-01-18
  • 打赏
  • 举报
回复
枚举可以使用的声音设备

  一般的情况下,可能并不需要枚举可以使用的声音设备,使用缺省设备不会带来什么麻烦(相信用户-上帝:P的设置),但是如果你希望将程序做得更“面对对象”一些,给用户更多更好的选择(很多3D GAME都可以让用户来选择显卡,道理大同小异),那你就需要使用到枚举可供使用的声音设备了。
  枚举可供使用的声音设备首先要写一回调函数,在程序每找到一可供使用的声音设备时调用,在那个函数里你可以做任何事,并且它可以拥有任何的合法的名字,但是你必须作为DSEnumCallback声明它,回调函数必须返回一BOOL,TRUE则继续列表,FALSE就退出枚举过程了。
  和显示设备的枚举差不多,下面就是载自Dsenum.c的几段代码。由于本人认为使用得不多就没怎么研究(其实也是很简单的:P),所以就不再累赘,后面还有更令人兴奋的东西呢!

代码如下:

//回调函数
BOOL CALLBACK DSEnumProc(LPGUID lpGUID,LPCTSTR lpszDesc,LPCTSTR lpszDrvName,LPVOID lpContext )
{
HWND hCombo = *(HWND *)lpContext;
LPGUID lpTemp = NULL;

if ( lpGUID != NULL )
{
if (( lpTemp = malloc( sizeof(GUID))) == NULL )
return( TRUE );

memcpy( lpTemp, lpGUID, sizeof(GUID));
}

ComboBox_AddString( hCombo, lpszDesc );
ComboBox_SetItemData( hCombo,
ComboBox_FindString( hCombo, 0, lpszDesc ), lpTemp );  //编辑者注:此句有误
return( TRUE );
}
yintongshun 2004-01-18
  • 打赏
  • 举报
回复
DirectSound里可以设置用哪个声卡播放的,中国游戏开发者和中国游戏资源网的例子很多的
wanliduxing 2004-01-07
  • 打赏
  • 举报
回复
up
通过软件怎么实现?
我通过写注册表,不好用。尤其是在2000和xp下键值名字也不一定相同。
theone 2004-01-02
  • 打赏
  • 举报
回复
可以查看 mixerSetControlDetails 等系列函数
在MSDN里面有sample code,在索引里面找“mixapp”
NowCan 2004-01-02
  • 打赏
  • 举报
回复
干脆到控制面板里设置一下算了。

2,643

社区成员

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

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