【问题标题】:When I try to play my Music Discord Bot it doesn't play music当我尝试播放我的 Music Discord Bot 时,它不播放音乐
【发布时间】:2020-09-19 06:54:41
【问题描述】:

当我尝试播放我的 Music Discord Bot 时,它不播放音乐。它使用 ytdl-core 和 ffmpeg 我的代码是:

const Discord = require('discord.js');
const bot = new Discord.Client

const ytdl = require("ytdl-core")


const token = 'API TOKEN'

const PREFIX = '?';

var version = '1.2';

var servers = {};

bot.on('ready', () =>{
    console.log('This bot is online!' + version);
})

bot.on('message', message => {
    
    let args = message.content.substring(PREFIX.length).split(" ");

    switch(args[0]){
        case 'play':

            function play(connection, message){
                var server = servers[message.guild.id];

                server.dispatcher = connection.play(ytdl(server.queue[0], {filter: "audioonly"}))

                server.queue.shift();

                server.dispatcher.on("end", function(){
                    if(server.queue[0]){
                        play(connection, message);
                    }else {
                        connection.disconnect();
                    }
                });



            }



            if(!args[1]){
                message.channel.send("You need to provide a link!")
                return;
            }

            if(!message.member.voice.channel){
               message.channel.send("You must be in a Voice Channel to play the bot!")
               return;
            }

            if(!servers[message.guild.id]) servers[message.guild.id] = {
                queue: []
            }

            var server = servers[message.guild.id];

            server.queue.push(args[1]);

            if(!message.guild.voice) message.member.voice.channel.join().then(function(connection){
                play(connection, message);
            })

        break;
    }



    });
    
    
    bot.login(token);

每当我尝试播放歌曲时,都会发生此错误:

(node:5180) UnhandledPromiseRejectionWarning: 错误: FFmpeg/avconv not 成立! 在 Function.getInfo (C:\Users\picar\Desktop\DiscordMusicBot\node_modules\prism-media\src\core\FFmpeg.js:130:11) 在 Function.create (C:\Users\picar\Desktop\DiscordMusicBot\node_modules\prism-media\src\core\FFmpeg.js:143:38) 在新的 FFmpeg (C:\Users\picar\Desktop\DiscordMusicBot\node_modules\prism-media\src\core\FFmpeg.js:44:27) 在 AudioPlayer.playUnknown (C:\Users\picar\Desktop\DiscordMusicBot\node_modules\discord.js\src\client\voice\player\BasePlayer.js:47:20) 在 VoiceConnection.play (C:\Users\picar\Desktop\DiscordMusicBot\node_modules\discord.js\src\client\voice\util\PlayInterface.js:71:28) 在玩 (C:\Users\picar\Desktop\DiscordMusicBot\index.js:29:48) 在 C:\Users\picar\Desktop\DiscordMusicBot\index.js:66:17 在 processTicksAndRejections (internal/process/task_queues.js:97:5) (节点:5180) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在异步内部抛出 没有 catch 块的函数,或者通过拒绝一个承诺 不使用 .catch() 处理。终止未处理的节点进程 承诺拒绝,使用 CLI 标志 --unhandled-rejections=strict (见https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。 (拒绝编号:1) (节点:5180)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。在未来,承诺拒绝是 未处理将以非零退出终止 Node.js 进程 代码

请帮忙。

【问题讨论】:

    标签: javascript node.js ffmpeg discord discord.js


    【解决方案1】:

    你安装了 FFmpeg 吗?还是 ffmpeg-static ?

    尝试npm i ffmpeg ffmpeg-static,它应该会更新所有内容,如果有任何更改,请告诉我们!

    也尝试安装npm i @discordjs/opus,因为它是在 Discord 中播放音频所必需的 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-20
      • 2021-02-06
      • 2022-01-20
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      • 2020-06-25
      • 2021-11-18
      相关资源
      最近更新 更多