2017-08-06 94 views
0

我已經做了一個函數,在被調用4次後會產生一個鼓聲,它會停止使用錯誤:TypeError:null不是一個對象(評估'audioCtx.sampleRate' ) 顯示在控制檯中。 有什麼不對的功能 我的代碼是:audiocontext讀取8次後返回空值

drum = function(){ 
    var audioCtx = new (window.AudioContext || window.webkitAudioContext)(); 
    var frameCount = audioCtx.sampleRate/20 
    var myArrayBuffer = audioCtx.createBuffer(1, frameCount, audioCtx.sampleRate); 
    var nowBuffering = myArrayBuffer.getChannelData(0); 
    for (var i = 0; i < frameCount; i++) { 
     nowBuffering[i] =Math.sin(i**(1/1.8)/4) 
    } 

    var source = audioCtx.createBufferSource(); 
    source.buffer = myArrayBuffer; source.connect(audioCtx.destination); 
    source.start(); 
} 
+0

iOS safari mobile – user7951676

回答

1

audioCtx分配應的drum()外移動,因爲它會被調用每一次,最終拋出一個異常,因爲你不能創造超過6音頻上下文在文檔中。