首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AudioWorkletProcessor和聚合物3.4.1和“窗口”未定义

AudioWorkletProcessor和聚合物3.4.1和“窗口”未定义
EN

Stack Overflow用户
提问于 2022-03-07 01:59:22
回答 1查看 138关注 0票数 -1

尝试使用lit元素/聚合物Web组件和Audioworklet/AudioWorklet处理器时,我得到了以下错误:

代码语言:javascript
复制
boot-c9e09360.js:20 Uncaught ReferenceError: window is not defined
at boot-c9e09360.js:20:1

在我代码中的这一行:

代码语言:javascript
复制
await aw.audioContext.audioWorklet.addModule("micSpkrAwp.js") //micSpkrAwp is the audio-worklet-processor running in different process. 

boot-c9e09360.js是一个聚合物文件,包含:

代码语言:javascript
复制
/**

@license版权(c) 2017聚合物项目作者。版权所有。**

/* eslint-禁用未使用的-vars/ /*

在使用闭包编译器时,objectproperty

  • We ( Property,object)被修改后的名称替换为compiling.

  • @param不能别名此函数,因此我们必须使用一个小的shim,当不使用 {?} 属性名称
    • @param {*} obj Reference object
    • @return {string}可能重命名的属性名称*/ window.JSCompiler_renameProperty = function( prop,obj) {返回支柱;};

我一直在使用发光元件/聚合物网络组件,它工作得很好。我去除了聚合物组分,AudioWorkletProcessor工作得很好。我认为问题在于,聚合物假定窗口是定义的(因为聚合物使用DOM),但是当遇到javascript文件时--没有引用DOM的AudioWorkletProcessor (只是提供音频处理接口的文件)--就会发生错误。有什么建议吗?MicSpkrAwp.js代码:

从“./ frameBufferQBRes }”导入{config} "./config.js“

类MicSpkrProcessor扩展AudioWorkletProcessor {

代码语言:javascript
复制
constructor() {
    super()
/** ..**/


process (inputs, outputs, parameters){
      console.log(`micSpkrAws - this.stopImmediateFlag ${this.stopImmediateFlag}`)
      if (this.stopImmediateFlag) return false
      const retVal=this.processFromQueue(inputs,outputs,parameters)
      return retVal
    }
  }
  registerProcessor('mic-spkr-processor', MicSpkrProcessor)
EN

回答 1

Stack Overflow用户

发布于 2022-03-07 06:24:06

感谢凯伊多的解决方案!答:由于导入,聚合物脚本被注入到AudioWorkletProcessor代码中:

代码语言:javascript
复制
import { calculateSplices } from '@polymer/polymer/lib/utils/array-splice';

这不是立即可见的,因为它是一个嵌套导入(导入的文件包含此导入语句)。这个导入被删除了,问题解决了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71375711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档