我想在页面加载时播放背景音乐。
我的代码在除Safari之外的所有浏览器上运行良好。
Safari显示。
Undefined is not constructor(evaluating new audio())
如何在Safari上修复此错误?
var audio, playbtn, mutebtn, seek_bar;
function initAudioPlayer(){
audio = new Audio();
audio.src = "html/audio/di-evantile_behind-your-dream.mp3";
audio.loop = true;
audio.play();
// Set object references
playbtn = document.getElementById("playpausebtn");
mutebtn = document.getElementById("mutebtn");
// Add Event Handling
playbtn.addEventListener("click",playPause);
mutebtn.addEventListener("click", mute);
// Functions
function playPause(){
if(audio.paused){
audio.play();
playbtn.style.background = "url(html/images/pause.png) no-repeat";
} else {
audio.pause();
playbtn.style.background = "url(html/images/play.png) no-repeat";
}
}
function mute(){
if(audio.muted){
audio.muted = false;
mutebtn.style.background = "url(html/images/speaker.png) no-repeat";
} else {
audio.muted = true;
mutebtn.style.background = "url(html/images/speaker_muted.png) no-repeat";
}
}
}
//play music on page load
window.addEventListener("load", initAudioPlayer);
答案 0 :(得分:0)
您的JavaScript中似乎有一个奇怪的评论。我必须删除“## Heading ##”才能让你的脚本在我的机器上运行。
关于Safari:
2012年的Safari for discontinued早于2012年。如果各种各样的HTML5好东西在Windows版本中不起作用,我不会感到惊讶。
它适用于使用Safari 9.1.1(11601.6.17)的Mac OSX系统。
我也尝试过如你所述的Safari for Windows,我可以确认它不起作用,因为不支持Audio对象。