VLCメディアプレーヤーを使用してIEでビデオを再生する単純なASP.NETページがあります。再生を制御するための4つのボタンもあります。
Play, Pause, Stop, and Mute
4つのボタンは、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>