Проблема с потоками при воспроизведении музыкального файла - PullRequest
0 голосов
/ 16 декабря 2011

Я пытаюсь воспроизвести музыкальный файл в течение определенного периода времени, а затем прекратить воспроизведение. Тем не менее, весь музыкальный файл воспроизводится. Я не могу использовать метод PlaySync (), так как не могу заблокировать поток.

Ответы [ 2 ]

2 голосов
/ 16 декабря 2011

Вам не нужно создавать новый поток самостоятельно, так как метод 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(); 
    } 
2 голосов
/ 16 декабря 2011

может быть что-то вроде этого

 Task.Factory.StartNew(() =>
   {
    var player = new SoundPlayer();
    player.SoundLocation = "myfile";
    player.Play();
    Thread.Sleep(duration)
    player.Stop();
   });
...