我要做的是播放指定时间段的音乐文件,然后停止播放。但是,正在播放整个音乐文件。我无法使用'PlaySync()'方法,因为我无法阻止线程。
答案 0 :(得分:2)
也许是这样的
Task.Factory.StartNew(() =>
{
var player = new SoundPlayer();
player.SoundLocation = "myfile";
player.Play();
Thread.Sleep(duration)
player.Stop();
});
答案 1 :(得分:2)
您不必自己生成新线程,因为SoundPlayer.Play
方法本身就是这样做。
试试这个版本:
public void Play()
{
player = new SoundPlayer();
player.SoundLocation = "myfile";
Timer timer = new Timer();
timer.Tick += (s,e) =>
{
player.Stop();
timer.Stop();
};
timer.Interval = duration;
player.Play();
timer.Start();
}