2010-01-24 130 views
5

我喜歡通過我的C#程序播放視頻文件,如AVI。是否有可能播放這樣的視頻文件?如何播放視頻文件?

+1

什麼視頻文件?你需要更具體。什麼格式?哪種容器類型? – Cromulent 2010-01-24 15:06:56

+0

任何一種視頻格式 – ratty 2010-01-24 15:09:01

+0

由於支持所有編解碼器,因此支持所有視頻格式在Windows上都很棘手,而且有時候MPEG文件可能會非常棘手。 – Kazar 2010-01-24 15:12:41

回答

10

您應該可以使用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(); 
} 

有MSDN上提供http://msdn.microsoft.com/en-us/library/dd564582(VS.85).aspx

+0

你應該添加一個Windows媒體播放器控制器的形式。 Deatailed here http://www.c-sharpcorner.com/UploadFile/e628d9/playing-audio-and-video-files-using-C-Sharp/ 而不是使用此代碼。 – matasoy 2017-11-05 17:37:06

2

多一點信息,您可以考慮使用的音頻/視頻在託管DirectX控件一個快速的解決方案:

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

如果您需要對視頻進行更多控制,或者更好地與應用程序集成,則可以使用DirectShow。有一個很好的C#互操作庫來訪問它(DirectShowLib)。

使用DirectShow的另外一個優點是,窗口將處理加載給定媒體類型所需的必要編解碼器和渲染組件。