【问题标题】:Playing video in a .NET application在 .NET 应用程序中播放视频
【发布时间】:2012-02-01 22:15:51
【问题描述】:

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

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

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

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

【问题讨论】:

标签: c# .net wpf winforms video


【解决方案1】:

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

简短回答

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

长答案

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

让所有编解码器协同工作有时会令人沮丧。

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

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

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

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

【讨论】:

    【解决方案2】:

    【讨论】:

      【解决方案3】:

      前段时间自己尝试在winforms中播放媒体,发现有.Net的vlc包装器,不知道它们有多好,因为我放弃了,但你可以试试

      这是其中之一: http://vlcdotnet.codeplex.com/

      【讨论】:

        【解决方案4】:

        感谢所有出色的答案。但是刚刚发现VLC其实可以是controlled through HTTP。所以我想我只是要使用它来将一个使用 HTTP 接口运行的 VLC 实例指向我想要播放的任何文件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-11-16
          • 2012-04-05
          • 2012-07-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多