AxWindows媒体播放器 - 开始播放电影时的黑色组件



我在WinForm应用程序中使用了AxWindowsMediaPlayer组件。我注意到当我将 URL 设置为文件时,我想播放并调用Ctlcontrols.play()命令有一个 eg。影片开始播放前 250 毫秒延迟。

在此延迟期间,AxWindowsMediaPlayer区域为黑色。当您从一部电影切换到另一部电影时,或者当您停止当前播放电影并重新启动它时,很容易看到此行为。

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

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

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

private void OnPlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
    switch (e.newState)
    {
        case 3: // Playing started
           // Show your control
           break;
    }
}
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 秒,从而避免黑屏的过渡效果。但是对于短视频,需要额外的代码。

最新更新