Entwickler-Ecke

Sonstiges (.NET) - C#: Media Informationen aus dem Windows Media Player 12 lese


lord_fritte - Mo 14.12.09 07:08
Titel: C#: Media Informationen aus dem Windows Media Player 12 lese
Hallo ich möchte in einem eignen Programm Media Informationen zum Titel lesen der gerade im Windows Media Player 12 abgespielt wird.
Also erst mal möchte ich 2 Dinge klar stellen, damit es nicht zu Missverständnissen kommt.
1. Ich möchte in meinem Programm KEINEN eignen Player implementieren, sondern wirklich auf den Microsoft Windows Media Player 12 zugreifen und dort die Informationen auslesen.
2. Ich möchte auch nur Informationen aus der Musik Bibliothek.

Was ich auf jeden Fall auslesen möchte ist 1. der Player-Status, also spielt der Player was ab oder befindet er sich im Pause oder Stop modus, 2. ID3-Tag Informationen zum aktuellen abgespielten Lied(Titel, Interpret, Album, Track Nr, etc.),
oder nur der Pfad zur Datei, damit kann ich über eine id3Tag lib. Die Informationen selber auslesen.
Was auch interessant wär: Länge des Lied und aktuelle Position(in Millisekunden oder Sekunden, DateTime oder TimeSpan) und Anzahl der Titel und aktuelle Position in der Playlist.


Kha - Mo 14.12.09 19:37

Suche bei Google C# CONTROL WMP hat mich hierhin [http://social.msdn.microsoft.com/forums/en-US/clr/thread/dbd43d7e-f3a6-4087-be06-df17e76b635d] geführt. Sieht auf den ersten Blick gut aus :) .


lord_fritte - Mo 14.12.09 21:57

Hilft mir nicht wirklich weiter.. wie soll das jetzt genau funktionieren?

EDIT: Ah doch da hab ich was gefunden, ich schaus mir mal an, aber das ist doch weider ein Player, ich möchte nur Infotmationen lesen...


Kha - Mo 14.12.09 23:30

user profile iconlord_fritte hat folgendes geschrieben Zum zitierten Posting springen:
aber das ist doch weider ein Player, ich möchte nur Infotmationen lesen...
Nö, lies dir die Seite nochmal durch...


lord_fritte - Di 15.12.09 03:43

Ne.. ka.. ich komme nicht drauf....


lord_fritte - Mi 16.12.09 03:20

Also ich komme echt nicht weiter.. ich möchte auch kein Control haben! Ich möchte einfach eine Klasse aus der ich meine gewünschten Informationen lesen kann... Das soll wirklich überall laufen, Windows Anwendung, Konsolenanwendung, WPF-Anwedung


Kha - Mi 16.12.09 22:41

So, ich hab es mir nochmal angeschaut. Ich habe wenig Ahnung von COM, aber ohne dieses Control geht es wohl einfach nicht:
http://www.ureader.com/msg/13961280.aspx hat folgendes geschrieben:
If you want to get info about the application's current media, you need to
create an instance of the control in remote mode. See
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmplay10/mmp_sdk/remotingthewindowsmediaplayercontrol.asp


--
Jim Travis
Microsoft Corp.
Windows Media Player SDK

Ich gehe aber mal davon aus, dass es auch versteckt funktionieren sollte.

Danach benutzt du Westy_Works Code, um ein IWMPCore-Interface zu erhalten (dazu "Windows Media Player" als COM-Referenz hinzufügen), aus dem du dann die Informationen auslesen kannst. Derzeitiger Track-Fortschritt scheint aber nicht dabei zu sein.


Andere Idee: Bau ein WMP-Plugin (falls das überhaupt mit C# (sinnvoll) möglich ist :gruebel: ). Darin solltest du die gleichen Interfaces bekommen, ohne ein eigenes Control, musst dich dafür aber natürlich um die Kommunikation zu deinem Programm kümmern. last.fm scheint es so zu machen.


lord_fritte - Mo 28.12.09 01:05

Alle Links führen mich zu einer seite: Inhalt nicht gefunden

Den RemotedWindowsMediaPlayer habe ich mir auch schon angesehen, ich finde keine Properties mit denen ich was anfangen könnte.


Kha - Mo 28.12.09 01:36

user profile iconlord_fritte hat folgendes geschrieben Zum zitierten Posting springen:
Den RemotedWindowsMediaPlayer habe ich mir auch schon angesehen, ich finde keine Properties mit denen ich was anfangen könnte.
Deswegen der Verweis auf Westy_Works Code, der dir zeigt, wie du aus dem RemotedWindowsMediaPlayer die IWMPPlayer4-Schnittstelle extrahieren kannst, die dir ein paar bessere Member anbieten sollte.