2013-11-24 80 views
3

我有一個使用axwindowsmediaplayer和C#的winform嵌入式視頻。嵌入式Windows Media Player全屏

我有一個計時器,在一段時間後將控件設置爲fullscreen=true

private void timer1_Tick(object sender, EventArgs e) 
{ 
    timer1.Stop(); 
    videowmp.fullScreen = true; 
} 

我使用一個數據庫來獲取視頻,我調用一個函數來獲取他們每視頻結束時,出於某種原因,我需要一個第二計時器那裏開始新的視頻:

private void videowmp_PlayStateChange(object sender, 
    AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) 
{ 
    if (e.newState == 8) 
    { 
     timer2.Interval = 100; 
     timer2.Enabled = true; 
    } 
} 

private void timer2_Tick(object sender, EventArgs e) 
{ 
    timer2.Enabled = false; 
    selec_video(); 
} 

功能selec_video()獲取視頻,設置windows媒體播放器控件的URL並將其設置爲play()

我的問題是,當視頻完成後,我失去了全屏模式。我的意思是視頻可以回到原來的大小。在撥打selec_video()之後,我嘗試設置fullscreen=true,但是出現了一個錯誤(災難性錯誤)。我想這會發生,因爲控制已經在全屏幕中......所以我想要做的是呼叫selec_video(),而不會丟失全屏模式。

+1

我編輯了我的問題,我希望你現在可以幫我...謝謝! – MarceloClaure

回答

2

以下代碼檢查您的媒體播放器的播放狀態。如果正在播放某些內容,則會將其設置爲全屏模式。

private void timer2_Tick(object sender, EventArgs e) 
{ 
    selec_video(); 
    if (videowmp.playState == WMPLib.WMPPlayState.wmppsPlaying) 
    { 
     videowmp.fullScreen = true; 
    } 
} 
2

您可以使用PlayStateChange操作。而且你也可以從PlayStateChange Event of the AxWindowsMediaPlayer Object發現其他的州代碼

private void axWindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) 
{ 
    if (e.newState == 3)//Playing 
    { 
      axWindowsMediaPlayer1.fullScreen = true;     
    } 

}