IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

C# - création d'une playlist avec AxWindowsMediaPlayer [Débutant]


Sujet :

C#

  1. #1
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut 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 : 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?
    @+

    Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
    Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
    Ou sur si ce n'est pas le cas

  2. #2
    Membre confirmé Avatar de Julien698
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2013
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2013
    Messages : 237
    Points : 473
    Points
    473
    Par défaut
    Salut,

    Tu peux tenter de supprimer, puis de recréer ta référence sur la dll. Vérifie la version de la dll, s'il s'agit d'une x32 ou x64 et aussi le Framework sur lequel elle fonctionne !

    De même dans tes using tu mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    using AxWMPLib;
    using WMPLib;
    Pour la déclaration ce ne serait pas plutôt un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WMPLib MaPlaylist = new WMPLib();
    ou bien,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AxWMPLib Maplaylist = new AxWMPLib();

  3. #3
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Bonjour Julien
    merci de ta réponse
    je ne crois pas que cela règlera mon problème car sur le site MSDN voici ce qu'il est dit:

    Examples

    The following example creates a new empty playlist called "ThreeList", adds it to the playlist collection, and returns an interface to it. The AxWMPLib.AxWindowsMediaPlayer object is represented by the variable named player.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Add a new empty playlist, named ThreeList, to the playlist collection.
    WMPLib.IWMPPlaylist newList = player.playlistCollection.newPlaylist("ThreeList");
    je reprends donc dans mon code l'exemple de MSDN.
    qui fonctionne avec l'objet WindowsMediaPlayer, mais pas avec AxWindowsMediaPlayer...
    @+

    Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
    Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
    Ou sur si ce n'est pas le cas

  4. #4
    Membre confirmé Avatar de Julien698
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2013
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2013
    Messages : 237
    Points : 473
    Points
    473
    Par défaut
    Un autre truc, as-tu bien enregistré la dll via regsvr ?

  5. #5
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Bonjour Julien,
    Non dsl ça ne peut résoudre mon problème. J'ai pris une autre approche. Au lieu d'instancié le contrôle AxWindowsMediaPlayer, je l'ai directement incorporé dans ma Form avec pour nom playeraudio. J'ai mis la propriété visible du contrôle à false, pour ne pas l'afficher.
    Pour ma Liste de Lecture, j'en ai créé une au format wpl avec le lecteur media player de Windows que j'ai mis dans le dossier ou se trouve mes médias.
    Je renseigne avec la propriété URL du contrôle le chemin et le nom de ma playlist.
    ET tout fonctionne Bien...
    je peux même ajouter un événement sur chaque changement d'item de la playlist...
    En gros j'ai contourné mon problème...

    voici mon 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
     
    private void btnLectureAudio_Click(object sender, EventArgs e)
            {
     
                string ListLecture = RepMusic + "List_music.wpl";// Chemin + Nom de ma playlist
                playeraudio.URL = ListLecture;//Indique au player ou se trouve ma playlist
     
                playeraudio.settings.setMode("shuffle", true);// Configure le player en lecture aléatoire
     
                //Lecture de la playlist
                playeraudio.Ctlcontrols.play();// Joue la playlist
                playeraudio.Ctlcontrols.next();//Pour ne pas toujours jouer le même morceau à chaque envoie de la playlist demande jouer le morceau suivant
     
                //crée un évenement sur changement item de la playlist
                playeraudio.CurrentItemChange += new AxWMPLib._WMPOCXEvents_CurrentItemChangeEventHandler(playeraudio_CurrentItemChange);
     
                string fichieraudio = playeraudio.Ctlcontrols.currentItem.getItemInfo("Title");
     
            }
     
    private void playeraudio_CurrentItemChange(object sender, AxWMPLib._WMPOCXEvents_CurrentItemChangeEvent e)
            {
     
                //ici je met le code que je souhaite faire lorsque je change d'item...
            }
    Pour moi c'est résolu.
    Merci
    @+

    Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
    Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
    Ou sur si ce n'est pas le cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création d'une table avec foreign key.
    Par Paulinho dans le forum Débuter
    Réponses: 6
    Dernier message: 01/12/2005, 18h47
  2. création d'une carte avec navigation du type mappy
    Par BernardT dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 30/10/2005, 01h24
  3. Création d'une table avec foreign key
    Par lepierre dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/09/2004, 14h20
  4. [Débutante] Création d'une image avec un composant
    Par gwendo dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 09/07/2004, 09h58
  5. Création d'une base avec IbConsole
    Par Lucien dans le forum Outils
    Réponses: 3
    Dernier message: 02/03/2004, 18h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo