У меня проблема с дискорд-плеером. Когда я выполняю !play URL, он присоединяется к моему каналу, воспроизводит песню и все в порядке, но когда вместо ссылки я передаю поисковый запрос ex. !play Despacito, он замораживается, а затем отменяет игровое событие. Что происходит? На видео у меня есть программа под названием NetLimiter4, которая отслеживает, сколько полосы пропускания используется каким-либо приложением. Вы можете видеть, что когда я набираю despacito, он пытается найти его, а затем сдается, но когда я даю ссылку, он начинает ее воспроизводить. Все проверил, даже пробовал ставить точки останова в классе Player. По моим наблюдениям, он пытается выполнить поиск по запросу, и это успешно, но по какой-то причине это не удается. Ни трассировки стека, ничего
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.info("ready");
})
client.on("message", async (message)=>{
let args = message.content.split(" ");
if (args[0] == "!play" && args[1]){
console.info("playin0");
await player.play(message, args[1]);
console.info("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");





Возможно, вы используете discord-player выше v2, и да, 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. Теперь, когда пользователь вводит число, например 1, песня начинает воспроизводиться!
Да, может быть, они должны добавить
Спасибо! В начале я думал, что он будет запускать первый трек по умолчанию, потому что в документации ничего нет.