discord-player 停留在搜索查询上

discord-player stuck on search query

我在使用 discord-player 时遇到问题。当我执行 !play URL 时,它会加入我的频道,播放这首歌并且一切正常,但是当我没有传递 link 而是传递搜索查询时。 !play Despacito,它被冻结,然后取消播放事件。到底是怎么回事?在 video 上,我有一个名为 NetLimiter4 的程序,它正在监视任何应用程序使用了多少带宽。您可以看到,当我输入 despacito 时,它会尝试搜索然后放弃,但是当我提供 link 时,它会开始播放。我检查了一切,我什至试图在播放器 class 中放置断点。根据我的观察,它尝试搜索查询,它成功了,但由于某种原因,它失败了。没有堆栈跟踪,什么都没有

import * as Discord from "discord.js";
import {Player} from "discord-player";
const client = new Discord.Client();
const player = new Player(client);



client.on("ready", ()=>{
  console.log("ready");
  
})

client.on("message", async (message)=>{
  let args = message.content.split(" ");
  if(args[0] == "!play" && args[1]){
    console.log("playin0");

    
    await player.play(message, args[1]);

    console.log("playing");
    
  }else if(args[0] == "!stop"){
    if(!player.isPlaying(message)) return message.channel.send("Can't stop playing nothing");

    player.stop(message);
    
  }
})

player.on("trackStart", (message, track) =>{
  message.channel.send(`Started playing ${track.title}!`);
})



client.login("token");

您可能正在使用 v2 以上的 discord-player,是的 discord-player 内置了搜索功能,因此您需要添加此代码 -

player.on('searchResults', (message, query, tracks) => {
const embed = new Discord.MessageEmbed()
    .setAuthor(`Search Reults`)
    .setDescription(tracks.map((k, x) => `${x}. ${k.title}`))
    .setFooter('Send the number of the song you want to play!')
    message.channel.send(embed);
})

其中 x 是数字,k 属于 Track class,现在一旦用户输入像 1 这样的数字,它就会开始播放歌曲!