Пользовательский интерфейс не обновляет звуки, воспроизводимые первыми в цикле foreach C # WPF - PullRequest
0 голосов
/ 30 сентября 2018

Я сделал карточную игру, которая получает и показывает карты игроков из ресурсов в пользовательском интерфейсе, используя цикл foreach, который работает нормально.Недавно я также добавил звук карты, чтобы звук воспроизводился перед отображением каждого изображения в пользовательском интерфейсе.Однако сначала всегда воспроизводятся звуки, а затем показываются изображения.Немного раздражает ...

Я использую звуковой плеер и playsync ().Как заставить графический интерфейс обновить?(между звуками)

Вот часть кода ...

Начинается с

//loop
foreach (var player in playerGUIs)....
//Call the sound Card_Sound(); //See below

//Update image player.img1.Source = new BitmapImage(new
Uri(("/Utilities;Component/Resources/" + card_file + ".png"),
UriKind.Relative));


private void Card_Sound()
    { //Play sound System.Threading.Thread.Sleep(800); // First sleep 800 milliseconds

using (FileStream stream = File.Open(@"Resources\dealingcard.wav",
FileMode.Open)) {
    SoundPlayer myNewSound = new SoundPlayer(stream);
           myNewSound.Load();
           myNewSound.PlaySync(); }

}

1 Ответ

0 голосов
/ 30 сентября 2018

PlaySync () заблокирует пользовательский интерфейс (если он запущен в потоке пользовательского интерфейса). Вы пробовали Play ()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...