私はいくつかのC#で遊んでいて、ピアノアプリケーションをコーディングしていました。トラバースリストC#
ユーザーがピアノノートをクリックするたびに、サウンド(.wav)の場所をリストに保存しています...次は、button1_MouseDownメソッドのコードです。
if (e.Button == MouseButtons.Left)
{
SoundPlayer sp = new SoundPlayer();
string musName = Convert.ToString(mk.pitch);
string loc = @"D:\OneDrive\Year 2 Semester 1\OOP\Notes-Sound files\Notes-Sound files\mapped\" + musName + ".wav";
sp.SoundLocation = loc;
sp.Play();
music.Add(loc);
}
ここで、クリックしたすべてのキーを一度に再生するようにループをトラバースする必要があります。私は何とか、デバッグするとき、押された再生ボタンがクリックされるたびに、最後のノートがplayed.Howeverであることを、
int k = 0;
for (k = 1; k < music.Count; k++)
{
SoundPlayer sp = new SoundPlayer();
sp.SoundLocation = music[k];
sp.Play();
}
ものがある(ユーザーが再生ボタンをクリックしたときに)次のように私はすべて、これをやっていますノートが再生されます。何か案は?
こんにちは、私はあなたがそれぞれのノートが、私はまた、すべて1回の反復内に新しいプレーヤーをintializeするよwon'tの必要性を前提としますが、ループの外で次の1 –
を再生する前に再生されることを待つ必要があると思います。 – HimBromBeere