【问题标题】:AudioWorklet DOMException error when loading modules加载模块时出现 AudioWorklet DOMException 错误
【发布时间】: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 作为本地主机。

有人知道为什么会这样,或者如何避免吗?该错误是反复出现的,而且不是很容易解释。

谢谢

【问题讨论】:

    标签: javascript web-audio-api


    【解决方案1】:

    也许你的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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      • 2019-08-31
      • 1970-01-01
      相关资源
      最近更新 更多