如何使用Vanilla JS取消音频静音?

时间:2019-11-13 19:52:20

标签: javascript audio

我已经在游戏中添加了静音功能,我知道我可以通过调用功能MutingPage()来简单静音网页上的所有音频,但是我想知道如何在不重新加载页面的情况下使它再次取消静音。

function sound(src) {
    this.sound = document.createElement("audio");
    this.sound.src = src;
    this.sound.setAttribute("preload", "auto");
    this.sound.setAttribute("controls", "none");
    this.sound.style.display = "none";
    document.body.appendChild(this.sound);
    this.play = function(){
        this.sound.play();
    }
    this.stop = function(){
        this.sound.pause();
    }    
}

function muteMe(elem) {
    elem.muted = true;
    elem.pause();
}

function mutePage() {

    var elems = document.querySelectorAll("audio");

    document.getElementById("snd").style.textDecoration = "line-through";

    [].forEach.call(elems, function(elem) { muteMe(elem); });
}

1 个答案:

答案 0 :(得分:0)

您可以使用播放器单击的按钮来执行此操作。在按钮上添加一个事件监听器,并在其内部使音频对象静音。

button.addEventListener('click', () => {
  this.sound.muted = false;
});

请确保使用箭头函数,否则“ this”将在事件处理程序上下文范围内