【问题标题】:Bot leaving voice channel when trying to play music and giving an "undefined" error机器人在尝试播放音乐并给出“未定义”错误时离开语音通道
【发布时间】:2020-04-14 02:11:47
【问题描述】:

我目前正在开发一个带有一些音乐命令的不和谐机器人。它通过使用“播放”命令来工作。如果您运行它,它将在 youtube 上搜索您给定的参数(使用 ytdl-core 和 simple-youtube-api)。它为您提供 5 个视频结果,您必须选择一个数字(从 1 到 5)

但是当它加入语音频道播放音乐时,它会随机离开并在聊天中发送“未定义”,没有任何更多信息或错误。我目前正在使用 VPS 来托管这个机器人,如果我在我的计算机上托管“一些”音乐播放,但仍然有很多不起作用,但在 VPS 上没有任何音乐起作用。除了未定义之外,我没有收到任何错误”,但我不知道它来自这里,因为没有给定的行。我尝试再次重新安装 using 包,但都没有成功。

这是我的代码:

https://pastebin.com/Eerm3sHH

function play(guild, song) {
  const serverQueue = queue.get(guild.id);

  if (!song) {
    serverQueue.voiceChannel.leave();
    queue.delete(guild.id);
    return;
  }

  const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
    .on('end', reason => {
      if (reason === 'Stream is not generating quickly enough.') console.log('Song ended.');
       serverQueue.songs.shift();
       play(guild, serverQueue.songs[0]);
     })
     .on('error', error => console.log(error));
     dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);

     serverQueue.textChannel.send(`**${song.title}**, is now playing!`);
   }
}

我认为问题出在此处。

【问题讨论】:

  • 我不知道是什么问题,但你把你的 ytb api 密钥留在了 pastebin 中......小心
  • 我知道,你真的不能用它做任何事,但还是谢谢你这么说

标签: javascript discord.js


【解决方案1】:

您很可能缺少 ytdl-core 所依赖的 FFMPEG。

【讨论】:

  • 否,已安装 FFMPEG
猜你喜欢
  • 2020-09-03
  • 2021-05-05
  • 1970-01-01
  • 2022-01-04
  • 2022-07-10
  • 1970-01-01
  • 2021-11-21
  • 2021-11-04
  • 2018-06-16
相关资源
最近更新 更多