discord.js录制语音频道的MP3吗? [英] Discord.js record MP3 of voice channel?

查看:28
本文介绍了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 media player或任何其他地方打开该文件,它无法识别文件类型。我使用了Audacity导入原始音频功能,我可以听到我的录音,所以我知道它是有效的。然而,给用户提供这种类型的文件是非常不方便的。如何将此.pcm文件转换为node.js中的.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文件保存到指定位置。

这篇关于discord.js录制语音频道的MP3吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆