2010-10-13 110 views
1

我有一個簡單的ASP.NET頁面,使用VLC媒體播放器在IE中播放視頻。我也有四個按鈕來控制播放:HTML對象標籤可以放在HTML表單標籤中嗎?

Play, Pause, Stop, and Mute

的四個按鈕調用訪問ActiveX控件的JavaScript函數。當我點擊任何按鈕,我得到以下錯誤的JavaScript函數:

"Microsoft JScript runtime error: 'vlc' is undefined".

然而,如果移動object標籤上,VLC播放器form標籤之外,則JavaScript正常工作,我可以控制視頻播放。

我的問題是爲什麼object標籤必須超出表單標籤才能正常工作?

<%@ Page Language="C#" AutoEventWireup="true" 
    CodeBehind="Default.aspx.cs" Inherits="VlcTest.Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>VLC Test Page</title> 

    <script type="text/javascript"> 
     function mute() { 
      vlc.audio.toggleMute(); 
     } 
     function play() { 
      vlc.playlist.play(); 
     } 
     function stop() { 
      vlc.playlist.stop(); 
     } 
     function pause() { 
      vlc.playlist.togglePause(); 
     } 
    </script> 

</head> 
<body> 

    <form id="form1" runat="server"> 
     <div> 

      <object type="application/x-vlc-plugin" 
       id="vlc" 
       width="720" 
       height="548" 
       classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" > 
       <param name="MRL" 
        value="C:\Inetpub\wwwroot\Movies\Funny Cats.flv" /> 
       <param name="volume" value="50" /> 
       <param name="autoplay" value="false" /> 
       <param name="loop" value="false" /> 
       <param name="fullscreen" value="false" /> 
      </object> 

      <br /> 

      <div id="controls"> 
       <input type="button" onclick="play()" value="Play" /> 
       <input type="button" onclick="pause()" value="Pause" /> 
       <input type="button" onclick="stop()" value="Stop" /> 
       <input type="button" onclick="mute()" value="Mute" /> 
      </div> 

     </div> 
    </form> 
</body> 
</html> 

回答

0

的問題是,所述<form>標籤內部的元件<object>超出範圍。

嘗試使用:

function play() { 
    var player = document.getElementById("vlc"); 
    player.playlist.play(); 
}