Воспроизвести звук до dialogbox.dialogresult == dialogresult.OK - PullRequest
0 голосов
/ 15 апреля 2011

Я занимаюсь разработкой приложения winform.Я хочу воспроизвести звуковой файл, пока результат диалога не будет в порядке для окна сообщения.Как я могу этого достичь.

Например,

 /*Till*/ (MessageBox.Show("Alarm") == DialogResult.OK)

 //Play a sound file

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

Ответы [ 2 ]

6 голосов
/ 15 апреля 2011

Вам не нужно накатывать свои собственные потоки. Библиотека классов .NET уже сделала это для вас. Вот как вы можете это сделать:

        SoundPlayer p = new SoundPlayer(@"C:\Windows\Media\chimes.wav");
        p.PlayLooping();
        MessageBox.Show("Alarm");
        p.Stop();
1 голос
/ 15 апреля 2011

Да, запускайте звуковой файл в отдельном потоке, который вы запускаете, когда появляется окно сообщения.Как только MessageBox возвращается с OK, вы можете позвонить в этот поток, сообщив, что музыка должна быть остановлена, или вы можете убить поток.

РЕДАКТИРОВАТЬ

Альтернативой может быть написание собственного AlarmMessageBox, который наследуется от MessageBox.Единственное отличие состоит в том, что при создании он начинает воспроизводить этот звук, а при нажатии кнопки «ОК» он останавливается.Это может работать только в одном потоке.

...