我需要一个非常简单的视频播放器在我的C#应用程序。它只需从文件中循环播放视频即可。由于我正在开发WPF应用程序,因此我尝试使用System.Windows.Controls.MediaElement
。它具有我需要的所有功能,但功能非常差:我已经播放了一些完整的高清视频,并且始终处于滞后和尖峰状态。如何使MediaElement与AxWindowsMediaPlayer一样好?
为了确保它不是我的应用程序问题,我创建了2个测试应用程序。第一个在WinForms
无边界1920x1080窗口中只有AxWMPLib.AxWindowsMediaPlayer
控制权。第二个在与System.Windows.Controls.MediaElement
相同尺寸的无边框WPF
窗口中。
然后我在两位玩家身上运行2个视频。以下是他们的规格:
1:1920x1080, 12000kb/s, 25 FPS, wmv
2:1920x1080, 5730kb/s, 25 FPS, mp4
在AxWindowsMediaPlayer
一切都看起来不错。但是MediaElement
似乎会丢失一些帧并忽略垂直同步(在快速场景更改期间可能会看到另一帧的一部分)。所以,这是完全不合适的,不应该是这样,但我没有发现任何关于微软官方文档中的问题(他们只建议使用MediaElement
而不是AxWindowsMediaPlayer
在WPF
应用程序中)。是否有可能使其工作更顺利或使用额外的WinForms
Form
与AxWindowsMediaPlayer
是唯一的解决方案?