基本上我有一个背景音轨和一个用于配音的播放和暂停按钮,当您播放画外音时背景下降到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;
}
}
答案 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添加了一个函数来设置voAudio
和bgAudio
变量,以及ended
事件的事件监听器。一旦播放结束,就会调用StopVO
函数。
最后,在您的StopVO
函数中,我恢复了背景音频的上一个音量。