比如说我有两个声卡 我要用不是默认的那个声卡来放一个wave文件

解决方案 »

  1.   

    建议你用DirectSDK,里面有个DirectSound,专门作关于音频的
      

  2.   

    DirectSound中可以指定用哪个声卡播放的
    这有个VB的例子:http://developer.ccidnet.com/pub/disp/Article?columnID=322&articleID=31045&pageNO=1在中国游戏开发者和中国游戏资源网上有很多例子的
      

  3.   

    我来一个VC++的例子吧:
    这个好象刚有人问过了的:
    枚举可以使用的声音设备  一般的情况下,可能并不需要枚举可以使用的声音设备,使用缺省设备不会带来什么麻烦(相信用户-上帝: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 );
    }
      

  4.   

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