begin process at 2012 05 30 12:29:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Multimédia

 > 

WMP


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

WMP

mercredi 20 mai 2009 à 15:41:20 | WMP

romainvv

Bonjour,
Je cherche à créer un une application qui récupère  la playlist en court du Lecteur Windows Media, j'ai cherché un code similaire et j'ai trouvé ceci  : http://www.wiremote.com/ .
J'ai téléchargé le code source mais c'est en C#, je me demandais si il serait possible de faire l'équivalent de ses quelques lignes si dessous en c/c++
Merci



--------------------------------------------------


#region Using directives

using System;
using System.Text;
using System.Collections.Generic;
//using Microsoft.MediaPlayer.Interop;
using Microsoft.Win32;

#endregion


namespace WIremote
{
    /// <summary>
    /// Description of MediaPlayer.
    /// </summary>
    public class MediaPlayer
    {
        private WMPLib.WindowsMediaPlayerClass Player;
        private WMPLib.IWMPPlaylist allPlaylists;
        private WMPLib.IWMPPlaylistArray playlistArray;

        private MediaFarm mediaFarm;
        private List<int> p_playlistIds = new List<int>();

        private Log log;

        public enum playerStatus { Waiting, Play, Stop, Pause };

        private enum modes { None, Audio, Radio, Video };
        private enum infobarmodes { Normal, Change, Add }
        private enum renderCommands {
            SearchBar, PlayBar, InfoBar, InfoBarRadio,
            SearchResult, MediaCollection, MediaCollections, RadioStation,
            Main, MainWithSearch }

        private renderCommands renderCommand;
        private playerStatus status;
        private modes mode;

        private string idString;
        private int idInt;
        private bool idOkay;

        private HtmlString html = null;
        private infobarmodes infobarmode = infobarmodes.Normal;
        private MediaTemplates myTemplates = null;


        public MediaPlayer()
        {
            log = Log.Instance;

            Player = new WMPLib.WindowsMediaPlayerClass();

            log.Debug("MediaPlayer.cs", "MediaPlayer() - start");

            if (Player == null)
            {
                Message.Instance.MessageBoxAndExit(
                    Message.messageCode.NoWindowsMediaPlayerConnectionMediaPlayer);
            }

            status = playerStatus.Waiting;
            mode = modes.None;

            ClearPlaylist();

            playlistArray = Player.playlistCollection.getAll();
            mediaFarm = new MediaFarm();

            log.Debug("MediaPlayer.cs", "MediaPlayer() - end");
        }

        public void Play()
        {
            Player.controls.play();
            Status = playerStatus.Play;
        }

        public void Resume()
        {
            Player.controls.play();
            Status = playerStatus.Play;
        }

        public void Stop()
        {
            Player.controls.stop();
            Status = playerStatus.Stop;
        }

        public void Previous()
        {
            Player.controls.previous();
        }

        public void Next()
        {
            Player.controls.next();
        }

        public void Pause()
        {
            Player.controls.pause();
            Status = playerStatus.Pause;
        }


        //
        // PLAYLIST
        //

        public void ClearPlaylist()
        {
            WMPLib.IWMPPlaylist newPlaylist = Player.mediaCollection.getByName("WIremote");
            
            if (newPlaylist == null)
            {
                Player.currentPlaylist = Player.newPlaylist("WIremote");
                Player.currentPlaylist.clear();
            }
            else {
                Player.currentPlaylist = newPlaylist;
            }
            p_playlistIds.Clear();
        }

        public void AddToPlaylist(int var)
        {
            Player.currentPlaylist.appendItem(mediaFarm.GetItem(var));
            p_playlistIds.Add(var);
        }

        private bool existInPlaylist(int id)
        {
            bool res = p_playlistIds.Contains(id);
            return res;
        }


...
...

mercredi 20 mai 2009 à 15:59:51 | Re : WMP

CptPingu

Administrateur CodeS-SourceS
Non, ce n'est pas possible. Le problème ne vient pas de la difficulté de traduction C# vers C++, mais le fait que les bibliothèques utilisées n'ont pas d'équivalent (ou pas les mêmes).
mercredi 20 mai 2009 à 16:06:54 | Re : WMP

fregolo52

Membre Club
euh ca utilise Microsoft.MediaPlayer.Interop, en général, qui dit interop dit ActivX, objet COM ... Donc plus facile a faire en cpp.
 
Les prototypes des méthodes des interfaces IWMPPlaylistArray,IWMPPlaylist me font bcp penser au cpp.
mercredi 20 mai 2009 à 17:30:51 | Re : WMP

romainvv

Oui les protorypes telle que IWMPPlaylist existe dans wmp.h dans le framework sdk http://msdn.microsoft.com/en-us/library/bb821536.aspx
on le voit d'ailleurs bien ici : http://www.cppfrance.com/codes/LECTEUR-CLIPS-VIDEO_33111.aspx
mais le problème c'est que dans cette source (celle en c++), on utilise un WMP avec ActiveX que l'on greffe a la fenetre (si j'ai bien compris).
Dans l'exemple en C# il parvient je ne sais pas comment a récupérer l'application WMP déja créé.
Je pense que c'est du à cette ligne la : Player = new WMPLib.WindowsMediaPlayerClass(); mais je n'ai trouvé aucune documentation sur msdn en parlant :s
mercredi 20 mai 2009 à 17:39:32 | Re : WMP

fregolo52

Membre Club

Je n'en suis pas sure, mais a mon avis WindowsMediaPlayerClass vient de :
- using Microsoft.MediaPlayer.Interop; et
- d'une éventuelle référence ajoutée au projet c#.

tu n'as que ce bout de code c# ou tout le projet ?
mercredi 20 mai 2009 à 21:00:16 | Re : WMP

romainvv

J'ai tout le projet, il a WMPLib.dll dedans aussi
jeudi 21 mai 2009 à 17:52:48 | Re : WMP

romainvv

J'ai trouvé ceci qui utilise aussi WMPLib.ddl : http://www.cppfrance.com/codes/CPLUSPLUS-WIN32-API-UTILISATION-CONTROLES-ACTIVEX-SUR-DIALOGUES_25850.aspx C'est bien joli et tout mais wmp.tlh et wmp.tli on l'air de source qui sont généré avec VC a partir de la dll, et j'ai aucune idée de comment l'utiliser
vendredi 22 mai 2009 à 20:30:56 | Re : WMP

romainvv

J'ai compris l'utilité du .tli .tlh j'ai essayé de compiler le projet du monsieur, mais j'ai deux erreur : _bstr_t WMPLib::IUPnPService_IWMPUPnPBinaryControlDual::GetCurrentState(void)' : fonction membre déjà définie ou déclarée WMPLib::IUPnPService_IWMPUPnPBinaryControlDual::GetCurrentState' : redéfinition ; spécificateurs implementation_key différents Les deux erreurs étant dans wmp.tlh, si j'essaye de mettre en commentaire le doublon, cela ne sert a rien car le fichier est a chaque fois regénéré à la compilation. Quelqu'un a une idée ?
vendredi 22 mai 2009 à 20:50:34 | Re : WMP

romainvv

J'ai trouvé il fallait wmp.dll de wmp 9, je pensais avoir une interface semblable au lecteur windows media mais non :s


Cette discussion est classée dans : public, private, void, player, mediaplayer


Répondre à ce message

Sujets en rapport avec ce message

Question sur l'heritage et classes [ par Darkneon ] Salut,J'aimerai savoir si c'est possible qu'un changement de donnee dans une classe de base affecte les 2 classes heritees?Par exemple :#include &lt Attributs public [ par oberown ] Est-ce qu'on est toujours obligé de mettre ses attributs en private ? Est-ce que le mettre en private fait du code plus propre ?Pour faire de la séria push_back [ par rems38 ] bonjour,j'ai un programme visual ds lequel il y a :"MixArrayCurr->push_back(*new  TMIX(mixcurr))"cette instruction devait remplacer une autre faite so /* * Classe CWindow */ template <typename T> class CWindow: public CSingleton<T> { private: protected: GtkWidget* pwindow; public: CWindow(); void init(void); Warning de compilation - méthodes virtuelles [ par neodelphi ] Bonjour tout le monde, Je suis en train de coder une classe et j'ai besoin de définir une méthode virtuelle pure. Ma première question est quelle est Probleme URGENT (merci) [ par MATHIS49 ] Bonjour , j'ai un gros probleme, j'aimerais savoir pourquoi jai un probleme avec ma methode virtuel lors de la compilation  !Mon script :///////////// Probleme lien bouton [ par spounk77 ] bonsoir,j'aurai besoin de votre aide, je suis en train de réaliser un programme en WinForms et je n'arrive pas a donner un lien a mon bouton. Je m'exp Programmation propre avec VC++ [ par cipher16 ] Bonjour,j'ai débuté la prgrammation avec VC++ ... mon logiciel fonctionne, et tout et tout. Mais je pose une question : comment faire pour programmer Dilemme de classe [ par tintin72 ] Bonjour, Dans mon programme j'utilise une liste chainée représentée par une classe Element.Les membres 'suivant', 'precedent' etc sont 'private' et le probleme de sérialisation d'une CList. [ par bwoufy86 ] Voila je developpe une petit base en c++ ou je veux mémoriser une liste chainées ( CList) mais j'ai des soucis dans la sérialisation.Je n'arrive pas a Variables globales & Putain de !!! [ par PascalBernard57 ] Bonjour, je tourne en rond !! et Je suis null en C++ J'ai crée un projet sous VS 2003 type W forms .NET pour simplifier la construction de l'enterfac


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales