ScriptProcessorNode 已弃用。改用 AudioWorkletNode

Posted

技术标签:

【中文标题】ScriptProcessorNode 已弃用。改用 AudioWorkletNode【英文标题】:The ScriptProcessorNode is deprecated. Use AudioWorkletNode instead 【发布时间】:2021-12-25 21:30:24 【问题描述】:

网站上有录音机和录音播放器。 Firefox 没问题,但我在基于 Chronium 的浏览器中收到以下警告。

[弃用] ScriptProcessorNode 已弃用。请改用 AudioWorkletNode。 (https://developers.google.com/web/updates/2017/12/audio-worklet)

this.config = 
                        bufferLen: 4096,
                        numChannels: 2,
                        mimeType: 'audio/ogg'
                    ;
                    this.recording = false;
                    this.callbacks = 
                        getBuffer: [],
                        exportWAV: []
                    ;
                    Object.assign(this.config, cfg);
                    this.context = source.context;
                    this.node = (this.context.createScriptProcessor || this.context.createjavascriptNode).call(this.context, this.config.bufferLen, this.config.numChannels, this.config.numChannels);
                    this.node.onaudioprocess = function (e) 
                        if (!_this.recording) return;
                        var buffer = [];
                        for (var channel = 0; channel < _this.config.numChannels; channel++) 
                            buffer.push(e.inputBuffer.getChannelData(channel));
                        
                        _this.worker.postMessage(
                            command: 'record',
                            buffer: buffer
                        );
                    ;

Full Code on PasteBin

如何进行此更改?

【问题讨论】:

我下面的回答没有回答你的问题吗? 【参考方案1】:

ScriptProcessorNode 已被“弃用”多年,但它不会很快消失。

但是,如果您想要在 Ogg 中录制 Vorbis 或 Opus 音频,则无论如何都不需要它。请改用 MediaRecorder API。 https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder

【讨论】:

以上是关于ScriptProcessorNode 已弃用。改用 AudioWorkletNode的主要内容,如果未能解决你的问题,请参考以下文章

已弃用:指令 'allow_url_include' 在第 0 行的 Unknown 中已弃用

Modernizr.load 已弃用。 Yepnope.js 已弃用。怎么办?

UIAlertView 已弃用:首先在 iOS 9.0 中弃用 - UIAlertView 已弃用。将 UIAlertController 与首选样式一起使用

DTD 是不是已弃用?

macOS 上的 OpenGL 是不是已弃用?

已弃用:each() 函数已弃用。 C:\xampp\htdocs\phprojekt\library\Zend\Cache\Backend.php 在第 66 行 [重复]