Bonjour,
j'essaie d'ajouter à mon lecteur une playlist.
J'y parviens facilement avec l'objet WindowsMediaPlayer.
Mais pour utiliser un évènement change sur le changement d'un item j'utilise plutôt l'objet AxWindowsMediaPlayer.

voici le code:
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
 
using System.IO;
using AxWMPLib;
using WMPLib;
 
//déclaration de mon lecteur:
AxWindowsMediaPlayer playeraudio;
 
//sur le click d'un bouton:
 private void btnLectureAudio_Click(object sender, EventArgs e)
        {   
 
 // utilisation media player
            playeraudio = new AxWindowsMediaPlayer();
 
// Création playlist
            IWMPPlaylist playlist = playeraudio.playlistCollection.newPlaylist("maplaylist"); 
 
//ou :
            //var playlist = playeraudio.playlistCollection.newPlaylist("maplaylist");
 
//Indique le répertoire dans lequel chercher les fichiers audio
            DirectoryInfo dir = new System.IO.DirectoryInfo(RepMusic);
            FileInfo[] files = dir.GetFiles();
 
            //boucle sur les fichiers du répertoire
            foreach (FileInfo music in files)
            {
 
                var media = playeraudio.newMedia(music.FullName.ToString());
                playlist.appendItem(media); //remplit la playlist
            }
 
            playeraudio.currentPlaylist = playlist; //indique au player la playlist à utiliser
            playeraudio.settings.setMode("shuffle", true);// Configure le player en lecture aléatoire
 
//crée un évenement sur changement item de la playlist
            playeraudio.CurrentItemChange += new AxWMPLib._WMPOCXEvents_CurrentItemChangeEventHandler(playeraudio_CurrentItemChange);
 
//Lecture de la playlist
            playeraudio.Ctlcontrols.play();
            playeraudio.Ctlcontrols.next();
         }
 
        private void playeraudio_CurrentItemChange(object sender, _WMPOCXEvents_CurrentItemChangeEvent e)
        {
            string fichieraudio = Monaudio.RechercheNumChanson(playeraudio.currentMedia.name.ToString() + ".mp4");
            lbinfoLecture.Text = "La chanson n° " + fichieraudio + " est en cours de lecture";
            lbinfoLecture.Visible = true;
        }
voila le code, l'erreur se trouve ici:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
            // Création playlist
            IWMPPlaylist playlist = playeraudio.playlistCollection.newPlaylist("maplaylist");
le message d'erreur est celui-ci:
Une exception non gérée du type 'System.Windows.Forms.AxHost.InvalidActiveXStateException' s'est produite dans AxInterop.WMPLib.dll
en fait je souhaite afficher dans un label le n° de la chanson de l'item de la playlist qui est en cours de lecture...
Avec WindowsMediaPlayer j'arrive à créer ma playlist mais pas l'évenement sur currentitemchange.
Avec AxWindowsMediaPlayer je n'arrive pas à créer ma playlist mais je parvient à créer l'évenement...

Bref, si quelqu'un arrive à me guider, je suis preneur...
Quelqu'un a-t-il une idée svp?