Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当我尝试播放我的音乐Discord Bot时,它不会';我不能演奏音乐_Javascript_Node.js_Ffmpeg_Discord_Discord.js - Fatal编程技术网

Javascript 当我尝试播放我的音乐Discord Bot时,它不会';我不能演奏音乐

Javascript 当我尝试播放我的音乐Discord Bot时,它不会';我不能演奏音乐,javascript,node.js,ffmpeg,discord,discord.js,Javascript,Node.js,Ffmpeg,Discord,Discord.js,当我尝试播放我的音乐时,Discord机器人不会播放音乐。它使用ytdl核心和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 = {}; b

当我尝试播放我的音乐时,Discord机器人不会播放音乐。它使用ytdl核心和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)未处理的PromisejectionWarning:错误:FFmpeg/avconv未处理 建立 在Function.getInfo(C:\Users\picar\Desktop\discordsmusicbot\node\u modules\prism media\src\core\FFmpeg.js:130:11) 在Function.create(C:\Users\picar\Desktop\discordsmusicbot\node\u modules\prism media\src\core\FFmpeg.js:143:38) 在新的FFmpeg上(C:\Users\picar\Desktop\DiscordMusicBot\node\u modules\prism media\src\core\FFmpeg.js:44:27) 在AudioPlayer.playUnknown(C:\Users\picar\Desktop\DiscordMusicBot\node\u modules\discord.js\src\client\voice\player\BasePlayer.js:47:20) 在VoiceConnection.play(C:\Users\picar\Desktop\DiscordMusicBot\node\u 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 在处理和拒绝时(内部/process/task_queues.js:97:5) (节点:5180)未处理的PromisejectionWarning:未处理的承诺拒绝。此错误源于在异步 函数没有catch块,或者拒绝了 未使用.catch()处理。在未处理的服务器上终止节点进程 承诺拒绝,使用CLI标志
--未处理拒绝=严格
(见附件)。 (拒绝id:1) (节点:5180)[DEP0018]弃用警告:未处理的承诺拒绝已弃用。在未来,承诺拒绝 not handled将以非零出口终止Node.js进程 代码


我很沮丧,因为我正在看的教程使用了不同版本的所有内容!!!请帮助。

您安装了FFmpeg吗?还是静态的

尝试执行
npm i ffmpeg ffmpeg static
,它应该会更新所有内容,如果有任何更改,请通知我们

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