Existe-t-il une API de JavaScript documentée pour Windows Media Player?

Je veux utiliser JavaScript pour contrôler un Windows Media Player intégré, ainsi que d'accéder à toutes les propriétés que le joueur expose. J'ai trouvé quelques exemples hacky en ligne, mais rien de concret.

J'ai vraiment besoin d'accéder à la lecture, à la pause, à l'arrêt, à la recherche, à l'écran complet, etc. J'aimerais également avoir accès à tous les événements que le joueur arrive à diffuser.

L'aide serait merveilleuse (j'ai déjà une équivaut de Flash, pour que vous le sachiez), merci!

L'API requiert une connectivité ActiveX native d'Internet Explorer ou peut utiliser un plugin pour Firefox .

Voici un exemple de page qui pourrait vous aider à démarrer.

<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> 

Il existe une API dans le centre de développement de Microsoft, mais cela ne fonctionnera que si vous incorporez le lecteur multimédia Windows en utilisant active-x.

Pour "apprendre" plus sur l'API, consultez MSDN: http://msdn.microsoft.com/en-us/library/dd564034(VS.85).aspx

Le lecteur multimédia Windows est exposé comme un contrôle activex que n'importe quel langage de script s'exécutant dans l'hôte du script Windows devrait pouvoir accéder. Vous devriez pouvoir utiliser jscript pour le contrôler. Jscript est l'implémentation par microsofts du script java. Pour plus d'informations sur les objets et les méthodes disponibles, utilisez jscript pour windows media player se ce lien.

Il n'y a pas de bibliothèque de JavaScript ouverte autant que je le sais pour la gestion des joueurs crossbrowser d'un joueur WMP. Cependant, ce lien devrait vous faciliter la tâche de démarrer votre propre petite bibliothèque. Le code peut nécessiter une mise à jour et un test dans les versions modernes du navigateur, mais vous avez les bases.

La bibliothèque que vous recherchez serait une excellente idée pour un projet Google Code, je suppose que, tout le monde utilise aujourd'hui Adobe Flash avec sIFR / swfobject ou Microsoft Silverligt avec sistr , il n'y a pas beaucoup d'intérêt à écrire le script de script client pour WMP.

Devrait utiliser l'objet WMP suivant (fonctionne dans 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>