summaryrefslogtreecommitdiff
path: root/scripts/volume_processor.js
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/volume_processor.js')
-rw-r--r--scripts/volume_processor.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/scripts/volume_processor.js b/scripts/volume_processor.js
new file mode 100644
index 0000000..9765e7b
--- /dev/null
+++ b/scripts/volume_processor.js
@@ -0,0 +1,27 @@
+class VolumeProcessor extends AudioWorkletProcessor {
+ constructor() {
+ super();
+ this.volume = 0;
+ }
+
+ process(inputs) {
+ const input = inputs[0];
+ if (input.length > 0) {
+ const channelData = input[0];
+ let sum = 0;
+
+ for (let i = 0; i < channelData.length; i++) {
+ sum += channelData[i] * channelData[i];
+ }
+
+ this.volume = Math.sqrt(sum / channelData.length);
+
+ // Отправляем громкость в основной поток
+ this.port.postMessage(this.volume);
+ }
+
+ return true;
+ }
+}
+
+registerProcessor('volume_processor', VolumeProcessor);