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

2019-09-29 14:34发布

我使用AxWindowsMediaPlayer在我的组件WinForm程序。 我注意到,当我设置URL到文件我想打,并呼吁Ctlcontrols.play()命令有一个如。 电影之前250ms的延迟开始播放。

在这种延迟区域AxWindowsMediaPlayer是黑色的。 这种行为可以当你从一个电影转换到另一种可以非常容易地看出,或者只是当你停止当前播放的电影,并再次启动它。

我目前的解决方案是基于推迟AxWindowsMediaPlayer能见度开始播放电影时设置为true。 玩家如后显示给用户。 500ms的时候我相信,这部电影其实玩和用户不会看到黑色的罢了。

我在寻找更好的方式如何避免黑什么的球员。 有没有人解决过类似问题? 或者至少,因为我处理的,这将是在不同的PC非常不同的经验值,有没有办法如何建立万无一失的解决方案?

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

Answer 1:

private void OnPlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
    switch (e.newState)
    {
        case 3: // Playing started
           // Show your control
           break;
    }
}


Answer 2:

private void timer1_Tick(object sender, EventArgs e)
{
    if(axWindowsMediaPlayer1.Ctlcontrols.currentPosition > axWindowsMediaPlayer1.Ctlcontrols.currentItem.duration - 0.01)
        {
        axWindowsMediaPlayer1.Ctlcontrols.currentPosition = 0;
        }
}

此代码变化currentPosition为0秒时的视频运行0.01毫秒,从而能够避免黑屏的过渡效果。 但对于短视频附加代码需要。



文章来源: AxWindowsMediaPlayer - black component when starts to play movie