1

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

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

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

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

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

4

2 回答 2

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

于 2018-10-23T15:58:32.903 回答