我的应用程序中有一些事件会发出声音。

例如,

  • 循环播放的背景音乐
  • 单击背景会发出声音
  • 两个矩形碰撞时会发出声音

  • 我想要的是一个按钮,单击该按钮可以在让声音播放和不让声音播放之间切换。

    我不想在每个声音上都包含if语句,因此有没有解决的办法?

    这是我现在如何呼唤我的声音
    //HTML
        <div id='mainRight'></div>
    
    //JS
    var mainRight = $('#mainRight');
        $(mainRight).width(windowDim.width/2).height(windowDim.height);
        $(mainRight).addClass('mainRight');
    
        var sounds = {
    
            coinHit : new Audio('./sound/coinCollect.wav'),
            playerClick : new Audio('./sound/playerClick.wav'),
            gameOver : new Audio('./sound/gameOver.wav'),
            backgroundMusic : new Audio('./sound/backgroundMusic.wav')
    
        }
    
        sounds.backgroundMusic.addEventListener('ended', function() {
            this.currentTime = 0;
            this.play();
    
        }, false);
        sounds.backgroundMusic.play();
        sounds.backgroundMusic.volume = 0.01;
    
        $('#mainRight').click(function()
        {
            sounds.playerClick.load();
            sounds.playerClick.play();
        }
    

    最佳答案

    试试这个...

    function toggleAudio() {
        for(var key in sounds) {
            sounds[key].muted = !sounds[key].muted;
        }
    }
    

    只需在每次按下静音按钮时触发即可。它将切换Audio对象中每个sounds对象的静音状态。

    08-28 06:37