У меня возникли проблемы с созданием бота discord, который воспроизводит музыку

#javascript #discord #discord.js #bots #ytdl

#javascript #Discord #discord.js #боты #ytdl

Вопрос:

Бот успешно подключается к голосовому каналу, но не воспроизводит песню с введенного мной URL, код:

 if(message.content.startsWith(prefix   "join"))
{
  message.channel.send("Entrando a "   message.member.voiceChannel);
  if (message.member.voiceChannel) 
  {
    const permissions = message.member.voiceChannel.permissionsFor(message.client.user);
    if (!permissions.has('CONNECT')) 
    {
      return message.channel.send('No me puedo conectar a ese canal')
    }
    if (!permissions.has('SPEAK')) {
      return message.channel.send('No puedo hablar en ese canal')
    }

    let connection = await message.member.voiceChannel.join();
    let dispatcher = connection.playStream(ytdl('https://www.youtube.com/watch?v=PLRrL9OsAF8amp;t=18s'))
      .on('start', () => {
        message.reply('Empieza la musica');
      })
      .on('end', () => {
          message.reply('Termino la musica');
          message.member.voiceChannel.leave();
      })
      .on('error', error => {
          message.reply('Error al intentar reproducir la cancion');
      });
    dispatcher.setVolumeLogarithmic(5 / 5);
  } 
  else 
  {
    message.reply('Tenes que estar dentro de un chat de voz');
  }
}  

  

Кто-нибудь может определить потенциальную причину этого?

Комментарии:

1. Отладьте и получите более подробную информацию о проблеме. Отображается ли ошибка на консоли? Что-то происходит, когда вы пытаетесь выполнить команду для прослушивания музыки на discord? Добавьте больше информации к вашему вопросу, он очень пустой

2. @Aks Jacoves Привет, спасибо за комментарий, ошибка не отображается на консоли, предполагается, что с помощью команды «присоединиться» бот переходит на голосовой канал и автоматически воспроизводит песню с URL, проблема в том, что когда я запускаю команду, бот подключается к голосовому каналу, но не воспроизводит песню.

Ответ №1:

Из того, что я могу сказать, вы используете Discord.js V11, который не является рекомендуемой версией (V12)

Из документов, хотя кажется, что, возможно, вам нужно передать необязательный аргумент в ytdl

 // Play streams using ytdl-core
const ytdl = require('ytdl-core');
const streamOptions = { seek: 0, volume: 1 };
voiceChannel.join()
    .then(connection => {
    const stream = ytdl('https://www.youtube.com/watch?v=XAWgeLF9EVQ', { filter : 'audioonly' });
    const dispatcher = connection.playStream(stream, streamOptions);
})
.catch(console.error);
  

Если это не сработает Discord.js Сервер поддержки можно найти здесь. Они официально перешли на версию 12 в марте, но они все еще могут вам помочь