getConvolver 获取卷积器
getConvolver
类型: MethodDeclaration
所属类: AudioReverb
定义位置: audio.ts
描述
获取卷积器
返回值:卷积器节点
返回值
类型: ConvolverNode
卷积器节点
源代码
位置: 第 729 行
public static getConvolver(): ConvolverNode {
if (!AudioReverb.convolver) {
const PREDELAY = 0.1
const DECAYTIME = 2
const context = AudioManager.context
const duration = PREDELAY + DECAYTIME
const sampleRate = context.sampleRate
const sampleCount = Math.round(sampleRate * duration)
const convolver = context.createConvolver()
const filter = context.createBiquadFilter()
const buffer = context.createBuffer(2, sampleCount, sampleRate)
const bufferLength = buffer.length
const delayLength = Math.round(bufferLength * PREDELAY / duration)
const decayLength = Math.round(bufferLength * DECAYTIME / duration)
const random = Math.random
for (let i = 0; i < buffer.numberOfChannels; i++) {
const samples = buffer.getChannelData(i)
for (let i = 0; i < delayLength; i++) {
samples[i] = (random() * 2 - 1) * i / delayLength
}
for (let i = delayLength; i < bufferLength; i++) {
const time = (bufferLength - i) / decayLength
samples[i] = (random() * 2 - 1) * time
}
}
convolver.buffer = buffer
filter.type = 'lowpass'
filter.frequency.value = 3000
convolver.connect(filter)
filter.connect(context.destination)
AudioReverb.convolver = convolver
}
return AudioReverb.convolver
}
文档生成时间:2025/7/7 12:07:06