2008-11-18 12 views
7

Chcę używać JavaScriptu do kontrolowania osadzonego programu Windows Media Player, a także do uzyskiwania dostępu do wszelkich właściwości, które gracz udostępnia. Znalazłem kilka hackowatych przykładów w Internecie, ale nic konkretnego.Czy jest udokumentowane API JavaScript dla programu Windows Media Player?

Naprawdę potrzebuję dostępu do gry, pauzy, zatrzymania, wyszukiwania, trybu pełnoekranowego itp. Chciałbym również mieć dostęp do wydarzeń, które gracz transmituje.

Pomoc byłaby cudowna (mam już odpowiednik Flasha, żebyś wiedział), dzięki!

Odpowiedz

6

W centrum programistycznym Microsoftu jest interfejs API, ale działa on tylko wtedy, gdy program Windows Media Player jest osadzony przy użyciu polecenia active-x.

"nauczyć" się więcej o API, sprawdź MSDN: http://msdn.microsoft.com/en-us/library/dd564034(VS.85).aspx

+1

Łącze dla programu Media Player w systemie Microsoft Windows CE .NET 4.2 Nie sądzę, że jest to system operacyjny, na którym naprawdę zależy –

4

Windows Media Player jest wyeksponowany jako kontrolka ActiveX, do której powinien mieć dostęp każdy język skryptowy uruchomiony na hoście skryptu Windows. Powinieneś być w stanie użyć jscript do kontrolowania go. Jscript to implementacja microsofts skryptu Java. Aby uzyskać informacje o obiektach i metodach dostępnych za pomocą jscript dla Windows Media Player, se this link.

0

Nie ma otwartej biblioteki JavaScript, o ile wiem, dla obsługi crossbrowserowej klienta odtwarzacza WMP. Jednak, this link powinno się dość łatwo uruchomić własną bibliotekę. Kod może wymagać pewnych aktualizacji i testowania w nowoczesnych wersjach przeglądarek, ale masz tam podstawy.

Biblioteka Twój poszukiwania byłby to świetny pomysł na projekt Google Code, myślę, że choć każdy jest dziś w programie Adobe Flash z sIFR/swfobject lub Microsoft Silverligt z sistr etc, nie ma wielkiego zainteresowania pisać stronie klienta skrypt kontrolowanie WMP.

+0

Niestety mam do czynienia z wielkim starym klienta korporacyjnego, którego Dział IT uważa, że ​​dodanie Flash lub Silverlight dla systemu operacyjnego obraz może powodować konflikty. Brawo za pracę z klientem ... ale dzięki linkowi wygląda na pomocny. – ironkeith

11

API wymaga ActiveX łączności rodzime dla programu Internet Explorer, lub można użyć plugin for Firefox.

Oto przykładowa strona, która może Ci pomóc.

<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

Gdyby użyć następnego obiektu WMP (działa w 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> 
Powiązane problemy