【发布时间】:2018-10-03 22:09:40
【问题描述】:
我正在开发一个 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 和 Web Server for Chrome 作为本地主机。
有人知道为什么会这样,或者如何避免吗?该错误是反复出现的,而且不是很容易解释。
谢谢
【问题讨论】: