Javascript 节点-如何写入音频文件

Javascript 节点-如何写入音频文件,javascript,node.js,audio,stream,Javascript,Node.js,Audio,Stream,我正在制作一个应用程序,记录用户所说的话,并将其保存到一个文件中。为了从麦克风中获得声音,我正在使用该软件包。我的应用程序目前能够从麦克风获取声音。但是,当我尝试将流写入音频文件并播放它时,会出现以下错误 Windows Media Player无法播放该文件。玩家可能不会 支持该文件类型,或者可能不支持用于 压缩文件 有人知道如何将音频写入节点中的文件吗 var fs = require('fs'); const { Writable } = require('stream'); var wr

我正在制作一个应用程序,记录用户所说的话,并将其保存到一个文件中。为了从麦克风中获得声音,我正在使用该软件包。我的应用程序目前能够从麦克风获取声音。但是,当我尝试将流写入音频文件并播放它时,会出现以下错误

Windows Media Player无法播放该文件。玩家可能不会 支持该文件类型,或者可能不支持用于 压缩文件

有人知道如何将音频写入节点中的文件吗

var fs = require('fs');
const { Writable } = require('stream');
var writeStream = fs.createWriteStream('./output.wav');

const outStream = new Writable({
  write(chunk, encoding, callback) {
    console.log(chunk);
    writeStream.write(chunk);
    callback();
  }
});
let Mic = require('node-microphone');
let mic = new Mic();
let micStream = mic.startRecording();
micStream.pipe( outStream );

mic.on('info', (info) => {
    console.log('Info: ',info);
});
mic.on('error', (error) => {
    console.log('error:', error);
});
mic.on('stop', (stop) => {
    console.log('stop:', stop);
});

setTimeout(() => {
  console.log('stopped recording');
  mic.stopRecording();

}, 3000);

节点麦克风
文档说明:

startRecording()

用课堂上给定的声音选项开始录音。创造 一个新的子进程它将返回记录的PCM波流作为 节点流

我想你的文件缺少正确的标题。 以下模块之一可能会帮助您:


Writer类接受写入它的原始音频数据(当前仅支持PCM音频数据),并输出一个WAV文件,该文件的开头有一个有效的WAV头,指定音频流的格式信息


 var toWav = require('audiobuffer-to-wav')
 var wav = toWav(buffer) // encode AudioBuffer to WAV