我正在使用Vlc.DotNet在WPF中开发应用程序。我在笔记本电脑上以可怕的帧速率回放视频时遇到了问题。
经过一番研究后,我发现问题与CPU限制有关。如果笔记本电脑电源配置文件处于BatterySaver模式,则会出现问题。如果我将其切换到性能,一切正常。在我看来,在BatterySaver模式下,它允许处理器减速,并且由于某些原因,当应用程序需要时,它不会正确地重新启动。无论如何我可以解决这个问题吗?
我尝试使用下面的代码设置优先级,但它似乎没有什么区别。
System.Diagnostics.Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High;
Vlc.DotNet使用下一个渲染图像更新和ImageSource。我将此源绑定到GUI上显示它的图像。我使用了WPF Performance Kit,可以看到发生了什么,但不是为什么。一旦开始播放,AKA以30fps更新GUI上的图像,整个应用程序的帧速率下降到大约5fps。
答案 0 :(得分:1)
您是否尝试过切换到software rendering以避免CPU掉电的瓶颈?我知道WPF使用单独的线程进行渲染,我不确定你是否可以从Process.Threads访问它。我过去所做的是附加到power mode changed event并动态切换模式like this,因此电源模式更改不会切换到硬件渲染。不确定这是否会起作用,因为我不知道你的具体瓶颈是什么,但希望这能指明你的方向。