C# - création d'une playlist avec AxWindowsMediaPlayer
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:
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:
1 2 3
|
// Création playlist
IWMPPlaylist playlist = playeraudio.playlistCollection.newPlaylist("maplaylist"); |
le message d'erreur est celui-ci:
Citation:
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?