我该如何播放video文件?

我喜欢通过我的C#程序播放video文件,例如AVI。 是否可以播放这样的video文件?

您应该能够使用Media Player控件播放媒体文件。

从http://msdn.microsoft.com/en-us/library/dd562692(VS.85).aspx播放音频的示例,您应该能够将其改编为video:

// [ C# ] WMPLib.WindowsMediaPlayer Player; private void PlayFile(String url) { Player = new WMPLib.WindowsMediaPlayer(); Player.PlayStateChange += new WMPLib._WMPOCXEvents_PlayStateChangeEventHandler(Player_PlayStateChange); Player.MediaError += new WMPLib._WMPOCXEvents_MediaErrorEventHandler(Player_MediaError); Player.URL = url; Player.controls.play(); } private void Form1_Load(object sender, System.EventArgs e) { // TODO Insert a valid path in the line below. PlayFile(@"c:\myaudio.wma"); } private void Player_PlayStateChange(int NewState) { if ((WMPLib.WMPPlayState)NewState == WMPLib.WMPPlayState.wmppsStopped) { this.Close(); } } private void Player_MediaError(object pMediaObject) { MessageBox.Show("Cannot play media file."); this.Close(); } 

有关MSDN的更多信息,请访问http://msdn.microsoft.com/en-us/library/dd564582(VS.85).aspx

您可以考虑使用Managed DirectX中的音频/video控件作为快速解决方案:

http://msdn.microsoft.com/en-us/library/bb324497%28VS.85%29.aspx#dx_avp_playing_a_video_file

如果您需要对video进行更多控制,或者与应用程序更好地集成,则可以使用DirectShow。 有一个很好的C#interop库用于访问它( DirectShowLib )。

使用DirectShow的另一个好处是,windows将处理加载必要的编解码器和渲染给定媒体类型所必需的组件。

您可以随时使用Silverlight显示video内容,然后将silverlight应用程序插入您的网页。

以下是关于在silverlight中创建video播放器的一些文章:

http://www.85turns.com/2008/04/02/create-a-video-player-silverlight-2-part-1/

要么

http://weblogs.asp.net/dwahlin/archive/2008/03/07/silverlight-2-0-video-tutorials.aspx