2010-01-24 6 views
5

J'aime lire des fichiers vidéo, tels que les AVI, grâce à mon programme C#. Est-il possible de lire des fichiers vidéo comme ça?Comment puis-je lire des fichiers vidéo?

+1

Quels fichiers vidéo? Vous devez être beaucoup plus précis. Quel format? Quel type de conteneur? – Cromulent

+0

l'un des formats vidéo – ratty

+0

La prise en charge de tous les formats vidéo est délicate sur Windows, en raison de la prise en charge de tous les codecs, et les fichiers MPEG peuvent être parfois difficiles. – Kazar

Répondre

10

Vous devriez pouvoir utiliser le contrôle Media Player pour lire les fichiers multimédias.

Exemple de lecture audio de http://msdn.microsoft.com/en-us/library/dd562692(VS.85).aspx, vous devriez être en mesure de l'adapter à la vidéo:

// [ 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(); 
} 

Il y a un peu plus d'informations disponibles sur MSDN à http://msdn.microsoft.com/en-us/library/dd564582(VS.85).aspx

+0

vous devez ajouter un contrôleur Windows Media Player au formulaire. Deatailed ici http://www.c-sharpcorner.com/UploadFile/e628d9/playing-audio-and-video-files-using-C-Sharp/ Et que d'utiliser ce code. – matasoy

2

Vous pouvez envisager d'utiliser l'Audio/Vidéo contrôles dans DirectX géré comme une solution rapide:

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

Si vous avez besoin de plus de contrôle sur la vidéo ou d'une meilleure intégration avec votre application, vous pouvez utiliser DirectShow. Il y a une bonne bibliothèque d'interopérabilité C# pour y accéder (DirectShowLib). Un autre avantage de l'utilisation de DirectShow est que Windows va gérer le chargement des codecs nécessaires et des composants de rendu nécessaires pour un type de média donné.

Questions connexes