2016-07-18 93 views
0

我有這個小片的C#代碼C#MediaPlayer.MediaEnded事件不觸發

//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); 
    } 

我不知道爲什麼,但MediaEndedLoop和MediaEndedDestroy從來不被稱爲

任何想法?

回答

0

我也有這個問題。我找不到解決方案,但是如果媒體存在於循環應用程序或線程中,我確實想出了一個解決方法。您可以在某個點後手動重置位置。

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

這是我現在可以提供的最好的。