Bonjour je suis étudiant en programmation pour mon loisirs j'ai décider de programmer un lecteur video-audio en c#. J'ai utiliser la référence suivante:
Microsoft.DirectX.AudioVideoPlayback en instanciant un objet Video mais lorsque je souhaite ouvrir la video avec une commande OpenFileDialog le programme se bloque totalement lorsque l'objet Video est initialiser apres plusieurs tentative et recherche sur internet je me tourne vers vous pour trouver une solution.
Mon compilateur est visual c# express 2010.
Voici le code que j'ai écris:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Video myVideo;
        public Audio MonAudio;
        public int nb = 0;
        public ThreadStart start;
        public Thread tread;
        string VideoaLire = "";
        public Form1()
        {
            InitializeComponent();
        }
 
        private void ouvrirToolStripMenuItem_Click(object sender, EventArgs e)
        {
 
            OpenFileDialog OuvrirVideo = new OpenFileDialog();
            OuvrirVideo.RestoreDirectory = true;
            if (OuvrirVideo.ShowDialog() == DialogResult.OK)
            {
                //myVideo = au chemin de OuvrirVideo
                myVideo = new Video(OuvrirVideo.FileName);
                //on met le chemin dans lb_nom
                lb_nom.Text = OuvrirVideo.FileName;
                //la cible pour la video est lb_video(une label)
                myVideo.Owner = lb_video;
                //la taille de la video
                myVideo.Size = new Size(295, 195);
 
            }
        }
 
        public void tousvider()
        {
            try
            {
                if (myVideo != null)
                {
                    nb = 0;
                    if (myVideo.Playing == true)
                    {
                        myVideo.Stop();
                    }
                    if (tread != null)
                    {
                        tread = null;
                        start = null;
                    }
                    myVideo = null;
                }
            }
            catch (Exception q)
            {
                MessageBox.Show(q.ToString(), "Erreur");
            }
        }
 
        public void InitVideo(string VideoaLire)
        {
            //myVideo = au chemin de openfile
            myVideo = new Video(VideoaLire);
            //on met le chemin dans lb_nom
            lb_nom.Text = VideoaLire;
            //la cible pour la video est lb_video(une label)
            myVideo.Owner = lb_video;
            //la taille de la video
            myVideo.Size = new Size(295, 195);
            //on met dans le status que la video est prête a être lue
 
           // status.Text = "Video séléctioner, clicker sur \"Jouer\",pour démarrer la video";
            //le volume = a la trackbar
            //myVideo.Audio.Volume = track.Value;
 
            //ici on calcule le temps total 
            //on met dans secondesEnCours le total de secondes en tous
            int secondesEnCours = (int)myVideo.Duration;
            //ici on regarde pour les heures
            int heures = secondesEnCours / 3600;
            //ici pour les minutes
            int minutes = secondesEnCours / 60;
            //ici pour les seconde
            int secondes = (secondesEnCours - (minutes * 60));
            //temps.Text = String.Format("{0:D2}:{1:D2}:{2:D2}", heures, minutes, secondes);
        }
 
    }
}
Merci d'avance. Bonne journée