媒体播放器c#插件,更改事件没有以正确的fps触发?

时间:2011-10-04 11:49:31

标签: c# media-player avi

我正在尝试使用System.Windows.Media.MediaPlayer类来播放和捕获视频文件。这是一个安全摄像头应用程序,这里没有版权问题 - 实际上,我这样做是因为我想访问完整的Windows媒体播放器编解码器库来打开avi文件(以及其他格式)。

我以为我的工作非常完美。我将一个事件附加到mediaPlayer.Changed并使用DrawingContext等来捕获和保存框架。

但是,我刚刚发现.Changed并不总是为每一帧开火。如果视频低于大约6fps,它似乎工作正常,但在此之上,Changed不会超过大约6-7fps。在10fps视频的情况下,它似乎每隔3帧丢弃一次。我也尝试使用25fps mpg文件,它达到了12fps的捕获率。

我不认为这是一个计算机资源问题,因为我使用的机器是带有大量内存的i7。此外,如果我更改了mediaplayer.SpeedRatio = 0.5,则播放速率降至一半,但捕获率也会下降,并且相同比例的帧将被丢弃。

我应该更改一些参数(或者这是媒体播放器的错误吗?)

0 个答案:

没有答案