如何解决Discord.js 录制语音通道的 MP3?
我正在尝试在我的 discord.js 机器人中创建一个记录命令。到目前为止,我的代码是:
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
保存到我的 PC 上。如果我尝试在 windows 媒体播放器或任何东西中打开文件,它无法识别文件类型。我使用了 Audacity 导入原始音频功能,我可以听到我的录音,所以我知道它有效。然而,给用户这种类型的文件是非常不方便的。如何在 node.js 中将此 .pcm
文件转换为 .wav
或 .mp3
?谢谢!
解决方法
您可以使用 ffmpeg
- npm i ffmpeg
const ffmpeg = require('ffmpeg');
try {
var process = new ffmpeg('path/to/pcm/file');
process.then(function (audio) {
audio.fnExtractSoundToMP3('path/to/new/file.mp3',function (error,file) {
if (!error) console.log('Audio File: ' + file);
});
},function (err) {
console.log('Error: ' + err);
});
} catch (e) {
console.log(e);
}
这应该会将新的 mp3 文件保存到指定位置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。