我在AxWindowsMediaPlayer
应用程序中使用WinForm
组件。我注意到,当我将URL设置为文件时,我想播放并调用Ctlcontrols.play()
命令,例如。电影开始播放前延迟250ms。
在此延迟期间,AxWindowsMediaPlayer
的区域为黑色。当您从一部电影更改为另一部电影时,或者当您停止当前正在播放电影并再次启动时,可以很容易地看到此行为。
我目前的解决方案是基于在开始播放电影时将推迟的AxWindowsMediaPlayer
可见性设置为true。播放器在例如之后显示给用户。 500毫秒当我确定,电影实际上正在播放,用户不会看到任何黑色。
我正在寻找更好的方法如何避免黑人没有玩家。有人解决了类似的问题吗?或者至少因为我处理的是非常经验的价值观,这些价值观在不同的PC上会有所不同,是否有办法创造万无一失的解决方案?
Prereq: WinForms, .NET 4.0, WMP 12 for Windows 7
答案 0 :(得分:0)
private void OnPlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
switch (e.newState)
{
case 3: // Playing started
// Show your control
break;
}
}
答案 1 :(得分:0)
private void timer1_Tick(object sender, EventArgs e)
{
if(axWindowsMediaPlayer1.Ctlcontrols.currentPosition > axWindowsMediaPlayer1.Ctlcontrols.currentItem.duration - 0.01)
{
axWindowsMediaPlayer1.Ctlcontrols.currentPosition = 0;
}
}
此代码在视频播放0.01毫秒时将currentPosition更改为0秒,从而可以避免黑屏的过渡效果。但是对于简短的视频,则需要附加代码。