Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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
如何使用javascript将mp3转换为声波图像_Javascript_Node.js - Fatal编程技术网

如何使用javascript将mp3转换为声波图像

如何使用javascript将mp3转换为声波图像,javascript,node.js,Javascript,Node.js,我在我的项目中有一个要求,将mp3音频转换为包含该mp3波形的图像。差不多 我可以使用javascript(特别是nodejs)来实现这一点吗?请帮助检查此npm包 加载音频文件并播放它 创建一个waveplayer.js实例并传入一些(可选)选项: 从“WavePlayer”导入WavePlayer; var wavePlayer=新的wavePlayer({ 容器:“#波形”, 条宽:4, barGap:1, 身高:128 }); 从URL加载音频文件,并在加载完成后开始播放: wave

我在我的项目中有一个要求,将mp3音频转换为包含该mp3波形的图像。差不多

我可以使用javascript(特别是nodejs)来实现这一点吗?请帮助检查此npm包

加载音频文件并播放它

创建一个waveplayer.js实例并传入一些(可选)选项:

从“WavePlayer”导入WavePlayer;
var wavePlayer=新的wavePlayer({
容器:“#波形”,
条宽:4,
barGap:1,
身高:128
});
从URL加载音频文件,并在加载完成后开始播放:

wavePlayer.load('url-to-some-audio-file.mp3')
.然后(()=>waveplayer.play());

这是我写的一个简短的JavaScript程序。当您输入mp3文件时,它会对其进行解码,并在画布上显示波形的振幅。对于较长的文件,画布看起来有点压扁,但这可以在以后使用css进行更改。尝试较小的文件以获得最佳效果(如5-10秒的音频文件)

注意:这在浏览器中工作,我不知道节点。这使用了内置的浏览器特性HTML画布元素和Web音频API。我希望Node具有类似的功能,或者您可以找到一个库,该库使用与HTML画布2d上下文类似的命令生成图像文件。祝你好运

const margin=10;
常量chunkSize=50;
常量输入=document.querySelector(“输入”);
const canvas=document.querySelector(“canvas”);
const ctx=canvas.getContext(“2d”);
const ac=新的AudioContext();
常数{宽度,高度}=画布;
常数中心高度=数学单元(高度/2);
常数scaleFactor=(高度-边距*2)/2;
异步函数drawToCanvas(){
常量缓冲区=等待输入。文件[0]。arrayBuffer();
const audioBuffer=等待交流解码音频数据(缓冲区);
const float32Array=audioBuffer.getChannelData(0);
常量数组=[];
设i=0;
常量长度=float32Array.length;
while(i
画布{
宽度:90%;
高度:400px;
}


您可以使用这个库,它可以将各种不同的音频格式转换成波形。我添加了一个带有mp3文件的示例,介绍了如何使用
HTML
JS
实现它:

如果要将其与npm一起添加,请查看以下文档:

var wavesurfer=wavesurfer.create({
容器:“#波形”,
waveColor:“粉色”,
progressColor:“浅绿色”
});
wavesurfer.load('https://file-examples-com.github.io/uploads/2017/11/file_example_MP3_700KB.mp3');


您可以使用FFMPEG执行此操作。这是可以做到的,只需浏览器选项卡中的javascript,而不需要任何库。我没有现成的代码段,您指定了节点。js,所以在开始编写原型之前,请告诉我您是否对浏览器方法感兴趣!我想OP不会问如何播放音乐文件。对不起,我忘了问了一个问题,不能给你奖金。