Cómo interactuar con Windows Media Player en C #

Estoy buscando una manera de interactuar con una versión completa independiente de Windows Media Player.
Sobre todo, necesito saber el camino de la pista que se reproduce actualmente.

El SDK de iTunes hace que esto sea realmente fácil, pero desafortunadamente no hay forma de hacerlo con Windows Media Player, al menos no en .Net (C #) sin ningún uso intensivo de pinvoke, con lo que no estoy realmente cómodo.

Gracias

Solo para aclarar: no quiero incrustar una nueva instancia de Windows Media Player en mi aplicación, sino controlar / leer la versión completa “real” de Windows Media Player, iniciada por separado por el usuario

Tenía este https://social.msdn.microsoft.com/Forums/vstudio/en-US/dbd43d7e-f3a6-4087-be06-df17e76b635d/windows-media-player-remoting-in-c?forum=clr en mi marcadores, pero NO lo han probado de todos modos. Solo un puntero en la dirección correcta. No es nada oficial y requerirá un poco de excavación, pero debería obtener un envoltorio bastante simple (que aún usará PInvoke debajo del capó, pero no lo verá) en Windows Media Player.

Espero que ayude.

Oh, lo malentendí. Pensé que hablabas de controlar la instancia actual de Windows Media Player. Si aloja Windows Media Player usted mismo, entonces WMPLib es sin duda la mejor solución.

Simplemente agregue una referencia a wmp.dll (\ windows \ system32 \ wmp.dll)

using WMPLib; 

Y luego puedes instanciar un reproductor multimedia

 var Player = new WindowsMediaPlayer(); // Load a playlist or file and then get the title var title = Player.controls.currentItem.name; 

Consulte Creación de Windows Media Player Control mediante progtwigción para obtener más información

Para el uso remoto de Windows Media Player, puede usar la interfaz IWMPRemoteMediaServices para controlar el Windows Media Player independiente. Y debería poder leer todas las informaciones que desee como título o nombre de archivo desde su objeto de jugador WMP. Desafortunadamente no hay un código de C # smaple en el SDK incluido. Puede obtener los archivos desde aquí: http://d.hatena.ne.jp/punidama/20080227 Busque el archivo WmpRemote.zip Originalmente es de aquí: http://blogs.msdn.com/ericgu/archive/2005 /06/22/431783.aspx

Luego debe convertir al objeto WindowsMediaPlayer: RemotedWindowsMediaPlayer rm = new RemotedWindowsMediaPlayer (); WMPLib.WindowsMediaPlayer myPlayer = this.GetOcx () como WMPLib.WindowsMediaPlayer;

y ahí vas …

La mejor información que he visto al interactuar con Windows Media Player es este artículo escrito por Stephen Toub.

Él enumera una gran cantidad de maneras diferentes de reproducir archivos dvr-ms (en realidad no importa qué formato sean para esto). El bit que posiblemente le interese se trata de usar un Control ActiveX de Media Player, que puede agregar a la caja de herramientas de Visual Studio haciendo clic derecho y agregando el Control COM ActiveX de Windows Media Player. Luego puede insertar el reproductor en su aplicación y acceder a varias propiedades de Media Player, como la url:

 WMPplayer.URL = stringPathToFile; 

Posiblemente, esta solución no es la que usted desea porque está comenzando una nueva instancia de Media Player (hasta donde yo sé), sin embargo, podría indicarle la dirección correcta.