比如说 我现在一台机器上有两个声卡 如何把默认得音频输入输出声卡换成另外一个声卡

解决方案 »

  1.   

    可以查看 mixerSetControlDetails 等系列函数
    在MSDN里面有sample code,在索引里面找“mixapp”
      

  2.   

    up
    通过软件怎么实现?
    我通过写注册表,不好用。尤其是在2000和xp下键值名字也不一定相同。
      

  3.   

    DirectSound里可以设置用哪个声卡播放的,中国游戏开发者和中国游戏资源网的例子很多的
      

  4.   

    枚举可以使用的声音设备  一般的情况下,可能并不需要枚举可以使用的声音设备,使用缺省设备不会带来什么麻烦(相信用户-上帝: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 );
    }
      

  5.   

    上面的是枚举,跟指定没什么关系的,DirectSound很容易的,游戏网站上例子很多,DirectX SDK 中页有例子的