所以我正在做一个简单的钢琴并尝试遍历我存储音符的集合,但是SoundPlayer并不想在#34;中正确播放它们而没有调试模式"只播放最后一个。然而,当我在那里放置一个断点时,它会播放所有这些
public static List<MusicNote> music = new List<MusicNote>(15);
public static void PlayAll()
{
SoundPlayer sp = new SoundPlayer();
for (int i = 0; i <= music.Count - 1; i++)
{
string text = music[i].pitch.ToString();
sp.SoundLocation = (@"c:\my path here\" + text + ".wav");
sp.Play();
sp.Stop();
}
}
Pitch是链接到文件的简单序号 提前致谢
答案 0 :(得分:0)
我认为使用PlaySync()会更好;而不是Play();
因为那时你不需要Stop()方法。
Here a link to the docu of SoundPlayer
为什么要使用PlaySync?如果您只是在此程序中调用Play方法,程序将在播放声音之前终止。同步表示程序应在声音播放时暂停。
答案 1 :(得分:0)
最好使用PlaySyn
告诉你的节目等到音乐完成
// Create new SoundPlayer in the using statement.
using (SoundPlayer player = new SoundPlayer())
{
for (int i = 0; i <= music.Count - 1; i++)
{
string text = music[i].pitch.ToString();
sp.SoundLocation = (@"c:\my path here\" + text + ".wav");
// Use PlaySync to load and then play the sound.
// ... The program will pause until the sound is complete.
player.PlaySync();
}
}