2008-11-18 16 views
7

Quiero usar JavaScript para controlar un Reproductor de Windows Media incrustado, así como acceder a las propiedades que expone el reproductor. He encontrado algunos ejemplos de hacky en línea, pero nada concreto.¿Existe una API de JavaScript documentada para Windows Media Player?

Realmente necesito acceso para reproducir, pausar, detener, buscar, pantalla completa, etc. También me gustaría tener acceso a cualquier evento que el jugador transmita.

La ayuda sería maravillosa (ya tengo Flash Equiv, para que lo sepas), gracias!

Respuesta

6

Hay una API en el centro de desarrollo de Microsoft, pero solo funcionará si incrusta Windows Media Player utilizando active-x.

para "aprender" más sobre el API, echa un vistazo a MSDN: http://msdn.microsoft.com/en-us/library/dd564034(VS.85).aspx

+1

El enlace es para Media Player en Microsoft Windows CE .NET 4.2 No creo que ese sea el sistema operativo que realmente le importa –

4

Windows Media Player se expone como un control activex que cualquier lenguaje de scripts que se ejecute en el script de Windows debe poder acceder. Debería poder usar jscript para controlarlo. Jscript es la implementación de microsofts de script java. Para obtener información sobre qué objetos y métodos están disponibles usando jscript para windows media player se this link.

0

No existe una biblioteca de JavaScript abierta hasta donde yo sé para el manejo de un jugador WMP en el navegador. Sin embargo, this link debería facilitar el inicio de su propia pequeña biblioteca. Es posible que el código necesite algunas actualizaciones y pruebas en las versiones modernas de los navegadores, pero tiene los conceptos básicos allí.

La biblioteca de su búsqueda de que sería una gran idea para un proyecto de Google Code, supongo que si bien hoy todo el mundo está usando Adobe Flash con sIFR/swfobject o Microsoft Silverligt con sistr etc, no hay mucho interés para escribir la escritura del lado del cliente controlando para WMP.

+0

Lamentablemente tengo que tratar con un gran viejo cliente corporativo cuyo departamento de TI cree que la adición de Flash o Silverlight para el sistema operativo la imagen puede causar conflictos. Hurra por el trabajo del cliente ... gracias por el enlace, parece útil. – ironkeith

11

La API requiere ActiveX conectividad nativa a Internet Explorer, o puede utilizar un plugin for Firefox.

Aquí hay una página de muestra que podría ayudarlo a comenzar.

<html> 
<head> 
    <title>so-wmp</title> 
    <script> 

    onload=function() { 
     player = document.getElementById("wmp"); 
     player.URL = "test.mp3"; 
    }; 

    function add(text) { 
     document.body 
     .appendChild(document.createElement("div")) 
     .appendChild(document.createTextNode(text)); 
    }; 

    function handler(type) { 
     var a = arguments; 
     add(type +" = "+ PlayStates[a[1]]); 
    }; 

    // http://msdn.microsoft.com/en-us/library/bb249361(VS.85).aspx 
    var PlayStates = { 
     0: "Undefined", // Windows Media Player is in an undefined state. 
     1: "Stopped", // Playback of the current media item is stopped. 
     2: "Paused", // Playback of the current media item is paused. When a media item is paused, resuming playback begins from the same location. 
     3: "Playing", // The current media item is playing. 
     4: "ScanForward", // The current media item is fast forwarding. 
     5: "ScanReverse", // The current media item is fast rewinding. 
     6: "Buffering", // The current media item is getting additional data from the server. 
     7: "Waiting", // Connection is established, but the server is not sending data. Waiting for session to begin. 
     8: "MediaEnded", // Media item has completed playback. 
     9: "Transitioning", // Preparing new media item. 
     10: "Ready", // Ready to begin playing. 
     11: "Reconnecting" // Reconnecting to stream. 
    }; 

    </script> 
    <script for="wmp" event="PlayStateChange(newState)"> 
    // http://msdn.microsoft.com/en-us/library/bb249362(VS.85).aspx 
    handler.call(this, "playstatechange", newState); 
    </script> 
</head> 
<body> 
    <div id="page"> 
    <object id="wmp" 
     classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" 
      type="application/x-oleobject"> 
    </object> 
    </div> 
</body> 
</html> 
0

En caso de utilizar siguiente objeto WMP (funciona en Chrome, FF, Safari)

objPlayer = document.getElementById("wmp");   
    objPlayer.controls.stop(); 
    objPlayer.URL = this.url; 
    objPlayer.controls.play(); 

<EMBED id="wmp" TYPE="application/x-mplayer2" name="MediaPlayer" width="0" height="0" ShowControls="0" ShowStatusBar="0" ShowDisplay="0" autostart="0"></EMBED> 
Cuestiones relacionadas