Windows Media Player如何处理监视器的刷新率? - c#

我正在C#/ WinForms中编写动画应用程序(请参见this question)。基本上,我应用程序中的动画是平滑的,但显示出撕裂效果;当我拍摄相同的动画并将其渲染为AVI文件并使用Windows Media Player播放时,该动画完全没有显示撕裂效果。我知道WMP不会更改帧速率,因为动画与音乐同步。

我假设WMP使用DirectX或其他知道监视器刷新率和扫描线位置等的技术,但是我一直认为编程刷新率会限制帧速率。显然,WMP并非如此。

有谁知道WMP(或其他视频播放器)如何在内部渲染视频吗?我已经搜索过,但似乎找不到任何详细信息。

参考方案

自从我进行DirectX编程以来已经有一段时间了,所以这可能已经过时了。

据我所记得,使用DirectX可以设置一个翻转缓冲区链,通常是三个缓冲区:要显示的缓冲区,要显示的缓冲区和要写入的缓冲区。在更新中,DirectX将等待垂直同步,然后再更新显示的缓冲区。现在,这将导致显示的图像与应显示的图像之间出现差异,但这最多只能进行一次刷新,大约为1/60秒,因此您不太可能注意到。

一些ASCII艺术来说明我的意思:

|-|-|-|-|-|-|-|-|-|-|-|-|-|-|  - screen refresh
|----|----|----|----|----|---  - animation 
|-----|---|-----|---|-----|--  - displayed

“没有找到适合完成此操作的成像组件。” - c#

我已经编写了一个应用程序,需要下载* .png文件并将其设置为WPF中按钮的背景。因此,当我运行此程序时,它会遇到以下错误: 找不到适合完成此操作的成像组件。”我的代码如下:第一个应用程序使用WebClient类的对象下载文件:System.Net.WebClient wClient = new System.Net.WebClient(); Uri dow…

在硬件级别模拟按键-Windows - java

我正在寻找一种语言或库,以使我可以尽可能地模拟按键,而无需实际按下按键。(我对按键级别的具体衡量标准是,当我的计算机已经在运行按键侦听器(例如MouseKey和StickyKeys)时,它是否会产生与物理按键相同的输出。)我已经尝试了许多模拟按键的方法。Java AWT库,Java win32api,python win32com sendKeys,pyth…

Windows 8 Metro应用程序的图表 - c#

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely …

如何在Universal Windows App中使用BackgroundMediaPlayer播放内部声音 - c#

我在C#中创建一个计时器。计时器结束后,用户将收到通知。如果我的应用程序被暂停,我会使用ToastNotificationManager安排通知,并在Toast XML中将声音设置为内部声音,例如:<audio src='ms-winsoundevent:Notification.Looping.Alarm10' loop=…

Windows Phone WNS通知导航到特定页面 - c#

它是Windows运行时,Windows Phone专用项目。我正在使用Azure和Azure通知中心。所以我的问题是,有谁愿意如何导航到某些特定页面并发送ID等参数。这是我的吐司模板,如字符串中所述: var toast = @"<toast><visual><binding template=""…