angular - 将本地文件导入AudioWorkletProcessor文件时出现意外的标识符错误

标签 angular syntax-error web-audio-api

我目前正在使用Angular构建视频 session 应用程序。在我的一项服务中,我尝试合并Web音频api。问题是,当我尝试使用addModule(AudioWorkletProcessorFileName.js)函数将脚本添加到音频工作集时,它会抛出SyntaxError: Unexpected Identifier。我发现只有在尝试将另一个文件导入AudioWorkletProcessorFileName.js时才会发生。当我删除import语句时,一切正常。我想导入更复杂的代码,但我想从更简单的test.js版本开始(我要导入的文件)。我不知道为什么会这样。我是否在Angular中缺少某些配置设置?
在audio.service.ts中:

import { Injectable } from '@angular/core';
import { AudioContext, AudioWorkletNode } from 'standardized-audio-context';

@Injectable()
export class AudioService {
     audioCtx = new AudioContext();

     constructor() {}

     async createNewSetting(track) {
         // We need an audio context for the sound
         const srcNode = this.audioCtx.createMediaStreamTrackSource(track);
         const destNode = this.audioCtx.createMediaStreamDestination();

         // This will be the processor node
         await this.audioCtx.audioWorklet.addModule(
          './assets/worklet/audio-worklet-processor.js'
         );

         const spatialNode = new AudioWorkletNode(
             this.audioCtx,
             'spatial-processor'
         );

         // Connect the nodes
         srcNode.connect(spatialNode);
         spatialNode.connect(destNode);

         // Return the updated audio stream
         return destNode.stream.getTracks()[0];
    }
}
在audio-worklet-processor.js中:
import TEST_VAR from './test.js'; // Will throw exception when I include this

class SpatialProcessor extends AudioWorkletProcessor {

    constructor() {
        super();
        console.log("In Constructor");
    }

    process (inputs, outputs, parameters) {
        console.log("In Process");
        return true;
    }
}

registerProcessor("spatial-processor", SpatialProcessor);
在test.js中:
const TEST_VAR = 1;

export default {
    TEST_VAR
};

最佳答案

如上面的评论所述,这是标准化音频上下文中的错误,该错误无法正确解析AudioWorklet内部的相对路径。它应该在版本25.1.7及更高版本中修复。

关于angular - 将本地文件导入AudioWorkletProcessor文件时出现意外的标识符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65604479/

相关文章:

python-3.x - 使用x范围内的语法错误

javascript - 可视化音频文件波形,Web Audio API

javascript - 有没有办法使用 HTML 5/JS 来锁定音量变化?

javascript - Firebase 远程配置( Angular )

angular - 如何为Angular应用程序设置基本URL

php - 在 php 中回显 session 变量

google-plus - 使用 Web Audio API 访问 YouTube 直播

javascript - 不能将 ng-bootstrap 与 Webpack 和 Angular2 一起使用

javascript - Ngrx 选择器不触发更新

mapping - 方案: pattern matching syntax