7

我想使用 JavaScript 来控制嵌入式 Windows Media Player,以及访问播放器公开的任何属性。我在网上找到了一些骇人听闻的例子,但没有什么具体的。

我真的需要访问播放、暂停、停止、搜索、全屏等。我还想访问播放器碰巧广播的任何事件。

帮助会很棒(我已经有一个 Flash equiv,所以你知道),谢谢!

4

5 回答 5

11

API 需要 Internet Explorer 原生的 ActiveX 连接,或者可以使用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>
于 2009-04-08T00:30:28.900 回答
6

Microsoft 的开发者中心有一个 API,但它只有在使用 active-x 嵌入 windows 媒体播放器时才能工作。

要“了解”有关 API 的更多信息,请查看 MSDN:http: //msdn.microsoft.com/en-us/library/dd564034 (VS.85).aspx

于 2009-04-07T23:30:58.683 回答
4

Windows 媒体播放器作为一个 activex 控件公开,在 Windows 脚本宿主中运行的任何脚本语言都应该能够访问该控件。您应该能够使用 jscript 来控制它。Jscript 是微软对 java 脚本的实现。有关使用 jscript for windows media player 可以使用哪些对象和方法的信息,请参阅此链接。

于 2008-11-18T19:56:13.683 回答
0

据我所知,没有用于 WMP 播放器的跨浏览器客户端处理的开放 JavaScript 库。然而,这个链接应该让你很容易开始你自己的小图书馆。代码可能需要在现代浏览器版本中进行一些更新和测试,但您已经具备了基础知识。

您搜索的库对于 Google 代码项目来说是一个好主意,我想虽然今天每个人都在使用带有sIFR / swfobject的 Adob​​e Flash 或带有sistr等的Microsoft Silverligt ,但编写用于 WMP 的客户端脚本控制的兴趣不大。

于 2008-11-18T20:18:41.063 回答
0

应该使用下一个 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>
于 2013-01-17T05:26:38.143 回答