c# - XNA中如何控制高清视频播放的位置和速度?

标签 c# visual-studio-2010 performance video xna

我正在使用 Visual Studio 2010 和 XNA 4.0C# 中为 Windows 开发游戏。我希望能够设置和更改高清视频的播放位置,还可以根据用户输入反向播放视频。

我找不到从哪里开始的问题。 XNA 的 videoPlayer 类不提供这些类型的功能。我读到 XNA DirectShow 现在已经过时并且在使用高清视频时速度很慢。

我不太明白如何在我的项目中使用或实现 ffmpeg 等工具。似乎有些人有类似的问题并发布了解决方案,但没有太多细节。这些在下面。

  • 互操作以与核心 DX 功能对话。

  • 编写托管 C++ 包装器以互操作 ffmpeg。

  • 编写一个 mpeg 解码器。

我不确定什么是最好的以及从哪里开始。 谢谢!

最佳答案

VideoPlayer 类有一个“PlayPosition”属性,您应该可以使用它来播放。

否则(我不知道您的视频文件有多大,也不知道有多长)尝试一个图像序列并为当前图像序列设置动画并通过用户输入对其进行控制。当然,处理图像序列会使音频反转(如果有音频)等非常复杂。

最后但同样重要的是,您可以在此处查看是否可以从这个 mpeg 解码器中找出任何东西: https://www.box.com/shared/ojzfv0qzfx

其他可能有助于 mpeg 解码的东西: http://chrisa.wordpress.com/2007/11/21/decoding-mpeg2-information/

关于c# - XNA中如何控制高清视频播放的位置和速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13224448/

相关文章:

c# - 如何禁用 ContextMenuStrip 中的菜单项?

c# - 使用对象初始化器时修复缩进

c++ - 以下任何配置是否会影响发布版本的性能

c++ - VS2010 MSBuild Target 仅在重建时运行

vb.net - 传递字符串时的 ByRef 与 ByVal 性能

c - GCC是否缓存循环变量?

c# - 使用 C# 使用 GZipStream 类对包含子目录的目录进行 Gzip 压缩?

c# - 如何从另一个子窗体关闭子窗体而不关闭主窗体c#

c# - 我破坏了与 Dotfuscator 的兼容性...请帮助我了解如何

arrays - 在 O(log(n)) 时间内找到数组中缺失的数字