2016-07-18 3 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); 
     } 

Это лучшее, что я могу предложить на данный момент.

Смежные вопросы