6

Console.Beep() を低いミリ秒レートで使用してみましたが、2 つの周波数が「同時に」再生されますが、ビープ音の間の一時停止がそれを台無しにします。私はそれを調査しようとしましたが、私が探しているDirectSoundを除いて、何も見つけられず、どこから始めればよいかわかりません. 必要なのは、1 つのスピーカーから 2 つ以上の周波数を同時に再生するプログラムを C# で作成することだけです。

ありがとう。

4

5 に答える 5

2

優れた.NETバインディングを備えたDirectSoundをご覧になることをお勧めします。2つ(またはそれ以上)Bufferのオブジェクトを使用し、それらのメソッドを呼び出してPlayそれらを同時に再生できます。

このチュートリアルでは、サウンドをその場で合成することにより、C#で単純なドラムマシンを実装する方法を示します。それが役に立てば幸い。

于 2011-01-16T00:18:18.097 に答える
0

Console.Beep()は同期しており、サウンドが終了するまで戻りません。

Simple DirectMedia Layer(SDL.net)をお試しください。

于 2011-01-16T00:21:15.667 に答える
0

周波数が事前にわかっている場合は、それらを合成して wave ファイル (audacity または別の同様のプログラム) にし、SoundPlayerクラスを使用してその wave ファイルを再生できます。

string path = /*path goes here*/;
player = new SoundPlayer(path);
player.Play();

実行時にそれらを合成する必要がある場合は、手動でファイルを作成する必要があります。これは、ウェーブ ファイルを作成するために参照できる SOの質問です。

于 2011-01-16T04:24:40.887 に答える
0

MIDIを使って調べてみてください。この例から始める必要があります。複数の人が強く推奨する MIDI ライブラリを使用しています。

于 2011-01-16T00:12:55.217 に答える
0

以下は、WAV または MIDI ファイルを再生できる非常に単純なサンプル コードです。このようにして、一度コードを記述してから、効果音を変更したい場合は wav または mid ファイルを維持するだけで済みます。

任意のサウンド ファイルを再生する - C# (マネージド コードに DirectX 9.0 を使用)

于 2011-01-16T00:52:33.427 に答える