嵌入式Windows Media Player全屏显示

3

我在使用C#和axwindowsmediaplayer在winform中嵌入了一个视频。

我设置了一个计时器,在一段时间后将控件设置为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 Media Player控件设置URL并将其设置为play()
我的问题是当视频结束时,我失去了全屏模式。我的意思是视频回到了它的原始大小。我尝试在调用selec_video()之后设置fullscreen=true,但是我得到了一个错误(灾难性错误)。我想这是因为控件已经处于全屏状态...所以我想做的是,在不失去全屏模式的情况下调用selec_video()

1
我编辑了我的问题,希望现在你能帮助我...谢谢! - MarceloClaure
2个回答

3
以下代码检查您的媒体播放器的播放状态。如果正在播放某个内容,则会将其设置为全屏模式。
private void timer2_Tick(object sender, EventArgs e)
{
     selec_video(); 
     if (videowmp.playState == WMPLib.WMPPlayState.wmppsPlaying)
     {
        videowmp.fullScreen = true;
     }
}

2
你可以使用PlayStateChange操作。你还可以在AxWindowsMediaPlayer对象的PlayStateChange事件中找到其他状态代码。
private void axWindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
     if (e.newState == 3)//Playing
     {
           axWindowsMediaPlayer1.fullScreen = true;                
     }

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接