当前位置: 首页 > 知识库问答 >
问题:

当我试着播放我的音乐时,它不会播放音乐

祁刚毅
2023-03-14

当我尝试播放我的音乐时,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!在功能上。getInfo(C:\Users\picar\Desktop\DiscordMusicBot\node\u modules\prism media\src\core\FFmpeg.js:130:11)在函数中。在AudioPlayer的新FFmpeg(C:\Users\picar\Desktop\DiscordMusicBot\node\uModules\prism media\src\core\FFmpeg.js:143:38)中创建(C:\Users\picar\Desktop\DiscordMusicBot\node\uModules\prism media\src\core\FFmpeg.js:44:27)。在VoiceConnection上播放未知(C:\Users\picar\Desktop\DiscordMusicBot\node\u modules\discord.js\src\client\voice\player\BasePlayer.js:47:20)。在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)。js:66:17在ProcessTicks和Rejections(internal/process/task_queues.js:97:5)(节点:5180)未处理Promisejection警告:未处理的promise拒绝。此错误源于在没有catch块的情况下抛出异步函数的内部,或者拒绝使用未处理的promise。catch()。要在未处理的promise拒绝时终止节点进程,请使用CLI标志--unhandled rejections=strict(请参阅https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)(拒绝id:1)(节点:5180)[DEP0018]弃用警告:未处理的promise拒绝已弃用。将来,未处理的promise拒绝将终止节点。具有非零退出代码的js进程

请帮忙。

共有1个答案

丰景同
2023-03-14

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

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

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

 类似资料:
  • 问题内容: 我目前正在编写一些聊天程序,现在想通过客户端命令播放音乐,例如: 因此,链接将从发送歌曲的客户端发送到服务器。然后,服务器应 不 下载歌曲,而是将其流式传输到每个客户端(他们也不应下载)。问题是,我不知道如何通过基于TCP的连接流mp3。 我的问题是,是否有人可以向我提供我所需要的库/教程/思想/代码示例。 作为替代方案,直接从一个客户的计算机流式传输音乐也是可以的。如果我(作为客户端

  • 基于jPlyer开发的音乐播放插件. 支持如下功能: 1,进度条播放 。 2,上一首,下一首,随机播放 。 3,播放完每一首后,自动播放下一首,如果下一首是最后一首,则自动播放第一首。 4,支持鼠标滚动操作,能上下翻滚屏幕。 5,歌曲时间 倒计时 ,而不是从0开始计时。 效果演示地址: http://www.cssrain.cn/jPlayer/jPlayerV2.0/demo.html

  • 用ios自带的AVAudio实现的音乐播放器。可以播放存放在电脑里面的音乐文件,可以调整声音音量。播放的时候界面会有下雪的效果。可以作为练习动画和音频播放的例子。 [Code4App.com]

  • Decibel 是一个 GTK+ 的音乐播放器。

  • MPlayer音乐播放器 MPlayer V2.0.0贺新春版于2017.01.01正式发布,本次更新要点: 代码重写,拆分核心功能和特效,只为更好的自定义 支持HTML结构自定义,只需添加指定class即可 新增诸多API接口,方便调用 删除部分无用的配置项 新增多个回调函数 新增多个配置项 截图预览 使用方法 var player = new MPlayer({ // 容器选择器名称

  • 我有一个服务器端的webapp,提供文件上传和下载功能和一个Android应用程序,上传音乐文件到网站上,然后通过一些URL请求上传文件。 有什么建议吗?