我正在用c#win10 .NET 4.6开发视频播放器,它随机冻结在多台计算机上的循环中。内存和CPU没有增加。
当必须触发循环时,我必须触发精确的毫秒数,因此setmode loop true仅是一个后备选项。目前,我使用非常精确的Timer将currentposition设置为0,并且在冻结之前没有任何错误消息的情况下,它可以正常工作。我尝试了所有可以找到的方法来捕获成功失败的错误。
这是我在这里的第一篇文章,因此请原谅我的格式。 我的代码的相关部分如下所示:
axWindowsMediaPlayer1.Dock = DockStyle.Fill;
axWindowsMediaPlayer1.uiMode = "none";
axWindowsMediaPlayer1.enableContextMenu = false;
axWindowsMediaPlayer1.CausesValidation = false;
axWindowsMediaPlayer1.Ctlenabled = false;
axWindowsMediaPlayer1.settings.setMode("loop", true); // Fallback loop if Timer fails
axWindowsMediaPlayer1.windowlessVideo = true;
axWindowsMediaPlayer1.stretchToFit = true;
//axWindowsMediaPlayer1.PlayStateChange += OnPlayerStateChange;
//axWindowsMediaPlayer1.MediaError += OnPlayerMediaError;
//axWindowsMediaPlayer1.ErrorEvent += new EventHandler(OnPlayerErrorEvent);
axWindowsMediaPlayer1.URL = (string)local["target"];
private void OnMultimediaTimer(object sender, System.EventArgs e)
{
axWindowsMediaPlayer1.Ctlcontrols.currentPosition = 0;
}
我正在大量搜索,但找不到任何解决方案。 谢谢