加载模块时出现 AudioWorklet DOMException 错误

AudioWorklet DOMException error when loading modules

我正在开发一个 WebAudio 应用程序,它需要 AudioWorklets 并且需要来自许多不同脚本的函数才能在 process() 函数中使用。因此,我尝试使用 import 命令在 processor 脚本 (frictionProcessor.js) 中加载所述脚本,如下所示:

import {MAX_ERROR, MAX_ITERATIONS} from "./utilities.js";  
class FrictionProcessor extends AudioWorkletProcessor {...}
registerProcessor('frictionProcessor', FrictionProcessor);

其中 utilities.js 是:

//Constants
const MAX_ERROR = 0.001;
const MAX_ITERATIONS = 50;
const MAX_POS = 10000.0;
const LCG_MULT = 1664525;
const LCG_ADD = 1013904223;

这给出了错误: Uncaught (in promise) DOMException: The user aborted a request.
当带有 import 的行被注释时,此错误消失,但我需要加载很多模块(不仅是此处显示的模块),所以不使用它不是解决方法。

我发现的最接近的问题是:AudioWorklet error: DOMException: The user aborted a request。但是,这并没有太大帮助,因为我不确定如何使用 application/javascript 为工作集处理器提供服务,因为它加载了 addModule 函数。

另一方面,我尝试了 https://developers.google.com/web/updates/2018/06/audio-worklet-design-pattern 中的设计模式示例代码,它们工作正常。

我正在使用 Chrome 69 和 Chrome 的 Web 服务器作为本地主机。

有谁知道为什么会发生这种情况,或者如何避免这种情况?该错误反复出现且不言自明。

谢谢

也许你的 utilities.js 应该是:

const MAX_ERROR = 0.001;
const MAX_ITERATIONS = 50;
const MAX_POS = 10000.0;
const LCG_MULT = 1664525;
const LCG_ADD = 1013904223;

export {
  MAX_ERROR,
  MAX_ITERATIONS,
  MAX_POS,
  LCG_MULT,
  LCG_ADD,
};

此外,任何 evaluation/parse 错误都将导致 DOMException。我同意这可以改进。我申请了a bug