Bonjour,

C'est mon premier poste, je ne sais pas si je suis dans la bonne partie du forum, si ce n'est pas le cas j'en suis désolé.

Voici mon problème :

J'essaie de comprendre l'utilisation de "audiovideoplayback", j'ai suivit quelques tutoriels par ci par là mais j'ai toujours le même problème : Mon programme bloque.

Voici mon event' pour sélectionner un fichier. Avec ce code, mon logiciel bloque. Et quand je passe en pas-à-pas, je ne rentre jamais dedans...
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
 
private void btn_Parcourir_Click(object sender, RoutedEventArgs e)
        {
            Stream myStream = null;
            OpenFileDialog ofd = new OpenFileDialog();
 
            ofd.Filter = "Fichiers Audio|*.mp3;*.wma";
            ofd.Title = "Ouvrir un fichier musical";
 
 
 
            if (ofd.ShowDialog().ToString() == "OK")
            {
                try
                {
                    if ((myStream = ofd.OpenFile()) != null)
                    {
                        using (myStream)
                        {
                            label_CurrentPiste.Content = ofd.FileName;
                            try
                            {
                                if (lecture == true)
                                {
                                    lecteur.Stop();
                                    lecteur.Dispose();
                                }
                                lecteur = new Audio(ofd.FileName);
                                lecteur.Play();
                                chemin = ofd.FileName;
                                lecture = true;
                            }
                            catch (Exception ex)
                            {
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    label_CurrentPiste.Content = "Impossible de lire le fichier audio " + ex.Message;
                }
            }
        }
Par contre ici, je rentre bien après le clique (en remplaçant tout le contenue précédent).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
private void btn_Parcourir_Click(object sender, RoutedEventArgs e)
{
        MessageBox.Show("test");
}
J'ai téléchargé ce fichier qui est proposé par developpez. Mis à part quelques problèmes de compatibilité pour le lancement, je n'ai aucun soucis. Je peux parcourir mes fichiers et les lires.
Pour info, le code pour parcourir les fichiers (dans le programme du site) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
private void button3_Click(object sender, System.EventArgs e)
		{
			if ( openFileDialog1.ShowDialog() == DialogResult.Cancel )
			{
				return;
			}
			else
			{
				textBox1.Text = openFileDialog1.FileName;
			}
		}
Et pour lire le fichier :
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
private void button1_Click(object sender, System.EventArgs e)
		{
			if ( textBox1.Text.Length == 0 )
			{
				MessageBox.Show("Erreur, vous devez sélectionner un fichier audio à jouer", "Erreur");
			}
			else
			{
				// Si l'objet existe déjà
				if ( FichierAudio != null )
				{
					// On le supprime
					FichierAudio.Dispose();
				}
 
				// Création d'un objet Audio
				// En paramètre, on passe le chemin du fichier à jouer
				FichierAudio = new Audio(textBox1.Text);
 
				// Lecture du fichier audio
				FichierAudio.Play();
			}
		}
J'ai donc modifier certains point dans mon code, j'ai enlever la lecture automatique (dans mon code), et je peux parcourir les fichiers, mais en revanche, mon logiciel bloque si je veux mettre "Play".
Le code enlevé est :
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
try
                            {
                                if (lecture == true)
                                {
                                    lecteur.Stop();
                                    lecteur.Dispose();
                                }
                                lecteur = new Audio(ofd.FileName);
                                lecteur.Play();
                                chemin = ofd.FileName;
                                lecture = true;
                            }
                            catch (Exception ex)
                            {
                            }
Merci de m'avoir lu. En espérant que vous pourriez m'aider.