使用SoundPlayer播放音乐

时间:2015-12-11 08:11:04

标签: c# soundplayer

所以我正在做一个简单的钢琴并尝试遍历我存储音符的集合,但是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是链接到文件的简单序号 提前致谢

2 个答案:

答案 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();
           }
    }