2013-11-24 2 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;     
    } 

}