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

时间:2012-02-01 22:15:51

标签: c# .net wpf winforms video

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

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

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

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

4 个答案:

答案 0 :(得分:5)

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

简短回答

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

答案很长

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

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

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

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

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

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

答案 1 :(得分:3)

答案 2 :(得分:3)

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

这里有一个: http://vlcdotnet.codeplex.com/

答案 3 :(得分:2)

感谢所有出色的答案。但刚刚发现VLC实际上可能是controlled through HTTP。所以我想我只是想用它来指示一个VLC实例运行HTTP接口,无论我想播放什么文件。