Discord漫游器:如何在语音通道中播放mp3文件

时间:2020-08-09 10:28:34

标签: bots discord.js

首先:是的,我已经在Google,论坛,不和谐的服务器等上进行过研究,但没有一个适合我想做的事情。我是说这句话,所以当我完成3天的研究后,没有人口头上虐待我寻求帮助。

我为风扇服务器制作了一个自定义discord机器人,该机器人由heroku托管,因此在我不在的时候可以保持在线。我想做的是让机器人在有人发出特定命令时从其文件夹中播放mp3文件,但我希望音乐在特定的语音通道中播放。

首先,我尝试将其与图像文件一样对待。例如:

if (message.content == "Play the Funky Tune.")
{ 
    message.reply("Of course, I hope you enjoy!", { files: ["./Music/FunkyTune.mp3"] });
}

但是,这会导致机器人在其中放置音乐文件,尽管您可以单击它并播放它,但在单击另一个频道时,音乐会暂停。我希望它在特定的语音频道中播放歌曲,以便在用户单击另一个频道时继续播放。

对此进行研究时,每个主题总是要求提供YouTube视频链接,它将其转换为音频,但这不是我想要的,因为YouTube视频可能发生任何事情。

任何帮助都将受到感激:)

P.S。 我对使用现成的机器人不感兴趣,我想将此音乐功能集成到我自己的机器人中。

1 个答案:

答案 0 :(得分:2)

if (message.content == "Play the Funky Tune.") {
    // Checking if the message author is in a voice channel.
    if (!message.member.voice.channel) return message.reply("You must be in a voice channel.");
    // Checking if the bot is in a voice channel.
    if (message.guild.me.voice.channel) return message.reply("I'm already playing.");

    // Joining the channel and creating a VoiceConnection.
    message.member.voice.channel.join().then(VoiceConnection => {
        // Playing the music, and, on finish, disconnecting the bot.
        VoiceConnection.play("./Music/FunkyTune.mp3").on("finish", () => VoiceConnection.disconnect());
        message.reply("Playing...");
    }).catch(e => console.log(e))
};

请注意,您必须运行以下命令才能使其正常工作:

  • npm install ffmpeg-static
  • npm install @discordjs/opus