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