我是从网络音频API入门的,出于某种原因,此代码只播放了一次振荡器,我错过了什么?
<select class="osc1">
<option value = "sawtooth">Sawtooth</option>
<option value = "square">Square</option>
<option value = "triangle">Triangle</option>
<option value = "sine">Sine</option>
</select>
<button id="play-btn">Play</button>
<script>
var ac = new (window.AudioContext || window.webkitAudioContext)();
function createOsc(ac, elclass)
{
var osc = ac.createOscillator();
osc.frequency.value = 110;
osc.type = document.getElementsByClassName(elclass)[0].value;
osc.connect(ac.destination);
osc.start();
osc.stop(2);
}
document.getElementById("play-btn").addEventListener("click", function(e){
createOsc(ac, 'osc1');
});
</script>
解
我设法自己找到解决方案,当调用方法stop时,它希望将上下文当前时间加上浮点秒数作为参数。
osc.stop(ac.currentTime + 2.0);
最佳答案
您的JavaScript代码运行正常。我测试过,它可以多次工作。
您正在使用哪个插件播放声音?
(对不起,由于我的声誉低下而无法发表评论)
关于javascript - HTML5/Javascript网络音频API,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33642033/