Если вы не сохраняете ссылку на MediaPlayer
s как поле, а только в локальных переменных, они, вероятно, будут собираться сборщиком мусора. Это может произойти с задержкой, поскольку MediaPlayer
использует неуправляемые ресурсы, для которых потребуется Dispose
перед освобождением. Чтобы решить вашу проблему, попробуйте сохранить ссылку на MediaPlayer
s в поле.
private System.Windows.Media.MediaPlayer _music;
private System.Windows.Media.MediaPlayer _happy;
private System.Windows.Media.MediaPlayer _sad;
, а затем настройте методы для использования поля вместо этого.
private void musical()
{
_music = new System.Windows.Media.MediaPlayer();
_music.Open(new System.Uri(@"J:\penalty\penalty\penalty\bin\Debug\Avicii - The Nights (Lyrics HD).wav"));
_music.Play();
}
Если вы хотите повторить звук (который не очень хорошо работает), вы можете подписаться на событие MediaEnded
, чтобы вернуть позицию в начало и начать воспроизведение снова.