Есть ли документированный JavaScript API для Windows Media Player? - PullRequest
7 голосов
/ 18 ноября 2008

Я хочу использовать JavaScript для управления встроенным проигрывателем Windows Media, а также для доступа к любым свойствам, предоставляемым проигрывателем. Я нашел несколько хакерских примеров в Интернете, но ничего конкретного.

Мне действительно нужен доступ для воспроизведения, паузы, остановки, поиска, полноэкранного режима и т. Д. Я также хотел бы иметь доступ к любым событиям, которые проигрывает игрок.

Помощь была бы замечательной (у меня уже есть эквивалент Flash, просто, чтобы вы знали), спасибо!

Ответы [ 5 ]

11 голосов
/ 08 апреля 2009

API требует подключения ActiveX, встроенного в Internet Explorer, или может использовать плагин для Firefox .

Вот пример страницы, с которой можно начать.

<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>
6 голосов
/ 08 апреля 2009

В центре разработчиков Microsoft есть API, но он будет работать только в том случае, если вы встраиваете Windows Media Player, используя Active-X.

Чтобы узнать больше об API, ознакомьтесь с MSDN: http://msdn.microsoft.com/en-us/library/dd564034(VS.85).aspx

4 голосов
/ 18 ноября 2008

Проигрыватель Windows Media предоставляется в качестве элемента управления activex, к которому должен иметь доступ любой язык сценариев, работающий на хосте сценариев Windows. Вы должны быть в состоянии использовать jscript для управления им. Jscript - это реализация java-скриптов для Microsoft. Для получения информации о том, какие объекты и методы доступны с использованием jscript для Windows Media Player, см. эту ссылку.

0 голосов
/ 17 января 2013

Следует использовать следующий объект WMP (работает в 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>
0 голосов
/ 18 ноября 2008

Насколько мне известно, не существует открытой библиотеки JavaScript для кросс-браузерной обработки WMP-проигрывателя на стороне клиента. Тем не менее, эта ссылка должна упростить вам запуск вашей собственной маленькой библиотеки. Код может нуждаться в обновлении и тестировании в современных версиях браузера, но у вас есть основы.

Библиотека, которую вы ищете, была бы отличной идеей для проекта Google Code, но я думаю, что сегодня все используют Adobe Flash с sIFR / swfobject или Microsoft Silverligt с sistr и т. Д., Нет особого интереса для написания клиентского сценария, контролирующего WMP.

...