Wie interagieren Sie mit dem Windows Media Player in C#
Frage
Ich bin auf der Suche nach einem Weg, um interagieren mit einer standalone-Vollversion von Windows Media Player.
Meist muss ich wissen, den Pfad des aktuell gespielten track.
ITunes SDK macht das wirklich einfach, aber leider gibt es wirklich keinen Weg, es zu tun mit dem Windows Media Player, zumindest nicht in .Net(C#) ohne schwere Verwendung von pinvoke, die ich mich nicht wirklich wohl.
Vielen Dank
Just to clearify:Ich will nicht eingebettet, eine neue Instanz des Windows Media Player in meiner app, aber anstatt Steuern/Lesen Sie die "echte" Vollversion der Windows Media Player gestartet, seperatly durch den Benutzer
Lösung
Ich hatte diese https: //social.msdn.microsoft.com/Forums/vstudio/en-US/dbd43d7e-f3a6-4087-be06-df17e76b635d/windows-media-player-remoting-in-c?forum=clr in meinen Lesezeichen aber haben es sowieso nicht getestet. Nur ein Zeiger in der richtigen Richtung. Es ist nichts offiziell und wird ein bisschen graben benötigen, aber Sie sollten einen ziemlich einfachen Wrapper bekommen (die PInvoke unter der Haube verwendet immer noch - aber Sie werden es nicht sehen). Um Windows Media Player
Ich hoffe, das hilft.
Oh, ich falsch verstanden. Ich dachte, Sie sprachen über die aktuell laufenden Windows Media Player-Instanz zu steuern. Wenn Sie Windows Media Player hosten sich dann WMPLib ist sicherlich die bessere Lösung.
Andere Tipps
Fügen Sie einfach einen Verweis auf wmp.dll (\ windows \ system32 \ wmp.dll)
using WMPLib;
Und dann können Sie einen Media-Player
instanziiertvar Player = new WindowsMediaPlayer();
// Load a playlist or file and then get the title
var title = Player.controls.currentItem.name;
Siehe Erstellen des Windows Media Player-Steuerungs Programmatically weitere Informationen
Sie den Windows Media Player für Remoting können Sie die IWMPRemoteMediaServices Schnittstelle verwenden, um den Stand-alone Windows Media Player zu steuern. Und Sie sollten alle Informationen lesen können Sie wie Titel oder Dateinamen von Ihrem WMP Player Objekt wollen. Leider gibt es keinen smaple Code C # im SDK enthalten. Sie können die Dateien von hier: http://d.hatena.ne.jp/punidama/20080227 für die Datei suchen WmpRemote.zip Ursprünglich ist es von hier: http://blogs.msdn.com/ ericgu / Archiv / 2005/06/22 / 431783.aspx
Dann müssen Sie auf das Windows Objekt geworfen: RemotedWindowsMediaPlayer rm = new RemotedWindowsMediaPlayer (); WMPLib.WindowsMediaPlayer MyPlayer = this.GetOcx () als WMPLib.WindowsMediaPlayer;
und dort .. Sie gehen
Die besten Informationen, die ich zur Interaktion mit Windows Media Player gesehen habe, sind diese Artikel geschrieben von Stephen Toub.
Er listet eine ganze Reihe verschiedener Möglichkeiten zum Abspielen von DVR-MS-Dateien auf (es spielt dabei allerdings keine Rolle, welches Format sie haben).Der Teil, der für Sie möglicherweise von Interesse ist, betrifft die Verwendung eines Media Player ActiveX-Steuerelements, das Sie der Visual Studio-Toolbox hinzufügen können, indem Sie mit der rechten Maustaste klicken und das Windows Media Player ActiveX COM-Steuerelement hinzufügen.Anschließend können Sie den Player in Ihre App einbetten und auf verschiedene Eigenschaften des Media Players zugreifen, beispielsweise auf die URL:
WMPplayer.URL = stringPathToFile;
Diese Lösung ist möglicherweise nicht das, was Sie wollen, da sie eine neue Instanz des Media Players startet (soweit ich weiß), sie weist Sie jedoch möglicherweise in die richtige Richtung.