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

Eri*_*tas 1 .net c# wpf video winforms

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

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

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

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

Ant*_*ton 5

我花了很多年时间看着在wpf下播放视频.

简短的回答

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

答案很长

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

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

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

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

现在进入非常艰难的领土.

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