2008-11-18 27 views
7

Tôi muốn sử dụng JavaScript để điều khiển Windows Media Player được nhúng, cũng như truy cập bất kỳ thuộc tính nào mà trình phát hiển thị. Tôi đã tìm thấy một vài ví dụ hacky trực tuyến, nhưng không có gì cụ thể.Có API JavaScript được ghi lại cho Windows Media Player không?

Tôi thực sự cần quyền truy cập để phát, tạm dừng, dừng, tìm kiếm, toàn màn hình, v.v. Tôi cũng muốn có quyền truy cập vào bất kỳ sự kiện nào mà người chơi sẽ phát sóng.

Trợ giúp sẽ tuyệt vời (Tôi đã có Flash equiv, chỉ để bạn biết), cảm ơn!

Trả lời

6

Có một API trong trung tâm nhà phát triển của Microsoft, nhưng nó sẽ chỉ hoạt động nếu bạn nhúng trình phát đa phương tiện windows bằng active-x.

Để "tìm hiểu" thêm về API, hãy kiểm tra MSDN: http://msdn.microsoft.com/en-us/library/dd564034(VS.85).aspx

+1

Liên kết dành cho Media Player trong Microsoft Windows CE .NET 4.2 Tôi không nghĩ đó là hệ điều hành mà bạn thực sự quan tâm –

4

Trình phát phương tiện Windows được hiển thị dưới dạng điều khiển activex mà bất kỳ ngôn ngữ kịch bản nào đang chạy trong máy chủ tập lệnh của cửa sổ sẽ có thể truy cập. Bạn sẽ có thể sử dụng jscript để kiểm soát nó. Jscript là phần mềm microsofts implimentation của java script. Để biết thông tin về các đối tượng và phương thức nào có sẵn bằng cách sử dụng jscript cho windows media player, hãy xem this link.

0

Không có thư viện JavaScript mở nào theo tôi biết để xử lý máy khách WMP. Tuy nhiên, this link sẽ giúp bạn dễ dàng bắt đầu thư viện nhỏ của riêng mình. Mã có thể cần một số cập nhật và thử nghiệm trong các phiên bản trình duyệt hiện đại nhưng bạn có những điều cơ bản ở đó.

Thư viện tìm kiếm của bạn cho sẽ là một ý tưởng tuyệt vời cho một dự án Google Code, tôi đoán rằng trong khi tất cả mọi người ngày nay đang sử dụng phần mềm Adobe Flash với sIFR/swfobject hoặc Microsoft Silverligt với sistr vv, không có nhiều sự quan tâm để viết kịch bản clientside kiểm soát cho WMP.

+0

Đáng buồn là tôi phải đối phó với một khách hàng của công ty cũ lớn mà IT dept nghĩ rằng việc thêm Flash hoặc Silverlight cho hệ điều hành hình ảnh có thể gây xung đột. Hoan hô cho công việc của khách hàng ... cảm ơn cho các liên kết mặc dù, có vẻ hữu ích. – ironkeith

11

API yêu cầu kết nối ActiveX nguồn gốc từ Internet Explorer, hoặc có thể sử dụng một plugin for Firefox.

Đây là trang mẫu có thể giúp bạn bắt đầu.

<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

có nên sử dụng đối tượng WMP tiếp theo (chỉ hoạt động trong 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> 
Các vấn đề liên quan