使用Javascript

时间:2016-07-15 03:00:22

标签: javascript jquery html html5 audio

我的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),但这也会产生流行音乐

更新

我想我需要使用淡出来解决这个问题。有没有办法立即淡出音频?

1 个答案:

答案 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;
&#13;
&#13;