Laden...

Mediaplayer Titel auslesen

Erstellt von sharky53 vor 18 Jahren Letzter Beitrag vor 15 Jahren 9.148 Views
S
sharky53 Themenstarter:in
2 Beiträge seit 2005
vor 18 Jahren
Mediaplayer Titel auslesen

hallo
ich versuche gerade ein kleines programm zu schreiben, welches mit den aktuellen titel der im windowsmediaplayer wiedergegeben wird anzeigt. bis jetzt hab ich leider noch nichts brauchbares gefunden um das umzusetzten.
hab schon mal wo gelesen, dass es nicht möglich ist auf den mediaplayer zuzugreifen.
vl. ist es mit dem messenger plugin möglich, da dieser den aktuellen song mit einem plugin vom mediaplayer ausließt, aber auch in dieser art habe ich leider noch nichts gefunden.
hat von euch wer eine gute idee vie ich den aktuellen titel bekomme?

mfg. sharky

T
34 Beiträge seit 2005
vor 18 Jahren

Hallo sharky53!

Ich weis zwar nicht ob dir dieser Code hilft, aber vieleicht ist das was du suchst =)



Process p = Process.GetProcessByName("wmplayer");

string titel = p.MainWindowTitle;


Den Code habe nur aus dem Gedächtnis, eventuel musst du ihn anpassen.

Fehlender Plan wir durch Wahnsinn erstezt!!

P
939 Beiträge seit 2003
vor 18 Jahren

Prinzipiell sollte es machbar sein.

So wie ich das sehe, ist der WMP als automation-fähige Anwendung ausgelegt. D.h., man kann die WMP-Bibliothek (system32/wmp.dll) als COM-Verweis in seine eigene Anwendung importieren und so die definierten COM-Typen bekannt machen. Über Marshal.GetActiveObject(progID) bekommt man ein COM-Interface zu der schon laufenden WMP-Instanz. ProgID könnte "WMPlayer.OCX" sein, weiss ich aber nicht genau (der String steht bei mir in der Registry unter "HKEY_CLASSES_ROOT\CLSID{6BF52A52-394A-11d3-B153-00C04F79FAA6}\ProgID").

Der zurückgegebene Type müsste IWMPCore sein (besser gleich IWMPCore3). Dort ist eine currentMedia-Methode definiert. Die wiederum liefert ein IWMPMedia-Objekt mit Name-Eigenschaft.

Gruss
Pulpapex

V
45 Beiträge seit 2004
vor 18 Jahren

Der MediaPlayer 10 (und ein paar Vorgänger) bieten doch die Möglichkeit PlugIns einzubinden. Die MSDN liefert das * klick * Evtl. ist es ja möglich ein PlugIn zu schreiben, dass die Titeldaten an dein Programm schickt 🤔
Leider hat der MP nicht so ein schönes Interface wie iTunes. iTunes kann man sehr schön über CSharp auslesen und steuern (Ich hatte hier auch mal in so eine Tut-Bibliothek ein kleines Tut gepostet, finde die Bib aber nicht mehr 8o)

(
39 Beiträge seit 2005
vor 18 Jahren

@ternanok : bei meinem windows media player steht der titel aber nicht im window name. da steht nur "Windows Media Player"

mfg

S
259 Beiträge seit 2004
vor 17 Jahren

Ist zwar schon etwas älter dieser Thread, aber ich wollte jetzt genau das gleiche machen und komme nicht weiter.

Und zwar möchte ich gerne die aktuelle Datei auslesen, die der WMP mittlerweile 11 abspielt. Ziel ist es das Album Cover in einer externen Anwendung dazustellen.

Ich kann mich zwar mit Process.GetProcessByName("wmplayer") in den WMP einklinken aber die finde ich nicht das Gesuchte.

Mit Marshal.GetActiveObject(progID) komme ich auch nicht weiter, da hier eine Exception auftritt.

System.Runtime.InteropServices.COMException
at System.Runtime.InteropServices.Marshal.GetActiveObject(Guid& rclsid, UInt32 reserved, Object& ppunk)
at System.Runtime.InteropServices.Marshal.GetActiveObject(String progID)

Kann mir da jemand helfen?

S
259 Beiträge seit 2004
vor 17 Jahren

Hat denn niemand eine Idee, wie man die Daten der aktuell abgespielten Datei im Windows Media Player auslesen kann?

3.003 Beiträge seit 2006
vor 17 Jahren

Vielleicht hilft dieser Artikel von CodeProject.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

2.921 Beiträge seit 2005
vor 17 Jahren

Hast Du es schonmal damit versucht:


player = new WMPLib.WindowsMediaPlayer();

WMPLib.IWMPPlaylist lista;
WMPLib.IWMPPlaylistCollection coll = player.playlistCollection;
WMPLib.IWMPPlaylistArray arr = coll.getAll();
int howmany = arr.count;

for(int i=0;i<howmany;i++)
{
    lista = arr.Item(i);
    Debug.WriteLine(lista.name + " : " + lista.count);
}


WMPLib.IWMPMedia media = lista.get_Item(0);
Debug.WriteLine(media.sourceURL);
Debug.WriteLine(media.name);
Debug.WriteLine(media.durationString);

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.

S
259 Beiträge seit 2004
vor 17 Jahren

Woher hast Du den Code?

Woher bekomme ich den player?

player = new WMPLib.WindowsMediaPlayer();
2.921 Beiträge seit 2005
vor 17 Jahren

Woher ich den Code habe?
Im Endeffekt aus dem Windows Media Player Sdk (http://msdn2.microsoft.com/en-us/library/aa969732.aspx)

Woher man den Player bekommt?
Der liegt normalerweise schon als wmp.dll unter C:\windows\system32 bereit.
Einfach die Referenz einbinden. Falls das nicht funktioniert mit tlbimp.exe eine Typelibrary erstellen, dann diese ins Projekt einfügen

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.

Z
43 Beiträge seit 2007
vor 16 Jahren

Ich muss dieses alten Thread nochmal rauskramen, denn es war der beste Treffer bei der Suche.

Ich versuche verzweifelt die SongTags von Winamp und dem WMP rauszubekommen. Mit dem Winamp klappt das auch (Songinfo von Winamp ermitteln). Aber mit dem WMP komme ich einfach nicht weiter.

Aber mit dem Windows Media Player komme ich nicht weiter. Weder das SDK spricht Bände, noch das Beispiel von dr4g0n76 funktioniert. Hat vielleicht jemand aktuellere Tips/Tricks, wie ich die Sache angehe?

S
26 Beiträge seit 2008
vor 15 Jahren

//edit: Bisher konnte ich es auch noch nicht hinbekommen.

So wie es aussieht kann man mit der SDK nur windows media player dienste benutzen aber nicht auf den player und seine Daten zugreifen.

Hab mich jetzt nochmal umgeschaut.
Eine Möglichkeit ist ein Plugin für Windows Media Player zu schreiben, dass dann die Daten an das eigene Programm übergibt.

Es gibt einen c# Wrapper:
Wrapper

Allerdings ist diese dll nirgends mehr zu finden.