Windows Media Player视频的无缝循环

本文关键字:循环 视频 Media Player Windows | 更新日期: 2023-09-27 18:23:48

我正在WinForms应用程序中实现Windows Media Player。axWindowsMediaPlayer在应用程序中,运行良好,但我的问题是在播放视频之间有黑屏闪烁。但奇怪的是,在第一次和第二次播放视频之间,它没有闪烁黑屏。因此,这让我相信,这一定是某种缓冲,或者在第一次播放时保持良好,但之后在加载和播放视频时出现问题。

所以,基本上我想知道的是,最好的解决方案是以某种方式完全缓存视频,或者在它再次加载时以某种方式暂停它,也许我必须基于计时器或类似的东西来完成这一切。无论如何,请告诉我,如果有什么已知的方法可以解决Winforms嵌入式Windows Media Player中视频循环之间的黑屏闪烁问题。

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