Событие.net SoundPlayer никогда не запускается

Поэтому я пытаюсь использовать SoundPlayer для загрузки файла WAV, а затем запустить событие после того, как он завершит загрузку. Причина в том, что я не хочу, чтобы моя программа продолжалась, пока WAV не будет полностью загружен и готов к работе (если есть другой способ сделать это, дайте мне знать).

Но, к сожалению, событие LoadCompleted никогда не запускается!

Вот последнее из того, что я пробовал. Что я делаю неправильно?

this.audio = new SoundPlayer(); 
audio.SoundLocation = "songs\\" + songname + ".wav"; 
audio.LoadAsync();

который принадлежит объекту songdata. Тогда у меня есть основной метод main class:

this.songdata.audio.LoadCompleted += new AsyncCompletedEventHandler(audio_LoadCompleted);

this.songdata.audio.Play();

наконец внутри основного класса:

void audio_LoadCompleted(object sender, AsyncCompletedEventArgs e)
{
    MessageBox.Show("aaa");
}

Файл начинает воспроизводиться, но окно сообщения никогда не появляется. Кстати, я использую Visual Studio 2010 и.NET 4.0.

1 ответ

Я получил следующий код для отправки мне события LoadCompleted, однако у меня была "функция обратного вызова события" в том же классе, что и у объекта SoundPlayer.

class MediaPlayer{

System.Media.SoundPlayer soundPlayer;

public MediaPlayer(MemoryStream stream){
   soundPlayer = new System.Media.SoundPlayer(stream);
   soundPlayer.LoadCompleted += new AsyncCompletedEventHandler(player_LoadCompleted);
   soundPlayer.Load();
}

public void Play(){

   soundPlayer.Play();

}

// Handler for the LoadCompleted event.
private void player_LoadCompleted(object sender, AsyncCompletedEventArgs e){   
   Console.WriteLine("LoadCompleted"); 
} 
}
Другие вопросы по тегам