You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
832 B
29 lines
832 B
class AudioLevelProcessor extends AudioWorkletProcessor { |
|
constructor() { |
|
super(); |
|
this._lastUpdate = currentTime; |
|
} |
|
|
|
process(inputs, outputs, parameters) { |
|
if (!inputs) { |
|
return; |
|
} |
|
if (currentTime - this._lastUpdate >= 0.1) { |
|
if (!inputs[0] || !inputs[0][0]) { |
|
//console.log('@@'); |
|
return; |
|
} |
|
//auconsole.log('@@',inputs[0][0]); |
|
const buffer = inputs[0][0]; |
|
let max = Math.floor(Math.max.apply(Math, buffer) * 100); |
|
if (max < 0) { |
|
max = -max; |
|
} |
|
this.port.postMessage({audioLevel: max}); |
|
this._lastUpdate = currentTime; |
|
} |
|
return true; |
|
} |
|
} |
|
|
|
registerProcessor('audioLevel', AudioLevelProcessor); |