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