Author: | Thinkhy |
Date: | 2010.04.21. |
Url: | http://www.disandu.com/?p=731 |
Keyword: | JS切换背景音乐 JS控制背景音乐 JAVASCRIPT |
网络上介绍JS切换背景音乐的方法大多不可行,最后在一个韩国网站上找到解决办法,原来切换音乐时需要一个延时。
musicStatus = false;
// 背景音乐,播放特定曲目,空曲目,暂停音乐
function playmusicfile(musicfile)
{
var objMusic = document.getElementById("bgmusic");
if (!objMusic)
return;
if (musicfile == "") // 这几行处理,播放空文件时延迟一段时间才停止音乐的问题
{
if (typeof objMusic.pause == 'function')
{
objMusic.pause(); // 遇到空文件,先关闭之前的音乐
}
}
var parEle = objMusic.parentNode;
parEle.removeChild(objMusic);
var newEle = document.createElement("embed");
newEle.setAttribute("id","bgmusic");
newEle.src=musicfile;
newEle.setAttribute("hidden","true");
newEle.setAttribute("autostart","false");
parEle.appendChild(newEle);
if (musicStatus == "pause")
{
setTimeout(musicStop, 300); // 注意这里需要一个延时等待背景音乐文件载入内存
}
else if (musicStatus == "play")
{
setTimeout(musicPlay, 300);
}
// objMusic = newEle;
}
function musicStop() {
if (bgmusic && (typeof bgmusic.stop == 'function'
|| typeof bgmusic.stop == 'unknown')) // 有时候bgmusi.stop是unknown类型
bgmusic.stop();
}
function musicPlay() {
if (bgmusic && typeof bgmusic.play == 'function'
|| typeof bgmusic.play == 'unknown')) // 有时候bgmusi.play是unknown类型
bgmusic.play();
}