下面是一个测试的例子:
<script language="javascript">
function Play()
{
tsound.src = "d:\\" + MusicSelector.value;
tsound.open("d:\\" + MusicSelector.value);
tsound.play();
}
</script>
<BODY>
<select name=MusicSelector>
<option value="wolf.wma" selected>wolf.wma</option>
<option value="WildGame.wma">WildGame.wma</option>
</select>
<br/>
<embed src="d:\\Lilac.wma" id="tsound" loop="-1" autostart="false" hidden="true"/>
<input type="button" value="Play" onclick="Play()">
<input type="button" value="Pause" onclick="tsound.pause()">
<input type="button" value="Stop" onclick="tsound.stop()">
</script>
</BODY>
点Play按钮播放,没有声音!!!于是我在tsound.play();之前加了一句:
window.alert("Play");想看看是不是已经执行了Play()这个方法。
结果弹出"Play"的对话框,表示该Play()已经被调用过,点确定以后音乐竟然播放出来了。奇怪啊,
当我删掉window.alert("Play");这一句,又播放不了声音了。我faint!!
我猜是不是需要延迟,所以我把tsound.play();这一句替换成下面这段代码:
function Play()
{
.....
window.setTimeout('Start()', 100);//这句替换了原来的tsound.play();
}
function Start()
{
tsound.play();
}
果然不出所料,播放出声音来了,有没有哪位高手说说这是为什么?