2012-01-13 97 views
0

我需要播放多个在不同时间开始的波形文件(并非全部在一起)。我试图用Directsound播放这些文件,但是出现了一个问题。我有以下代码:使用Directsound播放Wav

var dev = new Device();  //This line creates the problem 
dev.SetCooperativeLevel(this, CooperativeLevel.Normal); 
MemoryStream ms = new MemoryStream(Sample1); 
soundBuffer = new Microsoft.DirectX.DirectSound.Buffer(ms, dev); 
SecondaryBuffer sound = new SecondaryBuffer(ms,dev); 
sound.Play(); 

问题是,当我在第一行键入(VAR dev的=新的设备();),并编译发生错误程序(ConsoleApplication1遇到了问题,需要关闭)。即使删除除第一行之外的所有代码,也会发生这种情况。控制台错误如下所示:“混合模式程序集针对运行时的v1.1.4322版本构建,无需在没有附加配置信息的情况下在4.0运行时加载”。

如果这个问题不能解决,是否有另一种方式来播放多个声音。声音必须有最小的延迟,并且必须立即播放,不得有任何延迟。

回答

0

您需要修改应用程序的配置包括:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0"/> 
    </startup> 
</configuration> 

应该使你可以使用旧的.NET的DLL。

+0

感谢您的快速回复!我应该在哪里编辑应用程序配置? – Jakpot 2012-01-13 21:06:36

+0

10x很多工作:) – Jakpot 2012-01-13 21:15:48