2012-03-08 11 views
5

Próbuję odtworzyć jpg (w pętli), po kliknięciu mp4 powinien zostać odtworzony po zakończeniu, aby jpg ponownie zagrać. Nie wiem dlaczego, ale po tym, jak gram w axWindowsMediaPlayer1_PlayStateChange vido graj i zatrzymaj się. Wsparcie.Odtwarzanie dwóch filmów z axWindowsMediaPlayer

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace Video 
{ 
    public partial class Form1 : Form 
    { 
     bool clicked = false; 
     public Form1() 
     { 
      InitializeComponent(); 
      axWindowsMediaPlayer1.URL = "wait2.JPG"; 

     } 



     private void axWindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) 
     { 
      if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded & clicked== true) 
      { 
       clicked = false; 
       axWindowsMediaPlayer1.settings.setMode("Loop", true); 
       axWindowsMediaPlayer1.URL = "wait2.JPG"; 
       axWindowsMediaPlayer1.Ctlcontrols.play(); 

      } 

     } 

     private void axWindowsMediaPlayer1_ClickEvent(object sender, AxWMPLib._WMPOCXEvents_ClickEvent e) 
     { 
      axWindowsMediaPlayer1.settings.setMode("Loop", false); 
      axWindowsMediaPlayer1.URL = "video.MP4"; 
      axWindowsMediaPlayer1.Ctlcontrols.play(); 
      clicked = true; 
     } 


    } 
} 

Odpowiedz

7

Chciałbym, aby ktoś odpowiedział na to pytanie w momencie opublikowania. Dużo czasu zajęło mi odkrycie, dlaczego nie mogę uruchomić nowego filmu, ustawiając właściwość URL. I wreszcie znaleźć odpowiedź na ten problem tutaj:

http://msdn.microsoft.com/en-us/library/windows/desktop/dd562470%28v=vs.85%29.aspx

problem jest z ustawienie właściwości URL od wewnątrz axWindowsMediaPlayer1_PlayStateChange() obsługi zdarzeń. Zgodnie z powyższym dokumentem msdn:

"Nie wywołuj tej metody z kodu obsługi zdarzeń, ponieważ wywołanie adresu URL z modułu obsługi zdarzeń może przynieść nieoczekiwane wyniki."

Dlatego właściwość URL musi być ustawiona poza obsługą parzystości. Próbowałem również Dispatcher.Invoke(), a nawet uruchamiając nowy wątek z obsługi zdarzenia, aby ustawić właściwość URL; ale to też nie pomogło. To naprawdę musi pochodzić spoza obsługi zdarzenia!

+0

Dzięki za umieszczenie tutaj! To była przydatna informacja. +1 do pytania, jak również odpowiedź. – fayyazkl

Powiązane problemy