0

私がやろうとしているのは、音楽ファイルを指定された時間だけ再生してから、再生を停止することです。ただし、音楽ファイル全体が再生されています。スレッドをブロックできないため、「PlaySync()」メソッドを使用できません。

4

2 に答える 2

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(); 
    } 
于 2011-12-16T09:49:53.367 に答える
2

多分このようなもの

 Task.Factory.StartNew(() =>
   {
    var player = new SoundPlayer();
    player.SoundLocation = "myfile";
    player.Play();
    Thread.Sleep(duration)
    player.Stop();
   });
于 2011-12-16T09:41:32.577 に答える