我使用axwindowsmediaplayer
和C#。
我有一个计时器,在一段时间后将控件设置为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()
。
我的问题是,当视频播放完毕后,我将失去全屏模式。我的意思是视频恢复到原来的大小。我在调用fullscreen=true
之后尝试设置selec_video()
,但我收到了错误(灾难性错误)。我想这是因为控件已经全屏显示...所以我想做的是调用selec_video()
,而不会失去全屏模式。
答案 0 :(得分:2)
以下代码检查您的媒体播放器的播放状态。如果正在播放某些内容,则会将其设置为全屏模式。
private void timer2_Tick(object sender, EventArgs e)
{
selec_video();
if (videowmp.playState == WMPLib.WMPPlayState.wmppsPlaying)
{
videowmp.fullScreen = true;
}
}
答案 1 :(得分: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;
}
}