2016-07-15 123 views
1

我在我的html中有一个音频标签,并且其中有.wav。使用Javascript,我选择音频标签并播放使用键盘按键触发的wav。 我试图实现的是,例如,按下每个'A'键,重放.wav /从头播放声音)当音频用Javascript暂停时发出“流行噪音”声音

音频播放工作正常,也暂停一下。但是,我收到流行噪音,直接暂停播放.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

*我认为使用推子在使用setInterval是不是一个好方法*为什么不呢? –

+0

我不确定,正如我所说..我需要播放3秒音频以及0.2秒的镜头;不仅仅是样品拍摄。这就是为什么我认为设置间隔并相应地触发淡出不会让我有3秒和0.2秒音频的通用代码。如果这是一个好方法,你能澄清一下吗? – senty

回答

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>

+0

这很酷,这个动画需要'controls = true'吗? – zer00ne

+0

@ zer00ne _“这个动画是否需要'controls = true'”_没有 – guest271314

+0

我没有事先设置音量。什么是默认音量级别来恢复它? – senty