3 回答

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
由于您沒有舉例說(shuō)明您要做什么,因此很難提供好的建議。但是您應(yīng)該從查看AudioWorkletNodeOptions開始,關(guān)于配置通道的描述是一個(gè)很好的起點(diǎn)。

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
要獲得立體聲輸出,我必須使用:
workerNode = new AudioWorkletNode(ctx, "audio-proc", {
numberOfOutputs : 2,
outputChannelCount : [2, 2]
});

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
我已經(jīng)做過(guò)類似的事情并且弄清楚了如何去做。
代碼注釋解釋了您需要添加的內(nèi)容。
該代碼在 Atom 實(shí)時(shí)服務(wù)器上運(yùn)行,因此在此處運(yùn)行時(shí)可能無(wú)法正常工作,但它確實(shí)會(huì)使用 2 個(gè)聲道產(chǎn)生立體聲。
registerProcessor('noise-generator',class extends AudioWorkletProcessor {
process(inputs, outputs) {
for (let i=0;i<outputs[0][0].length;++i){
outputs[0][0][i]=2*Math.random()-1 //ouputs sound to left side
outputs[0][1][i]=2*Math.random()-1 //outputs sound to right side, added extra output and set 2nd channel to 1
}
return true
}
})
<button onclick="context.resume()">Start</button>
<script>
let context= new AudioContext()
context.audioWorklet.addModule('basicnoise.js').then(() => {
let myNoise = new AudioWorkletNode(context,'noise-generator', {outputChannelCount : [2]}) //added 2 output channels
myNoise.connect(context.destination)
})
console.log(context.sampleRate);
</script>
添加回答
舉報(bào)