У меня есть простая страница ASP.NET, которая использует медиаплеер VLC для воспроизведения видео в IE. У меня также есть четыре кнопки для управления воспроизведением:
Play, Pause, Stop, and Mute
Четыре кнопки вызывают функции JavaScript, которые обращаются к элементу управления ActiveX. Когда я нажимаю на любую из кнопок, я получаю следующую ошибку в функции 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>