我该如何播放视频文件?

rat*_*tty 8 c# video file

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

Bri*_*den 12

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

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

// [ 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();
}
Run Code Online (Sandbox Code Playgroud)

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


Kaz*_*zar 5

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

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

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

使用 DirectShow 的另一个优点是 Windows 将处理加载给定媒体类型所需的编解码器和渲染组件。