WinAPI/COM: WindowsMediaPlayer steuern



  • Hallo,

    ich versuche gerade, den geöffneten WMP über ein anderes Programm(Konsole) zu steuern. Also die Wiedergabe bspw. zu pausieren.

    Allerdings finde ich nicht das korrekte Interface (denke ich).
    Mittlerweile bin ich mir auch gar nicht mehr so sicher, ob das überhaupt geht. Oder ob man nur die WMP-engine nutzen kann und dann diese Instanz sharen kann, sodass andere Programme diese Wiedergabe dann steuern können.

    bb

    PS: Bisher habe ich es - vereinfacht - mit

    IWMPCore* wmp;
      CoCreateInstance(__uuidof(WindowsMediaPlayer), NULL, CLSCTX_INPROC_SERVER, __uuidof(IWMPCore), (void**)&wmp);
    
    IWMPControls* ctrl;
      wmp->get_controls(&ctrl);
    
    double pos;
      ctrl->get_currentPosition(&pos);
    

    versucht. Bekomme aber immer pos = 0 heraus. pause/stop schlägt richtig fehl: return value= 856325 (ansonsten immer S_OK )
    Vermutlich, weil ich nicht gar nichts wiedergeben kann und weil ich nichts pausieren/stoppen kann, was nicht abgespielt wird.



  • vll gabs ja nur keine antwort, weil die konkrete frage fehlte(sry^^):
    ist das überhaupt möglich?
    wenn ja: wie?^^



  • Erzeugst du damit nicht lediglich eine eigene WMP-Instanz innerhalb deines Programms?
    Ich denke nicht das man damit andere WMP-Instanzen steuern kann.

    Remoting dürfte sein was du brauchst:
    http://msdn.microsoft.com/en-us/library/windows/desktop/dd564264.aspx

    ...benutzen die z.B. auch hier (allerdings mit C#):
    http://stackoverflow.com/questions/10957181/retrieve-song-name-from-wmp-using-c-sharp


Anmelden zum Antworten