2016-07-18 9 views
0

ich habe dieses kleine Stück von C# -CodeC# MediaPlayer.MediaEnded Ereignis nicht ausgelöst

//Creates a MediaPlayer with the sound you want to play 
    public static void PlaySound (Stream wavStream, string wavName, bool loop) 
    { 
     //Get the path for the file to play 
     var path = GetFilePath(wavStream, wavName); 

     var player = new MediaPlayer(); 
     player.Open(new Uri(path)); 
     player.MediaEnded += loop ? new EventHandler(MediaEndedLoop) : new EventHandler(MediaEndedDestroy); 
     player.Play(); 

     players.Add(player); 
     names.Add(wavName); 
    } 

Ich weiß nicht, warum, aber MediaEndedLoop und MediaEndedDestroy nie

Jede Idee, genannt?

Antwort

0

Ich hatte auch dieses Problem. Ich konnte keine Lösung finden, aber ich habe eine Problemumgehung gefunden, wenn Ihre Medien in einer Loop-Anwendung oder einem Thread vorhanden sind. Sie können die Position nur manuell nach einem bestimmten Punkt zurücksetzen.

if (media.Position > new TimeSpan(0, 2, 25)) 
     { 
      media.Position = new TimeSpan(0, 0, 00); 
     } 

Das ist das Beste, was ich ab sofort anbieten kann.