C# Windows Media Player视频的无缝循环
我正在WinForms应用程序中实现Windows Media Player。axWindowsMediaPlayer在应用程序中,工作正常,但我的问题是,在播放视频之间有一个黑屏闪烁。但奇怪的是,它不会在播放视频的第一次和第二次之间闪烁黑屏。因此,这让我相信它一定是某种缓冲或某种东西,在第一次播放期间,它保持良好,但此后,它在加载和同时播放视频方面存在问题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.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秒,以避免黑屏的过渡效果请在回答中添加解释。