在创建SecondaryBuffer之前要先枚举机器上可用的声卡设备,然后创建.
[C#]
private Guid DeviceGuid = Guid.Empty;DeviceGuid = devices[0].DriverGuid; //在这选择声卡设备devices[]
ApplicationDevice = new Device(DeviceGuid);
ApplicationDevice.SetCooperativeLevel(this, CooperativeLevel.Priority);
.......具体可以看看
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_m/directx/sound/playingsounds/directsound_devices.asp
或者SDK中的例子

解决方案 »

  1.   

    不时这个audio,而是Microsoft.DirectX.AudioVideoPlayback中的audio.
      

  2.   

    为什么要用AudioVideoPlayback呢,这就是DirectShow的简化版,功能很少的。还不如就用DirectShow,不过SDK中没有C#版的例子,可以看看这个
    http://www.yestar2000.com/TechCenter/1410/TC_16109.htm
    http://www.codeproject.com/cs/media/directshownet.asp
      

  3.   

    felixwoo(Felix) 
       本身对directx这块不怎么熟悉,我先看看directshow,谢。
      

  4.   

    felixwoo(Felix) 
        看了看没有必要用directshow,我也用不到那么多功能,只要现在能从第2块声卡输出就行了。