C# Windows Media Player视频的无缝循环

C# Windows Media Player视频的无缝循环,c#,visual-studio-2010,visual-studio,media-player,C#,Visual Studio 2010,Visual Studio,Media Player,我正在WinForms应用程序中实现Windows Media Player。axWindowsMediaPlayer在应用程序中,工作正常,但我的问题是,在播放视频之间有一个黑屏闪烁。但奇怪的是,它不会在播放视频的第一次和第二次之间闪烁黑屏。因此,这让我相信它一定是某种缓冲或某种东西,在第一次播放期间,它保持良好,但此后,它在加载和同时播放视频方面存在问题 所以,基本上我想知道的是,最好的解决办法是完全缓存视频,或者在视频再次加载时暂停视频,也许我必须根据计时器或类似的方法来完成这一切。在任何

我正在WinForms应用程序中实现Windows Media Player。axWindowsMediaPlayer在应用程序中,工作正常,但我的问题是,在播放视频之间有一个黑屏闪烁。但奇怪的是,它不会在播放视频的第一次和第二次之间闪烁黑屏。因此,这让我相信它一定是某种缓冲或某种东西,在第一次播放期间,它保持良好,但此后,它在加载和同时播放视频方面存在问题


所以,基本上我想知道的是,最好的解决办法是完全缓存视频,或者在视频再次加载时暂停视频,也许我必须根据计时器或类似的方法来完成这一切。在任何情况下,请让我知道,如果已知有任何方法可以解决Winforms嵌入式Windows Media Player中视频循环之间的黑屏闪烁问题。

您可以尝试使用以下代码手动重置视频当前位置。它将从一开始就启动视频,不闪烁

AxWindowsMediaPlayer.Ctlcontrols.currentPosition = 0
或者在计时器滴答声事件中使用此选项,当视频接近尾声时,从开始手动播放,如下所示

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    If AxWindowsMediaPlayer1.Ctlcontrols.currentPosition > AxWindowsMediaPlayer1.Ctlcontrols.currentItem.duration - 0.01 Then
        AxWindowsMediaPlayer1.Ctlcontrols.currentPosition = 0
    End If
End Sub
我希望这有帮助

    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秒,以避免黑屏的过渡效果

请在回答中添加解释。