Событие.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");
}
}