0

異なる時間に開始する複数の wave ファイルを再生する必要があります (すべて同時に再生する必要はありません)。Directsound を使用してファイルを再生しようとしましたが、問題が発生しました。次のコードがあります。

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 = new Device();) に入力し、プログラムをコンパイルするとエラーが発生することです (ConsoleApplication1 で問題が発生したため、閉じる必要があります)。これは、最初の行を除くすべてのコードを削除しても発生します。コンソール エラーは次のとおりです。「混合モード アセンブリはランタイムのバージョン v1.1.4322 に対してビルドされており、追加の構成情報がないと 4.0 ランタイムに読み込むことができません」。

この問題が解決できない場合、複数のサウンドを再生する別の方法はありますか? サウンドのレイテンシは最小限に抑え、遅延なく即座に再生する必要があります。

4

1 に答える 1

0

アプリケーション構成を編集して、以下を含める必要があります。

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

これにより、古い .NET dll を使用できるようになります。

于 2012-01-13T20:43:46.783 に答える