2008-09-11 78 views
9

Estoy buscando una forma de interactuar con una versión completa independiente de Windows Media Player.
Principalmente necesito saber la ruta de la pista actualmente reproducida.Cómo interactuar con Windows Media Player en C#

iTunes SDK 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 un uso intensivo de pinvoke, que no me siento cómodo con.

Gracias

Sólo clearify: Yo no quiero incorporado una nueva instancia de Windows Media Player en mi aplicación, pero en lugar de controlar/leer la "verdadera" versión completa de Windows Media Player, iniciado por éste por separado el usuario

Respuesta

2

Tuve este https://social.msdn.microsoft.com/Forums/vstudio/en-US/dbd43d7e-f3a6-4087-be06-df17e76b635d/windows-media-player-remoting-in-c?forum=clr en mis marcadores, pero aún NO lo he probado. 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, he entendido mal. 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.

+0

¿Quisiste hace un enlace a algo ...? –

+1

Creo que eso es lo que él quería ... una forma de acceder y controlar una instancia actualmente en ejecución de WMP. –

+0

Muchas gracias, esto era exactamente lo que estaba buscando, funcionó a las mil maravillas. Has resuelto mi problema. Pasé 2 días resolviendo en 6 minutos, ¡increíble! ¡Gracias! – eric

7

Sólo tiene que añadir una referencia a Wmp.dll (\ windows \ system32 \ wmp.dll)

using WMPLib; 

Y a continuación, puede crear una instancia de un reproductor de medios

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

Ver Creating the Windows Media Player Control Programmatically para más información

+7

este enfoque no puede interactuar con la instancia de WMP "independiente". – smwikipedia

1

La mejor información que he visto sobre la interacción con Windows Media Player es esta article escrita por Stephen Toub.

Él enumera una gran cantidad de formas diferentes de reproducir archivos dvr-ms (en realidad no importa el formato que tengan). 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. A continuación, puede incrustar el reproductor en su aplicación, y acceder a diversas propiedades de Media Player, como la url:

WMPplayer.URL = stringPathToFile; 

Esta solución es, posiblemente, no lo que quiere porque está comenzando una nueva instancia de Media Player (por lo que Lo sé), sin embargo, podría indicarle la dirección correcta.

4

Para conectar el Windows Media Player de manera remota, 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 este punto: http://d.hatena.ne.jp/punidama/20080227 buscar el archivo WmpRemote.zip Originalmente es de aquí: http://blogs.msdn.com/ericgu/archive/2005/06/22/431783.aspx

entonces usted tiene que echar al objeto WindowsMediaPlayer: RemotedWindowsMediaPlayer rm = new RemotedWindowsMediaPlayer(); WMPLib.WindowsMediaPlayer myPlayer = this.GetOcx() como WMPLib.Reproductor de medios de Windows;

y listo ...

Cuestiones relacionadas