2013-08-27 60 views

回答

0

我使用下面的代碼來播放用軟件合成器創建的聲音。 樣品需要在[-1.0 .. 1.0]的範圍內。您應該在頁面初始化函數中初始化context

var context = new webkitAudioContext(); 

function playSound(buffer, freq, vol) // buffer, sampleRate, 0-100 
{ 
    var mBuffer = context.createBuffer(1, buffer.length, freq); 

    var dataBuffer = mBuffer.getChannelData(0); 
    var soundBuffer = buffer; 
    var i, n = buffer.length; 
    for (i=0;i<n;i++) 
     dataBuffer[i] = soundBuffer[i]; 

    var node = context.createBufferSource(); 
    node.buffer = mBuffer; 
    node.gain.value = 0.5 * vol/100.0; 
    node.connect(context.destination); 
    node.noteOn(0); 
} 
+0

它不適合我的作品,因爲我想送麥克風音頻websoket或轉換麥克風音頻輸入字節 –

+0

嗯,這很不幸,是另一個問題。不能幫助你在隊友。上面的代碼將播放一個音頻緩衝區。如果您擁有的值是字節,則值(通常)的範圍是[-128..127]。您需要首先將這些值轉換爲浮點值。 E('(byteVal + 128)/ 255.0)* 2) - 1.0',或者更簡單:'((byteVal + 128)/128.0) - 1.0' Google搜索'webKitAudioContext'應該會給你一些合適的結果。 – enhzflep