当我尝试播放Music Discord Bot时,它不会播放音乐

时间:2020-06-01 01:10:17

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

当我尝试播放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);

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

(节点:5180)UnhandledPromiseRejection警告:错误:FFmpeg / avconv不 找到了! 在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(内部/流程/task_queues.js:97:5) (节点:5180)UnhandledPromiseRejectionWarning:未处理的承诺被拒绝。该错误是由抛出异步内部引起的 没有捕获块或拒绝承诺 未使用.catch()处理。终止未处理的节点进程 承诺拒绝,请使用CLI标志--unhandled-rejections=strict (请参见https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。 (拒绝ID:1) (节点:5180)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。将来,承诺拒绝 未处理将以非零退出终止Node.js进程 代码

由于我正在观看的教程使用了所有内容的不同版本,我感到非常沮丧!!!请帮忙。

1 个答案:

答案 0 :(得分:2)

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

尝试做npm i ffmpeg ffmpeg-static,它应该更新所有内容,让我们知道它是否有任何更改!

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