Discord bot 无法使用 ytdl-core 播放歌曲

Posted

技术标签:

【中文标题】Discord bot 无法使用 ytdl-core 播放歌曲【英文标题】:Discord bot unable to play song using ytdl-core 【发布时间】:2020-07-06 22:13:43 【问题描述】:

我遇到了 ytdl-core 的问题。我的机器人什么都玩不了。在我的控制台中,它显示Playing: (song),但它根本不播放任何东西。一切都很完美,除了它不能播放任何歌曲。这是代码。

const config = require('../config/settings.json');
const queueFilename = './data/queue.txt';

const queue = fs.readFileSync(queueFilename).toString().split('\n');
const queueLength = queue.length;

async function playMusic(conn, entry = 0) 
  const song = queue[entry];

  try 
    const stream = ytdl(song,  
      quality: 'highestaudio',
      highWaterMark: 1<<25
     );

    stream.on('info', info => 
      curSong = info.title;
      logger.info(`Playing: $curSong`);
      updatePresence(`► $curSong`);

      if (listeners <= 1) 
        dispatcher.pause();
        updatePresence(`❙ ❙ $curSong`);
        logger.info(`Nobody is listening in $channel.name, music has been paused.`);
      
    );
  
    dispatcher = await conn.play(stream);
  
    dispatcher.on('end', () => 
      if (entry == queueLength - 1) playMusic(conn);
      else playMusic(conn, entry + 1);
    );
  
    dispatcher.on('error', err => 
      logger.error(err);
      if (entry == queueLength - 1) playMusic(conn);
      else playMusic(conn, entry + 1);
    );
   catch (err) 
    logger.error(err);
    if (entry == queueLength - 1) playMusic(conn);
    else playMusic(conn, entry + 1);
  

【问题讨论】:

【参考方案1】:

我有同样的错误,我不知道是什么原因造成的,但我所做的是卸载它并重新安装它,现在它可以正常工作了。使用:

npm 卸载 ytdl-core npm 卸载 ytdl-core-discord npm install ytdl-core npm install ytdl-core-discord

【讨论】:

以上是关于Discord bot 无法使用 ytdl-core 播放歌曲的主要内容,如果未能解决你的问题,请参考以下文章

Discord Bot 回复自己,无法识别 message.author.bot

Discord Bot 无法识别命令名称

Discord bot 无法使用 Python 在 Heroku 上运行

Heroku Discord Bot 构建但在部署时无法工作

Discord bot 无法使用线程,卡住错误:必需的位置参数:'ctx'

Discord bot 无法使用 JDA 在 java 中发送消息