在Safari上页面加载播放背景音乐

时间:2016-11-22 05:12:48

标签: javascript web safari cross-browser mozilla

我想在页面加载时播放背景音乐。

我的代码在除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);

1 个答案:

答案 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对象。