Visual Studio 2019 PlaySync - PullRequest
       31

Visual Studio 2019 PlaySync

0 голосов
/ 01 мая 2020

Я создаю калькулятор для школьного проекта, и, поскольку я закончил с тем, что мне действительно нужно было сделать, я хотел добавить звук. Поэтому я использовал SoundPlayer и PlaySyn c для воспроизведения нескольких песен по порядку. Песни начинают воспроизводиться, когда вы нажимаете кнопку, но как только вы нажимаете на кнопку, форма зависает, и musi c воспроизводится по порядку, но на music1.Play проигрывание musi c воспроизводится не по порядку, а форма не останавливается. Вот код:

namespace Math
{
    public partial class Form1 : Form
    {
        Double A;
        Double B;
        Double X;
        int num = 0;
        int num2 = 0;
        SoundPlayer music1 = new SoundPlayer();

        public Form1()
        {
            InitializeComponent();
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
        }

        private void btnClear_Click(object sender, EventArgs e)
        {
            lstInput.Items.Clear();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            textBox1.Text = num.ToString();
            textBox2.Text = num2.ToString();

            //Speech and Music
            SpeechSynthesizer Talky = new SpeechSynthesizer();
            Talky.SetOutputToDefaultAudioDevice();
            Talky.Speak(lstInput.Text);
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            A = Double.Parse(textBox1.Text);
            B = Double.Parse(textBox2.Text);
            X = A + B;
            lstInput.Items.Add(X.ToString());
        }

        private void btnSub_Click(object sender, EventArgs e)
        {
            A = Double.Parse(textBox1.Text);
            B = Double.Parse(textBox2.Text);
            X = A - B;
            lstInput.Items.Add(X.ToString());
        }

        private void btnMult_Click(object sender, EventArgs e)
        {
            A = Double.Parse(textBox1.Text);
            B = Double.Parse(textBox2.Text);
            X = A * B;
            lstInput.Items.Add(X.ToString());
        }

        private void btnDiv_Click(object sender, EventArgs e)
        {
            A = Double.Parse(textBox1.Text);
            B = Double.Parse(textBox2.Text);
            X = A / B;
            lstInput.Items.Add(X.ToString());
        }

        private void btnStop_Click(object sender, EventArgs e)
        {
            music1.SoundLocation = "C:/Users/wpg17/Desktop/Sounds/Mando/The Mandalorian OST - Main Theme.wav";
            music1.PlaySync();
            music1.SoundLocation = "C:/Users/wpg17/Desktop/Sounds/Cantina/Cantina Band.wav";
            music1.PlaySync();
        }
    }
}
...