AxWindowsMediaPlayer - 开始播放电影时的黑色组件

时间:2013-09-05 16:28:56

标签: c# .net winforms axwindowsmediaplayer

我在AxWindowsMediaPlayer应用程序中使用WinForm组件。我注意到,当我将URL设置为文件时,我想播放并调用Ctlcontrols.play()命令,例如。电影开始播放前延迟250ms。

在此延迟期间,AxWindowsMediaPlayer的区域为黑色。当您从一部电影更改为另一部电影时,或者当您停止当前正在播放电影并再次启动时,可以很容易地看到此行为。

我目前的解决方案是基于在开始播放电影时将推迟的AxWindowsMediaPlayer可见性设置为true。播放器在例如之后显示给用户。 500毫秒当我确定,电影实际上正在播放,用户不会看到任何黑色。

我正在寻找更好的方法如何避免黑人没有玩家。有人解决了类似的问题吗?或者至少因为我处理的是非常经验的价值观,这些价值观在不同的PC上会有所不同,是否有办法创造万无一失的解决方案?

Prereq: WinForms, .NET 4.0, WMP 12 for Windows 7

2 个答案:

答案 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秒,从而可以避免黑屏的过渡效果。但是对于简短的视频,则需要附加代码。