我正在使用Web Audio API,並且我正在嘗試創建一個輸出衝動的JavaScriptNode。也就是說,我想要一個節點,輸出一個1後跟一大堆零,而不是別的。用JavaScriptNode(Web Audio API)衝動
我認爲下面的代碼將是一個明智的方式來做到這一點。我將名爲「timeForAnImpulse」的變量初始化爲true,並使用此變量觸發音頻回調中的脈衝輸出。在回調中,我將「timeForAnImpulse」設置爲false。
這似乎應該可以工作,但事實並非如此。我得到了一個衝動訓練(在每個緩衝區的開始處一個1),而不是一個衝動。任何想法我做錯了什麼?
<script type="text/javascript">
window.onload = init;
function impulseNodeCB(evt){
if(timeForAnImpulse){
var buf = evt.outputBuffer.getChannelData(0);
buf[0] = 1;
timeForAnImpulse = false;
}
}
var timeForAnImpulse = true;
function init() {
var context = new webkitAudioContext();
impulseNode = context.createJavaScriptNode(2048,0,1);
impulseNode.onaudioprocess = impulseNodeCB;
impulseNode.connect(context.destination);
}
</script>
</head>
所以你只是想創建一個非常簡單的「點擊」?正確。 – Lloyd 2012-02-09 16:18:09
沒錯。當你測試/調試信號處理結構時,衝動會派上用場,儘管我承認他們聽起來並不好玩。 ;) – 2012-02-09 19:15:12