我正在开发一个WebAudio应用程序,该应用程序需要AudioWorklet,并且需要process()
函数中使用的许多不同脚本中的函数。因此,我尝试使用processor
命令在frictionProcessor.js
脚本(import
)中加载上述脚本,如下所示:
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服务器用作本地主机。
有人知道为什么会这样,还是如何避免呢?该错误是经常发生的,并且不是很容易解释。
谢谢
答案 0 :(得分:0)
也许您的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,
};
任何评估/解析错误都将导致DOMException。我同意可以对此进行改进。我为此提交了a bug。