2010-10-13 113 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(); 
}