C # играет музыка - PullRequest
       22

C # играет музыка

0 голосов
/ 29 ноября 2018

Я создал простую карточную игру, используя приложение Windows Form.Единственное, что мне нужно сделать, это добавить музыкальные эффекты.Я записал несколько звуков (нарисовал карту и т. Д.) В mp3, добавил его в игру через WMPlib, и все работает, кроме одного.Я хочу воспроизводить музыку в середине метода, а не после того, как он закончится - я имею в виду следующее:

private void Button_Click (object sender, EventArgs e)
{
    //code of player 1
    player.URL = @"draw a card.mp3";
    //Immediatelly after that will play player 2
    Player2();
}

void Player2()
{
    //do stuff
    System.Threading.Thread.Sleep(1000);
    //do another stuff
    player.URL = @"draw a card 2.mp3";
}

Что происходит, когда оба звука воспроизводятся вместе после окончания кода.Можно ли как-то управлять воспроизведением первого звука до вызова второго метода?Большое спасибо за любую помощь;)

1 Ответ

0 голосов
/ 29 ноября 2018

попробуйте это:)

private void Button_Click(object sender, EventArgs e)
{
    //code of player 1

    Task.Run(async () => { 
        //this will run the audio and will not wait for audio to end.
        player.URL = @"draw a card.mp3";
    });

    //excecution flow is not interrupted by audio playing so it reaches this line below.
    Player2();
}

также, я бы посоветовал вам держаться подальше от Thread.Sleep(XXX), так как он приостанавливает выполняющуюся нить.и больше ничего не произойдет, пока ты спишь.

...