Google chrome 网络音频剪辑:如何让Firefox表现得像Chrome?
在中执行的代码段: 录制时使用: Chrome74剪辑,Firefox66没有Google chrome 网络音频剪辑:如何让Firefox表现得像Chrome?,google-chrome,firefox,html5-audio,web-audio-api,Google Chrome,Firefox,Html5 Audio,Web Audio Api,在中执行的代码段: 录制时使用: Chrome74剪辑,Firefox66没有 我可以让Firefox也剪辑信号吗?(这正是我所期望的)如果要确保输出被剪裁,至少可以通过三种方式执行: 使用WaveShaperNode为您执行剪裁。(到处都有) 使用ScriptProcessorNode(已弃用)进行剪裁 使用AudioWorkletNode进行剪辑。(尚未在所有地方提供。) 示例:(由OP添加,请仔细检查) 那到底是怎么回事?firefox做了什么来阻止剪辑,为什么(对我来说毫无意义)向
我可以让Firefox也剪辑信号吗?(这正是我所期望的)如果要确保输出被剪裁,至少可以通过三种方式执行:
- 使用
为您执行剪裁。(到处都有)WaveShaperNode
- 使用
(已弃用)进行剪裁ScriptProcessorNode
- 使用
进行剪辑。(尚未在所有地方提供。)AudioWorkletNode
那到底是怎么回事?firefox做了什么来阻止剪辑,为什么(对我来说毫无意义)向firefox提交一个bug?我问了一个FirefoxWebAudio的家伙,他说他不记得FireFox做过任何压缩,他希望FireFox的行为会像Chrome一样。
// @channels 1
// @duration 0.25
// @sampleRate 44100
var osc = new OscillatorNode(context);
var gain = context.createGain();
gain.gain.setValueAtTime(2, 0.25/2);
osc.connect(gain);
gain.connect(context.destination);
osc.start();
// @channels 1
// @duration 0.25
// @sampleRate 44100
var osc = new OscillatorNode(context);
var gain = context.createGain();
gain.gain.setValueAtTime(2, 0.25/2);
osc.connect(gain);
var waveShaper = new WaveShaperNode(context, {
curve: new Float32Array([-1, 1])
});
gain.connect(waveShaper);
waveShaper.connect(context.destination);
osc.start();