c# - 在 .NET 应用程序中播放视频

标签 c# .net wpf winforms video

最近,我一直在尝试设置媒体中心 PC。我玩过所有常见的媒体中心应用程序,如 XBMC、Plex、Boxee 和 WMC。但他们都有一个或另一个问题。所以我在考虑从头开始编写自己的应用程序。

我的问题是我没有开发播放视频或音乐等媒体的软件的经验。考虑到所有不同的文件格式和编解码器,我也没有兴趣花费大量时间来解决这个问题。我真的更感兴趣的是为我的应用程序开发数据库和库接口(interface),并重用其他人的控件或代码来实际播放媒体。

我考虑的一个选择是从外部控制现有的媒体播放器。因此,例如,您可以浏览要在我的应用程序中播放的视频,然后当您点击播放时,它会启动 VideoLAN 或其他一些流行的视频播放器。

但是,我想知道是否有一种简单的方法可以在 .NET 应用程序中播放视频。我正在寻找能够播放多种格式(如 MKV 文件和 DVD ISO)的东西。我对 WinForms 更有经验,但也在考虑利用这个项目作为学习 WPF 的机会。

最佳答案

我花了很多年研究在 wpf 下播放视频。

简短的回答

没有简单的方法来保证能够在 wpf(mkv、dvd 等)或 windows 下播放各种格式。

长答案

如果您只想在家里运行它而不是发布它,请安装您需要的所有编解码器,大多数格式将通过 wpf 中的 mediaelement 运行。

让所有编解码器合作有时会令人沮丧。

现在进入稍微困难的领域。 如果你想播放 DVD 那么你需要用 wpfmediakit 替换 mediaelement http://wpfmediakit.codeplex.com/

wpfmediakit 提供了一个基础库来访问低级 directshow 功能。 已经有一个基于 wpfmediakit 播放 DVD 的代码库。

现在进入非常艰难的领域。

如果您想分发您的应用程序并让用户能够“只观看”大多数/所有媒体格式,则意味着您需要能够完全控制他们的编解码器,这通常意味着将编解码器与您的包一起分发并构建 directshow在代码中过滤图形而不是让 Windows 构建它。

关于c# - 在 .NET 应用程序中播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9104173/

相关文章:

c# - 屏幕阅读器阅读禁用按钮的 AutomationProperty.Id

.net - 评估 .NET 中的动态字符串公式?

.net - 如何创建 Form 的实例?

c# - 为什么 C# .NET WinForms 应用程序的控件在不同的机器上显示不同?黑盒测试方法

c# - Application.Startup 事件限制(错误?)

c# - 如果无法设置转换器参数,IValueConverter 保持状态

wpf - DoDragDrop之后触摸事件不起作用

c# - 是否可以同时在多个线程中运行 500 个不同的操作?

c# - 从图像 src 获取 base64 字符串

c# - 如何获取带空格的 XElement 值?