2015-10-21 3 views
-1

Я создаю переменное приложение # Winform для воспроизведения видео, то, что я хочу, чтобы приостановить игрок и предотвратить это, чтобы остановить после того, как средства массовой информации окончания:Предотвращение axWindowsMediaPlayer остановки после окончания СМИ

private void axWindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) 
    { 
     if (e.newState == 8)//media ended 
     { 
      //To pause and prevent stop. 
     } 
    } 

Я проверил некоторые вещи:

if (e.newState == 8) 
     { 
      axWindowsMediaPlayer1.Ctlcontrols.pause(); 
     } 

, но после этого игрок автоматически останавливается. после этого испытания:

if (e.newState == 8) 
     { 
      axWindowsMediaPlayer1.Ctlcontrols.pause(); 
      Thread.CurrentThread.Join(5000); 
     } 

Игрок делает паузу и подождать 5 секунд, а затем остановить! У вас есть решение для этого? Спасибо.

ответ

0

Try:

private void axWindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) 
    { 
     if (e.newState == 1) 
     { 
      axWindowsMediaPlayer1.Ctlcontrols.currentPosition = axWindowsMediaPlayer1.currentMedia.duration - .001; 
      axWindowsMediaPlayer1.Ctlcontrols.play(); 
      axWindowsMediaPlayer1.Ctlcontrols.pause(); 
     } 
    } 
+0

После остановки игрока (e.newState == 1) currentPosition будет равен нулю. Я получаю currentPosition с функцией синхронизации, когда игрок находится в состоянии воспроизведения: if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsPlaying) { currentPosition = axWindowsMediaPlayer1.Ctlcontrols.currentPosition; } – Farzin

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