我的html中有一个音频标签,里面有.wav。使用Javascript,我选择音频标签并播放wav。,我使用键盘键触发。 我想要实现的是,例如,按下每个'A'键,重播.wav /从头开始播放声音)
播放音频效果还可以,暂停也是如此。但是,我得到一个流行音乐,而直接暂停播放.wav。
var audio = document.getElementById(sound);
if (!isPlaying(audio)) {
audio.play(); // works
} else {
audio.pause(); // pops on this line; I checked with commenting below lines.
audio.currentTime = 0;
audio.play();
}
我找到了this answer,据我所知,它正在发生,因为我立即将音量设置为0;但我无法弄清楚我的情况。我相信使用setInterval的推子不是一个好方法
我还找到audio.muted = true
,并在暂停音量之前尝试使用它(并在播放音频之前使用audio.muted = false
),但这也会产生流行音乐
更新
我想我需要使用淡出来解决这个问题。有没有办法立即淡出音频?
答案 0 :(得分:2)
更新
我想我需要使用淡出来解决这个问题。有没有 立即淡出音频的方法?
您可以使用.animate()
将volume
属性设置为当前值0
var audio = $("audio");
$("button").click(function() {
if (audio[0].volume > 0) {
audio.animate({volume:0});
// call `.pause()` here
}
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<audio controls src="https://upload.wikimedia.org/wikipedia/commons/6/6e/Micronesia_National_Anthem.ogg"></audio>
<button>fade out audio</button>
&#13;