降低bg音乐,而另一首曲目播放并随后将其返回到前一个音量

时间:2015-07-29 14:45:37

标签: javascript audio

基本上我有一个背景音轨和一个用于配音的播放和暂停按钮,当您播放画外音时背景下降到0.25,当画外音停止时,它应该回到1.0。您可以在下面看到我使用的代码,它确实会丢弃bg音乐音量但是当音频结束时,bg音乐会保持在较低级别。哦,如果你想知道StopBG中的if语句是开始尝试让bg音乐恢复正常只有它正在播放,那么可以选择让它完全静音。对于那些想要了解一下的人来说,该网站是here

    function PlayVO()   
        {
            document.getElementById("vostate").value = "0";
            var voAudio = document.getElementById("voiceover_audio");
            var bgAudio = document.getElementById("background_audio");
            bgAudio.volume = 0.25;
            voAudio.volume = 1.0;
            voAudio.play();
            if(voAudio.ended)
                {
                    bgAudio.volume = 1.0;
                }
        }

        function StopVO()
            {
                document.getElementById("vostate").value = "1";
                var voAudio = document.getElementById("voiceover_audio");
                voAudio.volume = 0.0;
                voAudio.pause();
                voAudio.currentTime = 0;
                if(voAudio.volume == 0.25)
                    {
                        bgAudio.volume = 1.0;
                    }
            }

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

//global variable
var oldBGVolume, voAudio, bgAudio;

document.onload = function(){
    voAudio = document.getElementById("voiceover_audio");
    bgAudio = document.getElementById("background_audio");    

    voAudio.addEventListener("ended", function() {
        StopVO();
    });
}

function PlayVO()   
{
    document.getElementById("vostate").value = "0";
    oldBGVolume = bgAudio.volume;
    bgAudio.volume = 0.25;

    //If volume does not default to 1.0 keep this. Otherwise it is unneeded.
    voAudio.volume = 1.0;
    voAudio.play();
}

function StopVO()
{
    document.getElementById("vostate").value = "1";

    voAudio.pause();
    voAudio.currentTime = 0;
    bgAudio.volume = oldBGVolume;
}

让我稍微介绍一下这些变化......我将你的背景音量存储在全局变量oldBGVolume中。我为document.onload添加了一个函数来设置voAudiobgAudio变量,以及ended事件的事件监听器。一旦播放结束,就会调用StopVO函数。 最后,在您的StopVO函数中,我恢复了背景音频的上一个音量。