Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在Vue中导入和使用P5.Sound?_Node.js_Vue.js_Audio_P5.js - Fatal编程技术网

Node.js 如何在Vue中导入和使用P5.Sound?

Node.js 如何在Vue中导入和使用P5.Sound?,node.js,vue.js,audio,p5.js,Node.js,Vue.js,Audio,P5.js,我一直在尝试使用Vue和P5制作一个音乐可视化应用程序,在使用本文作为指南()修改了P5之后,我成功地用一些看起来很酷的图形绘制了一幅画布 现在,我正在尝试在给定歌曲的波形/振幅和画布中呈现的视觉效果之间创建链接。我一直在尝试从P5.sound库获取构造函数/函数,以从文件路径加载歌曲,然后使用FFT对象的输出来控制画布中的视觉渲染 现在,我的研究表明,P5库必须在实例模式下运行才能起作用(),我已经在我的Vue项目中尽了最大努力坚持这种方法。但是,尽管视觉渲染可以工作,但是P5.sound功能

我一直在尝试使用Vue和P5制作一个音乐可视化应用程序,在使用本文作为指南()修改了P5之后,我成功地用一些看起来很酷的图形绘制了一幅画布

现在,我正在尝试在给定歌曲的波形/振幅和画布中呈现的视觉效果之间创建链接。我一直在尝试从P5.sound库获取构造函数/函数,以从文件路径加载歌曲,然后使用FFT对象的输出来控制画布中的视觉渲染

现在,我的研究表明,P5库必须在实例模式下运行才能起作用(),我已经在我的Vue项目中尽了最大努力坚持这种方法。但是,尽管视觉渲染可以工作,但是P5.sound功能都不能工作

以下是设置P5对象的模型代码:

import P5 from 'p5';
import P5sound from "p5/lib/addons/p5.sound";


let p5;
let fft;
let sound;

export function main(_p5) {
  p5 = _p5;

  p5.setup = () => {
    p5.createCanvas(500, 500);
    p5.background(100);
    fft = new p5.FFT();
    fft.setInput("../assets/sawtooth.mp3")
    sound.amp(0.2);
  };
  p5.draw = () => {
    p5.background(220);
    let spectrum = fft.analyze();
    noStroke();
    fill(255, 0, 255);
    for (let i = 0; i < spectrum.length; i++) {
      let x = map(i, 0, spectrum.length, 0, width);
      let h = -height + map(spectrum[i], 0, 255, height, 0);
      rect(x, height, width / spectrum.length, h);
    }

    let waveform = fft.waveform();
    noFill();
    beginShape();
    stroke(20);
    for (let i = 0; i < waveform.length; i++){
      let x = map(i, 0, waveform.length, 0, width);
      let y = map( waveform[i], -1, 1, 0, height);
      vertex(x,y);
    }
    endShape();
  };
}
无论我如何尝试导入P5.sound库,行
fft=new P5.fft()
总是产生错误
P5.fft不是构造函数。我已经检查了node_模块中的P5.js模块,我可以清楚地看到P5.sound.js库存在于
P5/lib/addons/P5.sound
文件路径中,但我无法利用它的任何功能。我应该注意到,当我从模型的代码中删除所有P5.sound功能,并且只有一个带有一些简单形状的画布时,它工作得很好

我使用
npm安装--save P5
安装了P5,并尝试了多种方法使P5.sound正常工作,例如P5管理器包()和Vue-P5包装器()。我还尝试实施了类似问题()中提出的一些解决方案。这些都不起作用,尽管我可能执行得不正确。有人知道如何将P5.sound库导入我的Vue项目吗

更新


如果没有运行
fft=new p5.fft()
行,我注意到的另一个错误是错误
ReferenceError:p5未定义。每当我尝试导入P5.sound库时(使用
import P5 sound from“P5/lib/addons/P5.sound”
import“P5/lib/addons/P5.sound”
),就会发生此错误。我深入研究了这个问题,发现其他人也经历过()。显然,一位用户通过“降级到0.9,将sound.js复制到project文件夹,升级回1.0,并将导入链接到本地0.9版本的sound”解决了这个问题。遗憾的是,我不确定如何实现这个解决方案。有人知道怎么做吗?

多亏了我在Github问题页面()上得到的帮助,我知道了如何导入P5.sound库

首先,我卸载了node_模块中的P5.js,然后安装了P5.js版本0.9.0:

npm uninstall p5
npm install p5@0.9.0
接下来,在node_modules中找到P5模块后,我复制了P5声音库文件并将其粘贴到我的项目的src目录中,然后将来自“P5/lib/addons/P5.sound”的
import P5声音替换为
import./P5.sound.js”
(表示我的相对文件路径)。然后我用以下命令在终端中安装了最新版本的P5.js:

npm install p5@1

现在我可以导入声音库而不必获取错误
ReferenceError:p5未定义
p5.FFT不是构造函数

感谢我在Github问题页面()上收到的帮助,我找到了如何导入p5.sound库的方法

首先,我卸载了node_模块中的P5.js,然后安装了P5.js版本0.9.0:

npm uninstall p5
npm install p5@0.9.0
接下来,在node_modules中找到P5模块后,我复制了P5声音库文件并将其粘贴到我的项目的src目录中,然后将来自“P5/lib/addons/P5.sound”的
import P5声音替换为
import./P5.sound.js”
(表示我的相对文件路径)。然后我用以下命令在终端中安装了最新版本的P5.js:

npm install p5@1

现在我可以导入声音库而不必获取错误
ReferenceError:p5未定义
p5.FFT不是构造函数

对我不起作用。你还在以“从“p5”导入p5”的形式导入p5吗?@EzPizza我运行了
从“p5”导入p5
并运行了
导入”。/p5.sound.js“
对我不起作用。你还在以“从‘p5’导入p5”的形式导入p5吗?@ezpizzi运行了
import p5 from“p5”
并运行了
import../p5.sound.js“