我有一个简单的ASP.NET页面,它使用VLC媒体播放器在IE中播放视频。我还有四个按钮来控制播放:
Play, Pause, Stop, and Mute
这四个按钮调用访问ActiveX控件的JavaScript函数。当我点击任何按钮时,我在JavaScript函数中收到以下错误:
"Microsoft JScript runtime error: 'vlc' is undefined".
但是,如果将vlc播放器的object
标记移到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 :(得分:0)
问题是<form>
标记内的<object>
元素超出了范围。
尝试使用:
function play() {
var player = document.getElementById("vlc");
player.playlist.play();
}