Javascript Discord.js是否录制语音频道的MP3?
我正在尝试在discord.js bot中创建一个记录命令。到目前为止,我的代码是:Javascript Discord.js是否录制语音频道的MP3?,javascript,node.js,audio,discord.js,pcm,Javascript,Node.js,Audio,Discord.js,Pcm,我正在尝试在discord.js bot中创建一个记录命令。到目前为止,我的代码是: const channel = message.member.voice.channel; if(!channel) return message.channel.send('Join a VC first!'); const connection = await channel.join(); const receiver = connection.receiver.createStream(m
const channel = message.member.voice.channel;
if(!channel) return message.channel.send('Join a VC first!');
const connection = await channel.join();
const receiver = connection.receiver.createStream(message.member, {
mode: "pcm",
end: "silence"
});
const writer = receiver.pipe(fs.createWriteStream('./recording.pcm'));
writer.on('finish', () => {
channel.leave();
message.channel.send('It went quiet, so I left...');
});
这会将
recording.pcm
保存到我的电脑中。如果我试图在windows media player或其他程序中打开该文件,它将无法识别该文件类型。我使用了Audacity导入原始音频功能,我可以听到我的录音,所以我知道它可以工作。然而,给用户提供这种类型的文件是非常不方便的。如何将此.pcm
文件转换为node.js中的.wav
或.mp3
?谢谢 您可以使用ffmpeg
-
const ffmpeg=require('ffmpeg');
试一试{
var process=new ffmpeg('path/to/pcm/file');
进程。然后(功能(音频){
audio.fnExtractSoundToMP3('path/to/new/file.mp3',函数(错误,文件){
if(!error)console.log('音频文件:'+文件);
});
},函数(err){
log('Error:'+err);
});
}捕获(e){
控制台日志(e);
}
这将把新的mp3文件保存到指定的位置。您可以使用
ffmpeg
-
const ffmpeg=require('ffmpeg');
试一试{
var process=new ffmpeg('path/to/pcm/file');
进程。然后(功能(音频){
audio.fnExtractSoundToMP3('path/to/new/file.mp3',函数(错误,文件){
if(!error)console.log('音频文件:'+文件);
});
},函数(err){
log('Error:'+err);
});
}捕获(e){
控制台日志(e);
}
这将把新的mp3文件保存到指定的位置。为什么不直接用转换文件呢?它支持
pcm
格式的raw
输入。node lame的readme.md建议不要在Windows上使用,而我正在使用Windows 10。为什么不直接将其转换为?它支持pcm
格式的raw
输入。node lame的readme.md建议不要在Windows上使用,我使用的是Windows 10。我尝试过,但不起作用(没有错误消息),事实上,如果输出文件(mp3)已经存在,执行代码会删除该文件。我尝试过,但实际上不起作用(没有错误消息),如果输出文件(mp3)已经存在,则执行代码将删除该文件。