Sé que muchas personas ya preguntaron cómo reproducir música de YouTube en el canal de voz de Discord, ¡pero no puedo encontrar nada sobre la reproducción de archivos locales en la versión 13.2.0 de djs! Intenté usar este código:
const { createReadStream } = require('fs'); const { join } = require('path'); const { createAudioResource, StreamType, createAudioPlayer, joinVoiceChannel } = require('@discordjs/voice'); joinVoiceChannel({ channelId: message.member.voice.channel.id, guildId: message.guild.id, adapterCreator: message.guild.voiceAdapterCreator }); message.guild.me.voice.setRequestToSpeak(true); let resource = createAudioResource(join(../music/audio.mp3, 'audio.mp3')); const player = createAudioPlayer(); player.play(resource); Cuando trato de eval() , mi bot se une al canal (canal de escenario) y dice que todo funcionó, ¡pero no está reproduciendo nada! ¿Cómo puedo hacer que mi bot reproduzca archivos de música locales en el canal de escenario?
Hay 2 problemas aquí.
En primer lugar, el camino está completamente equivocado. No es una cadena e incluso si intenta cambiarlo a una cadena, no será válido ya que el primer argumento termina con audio.mp3 y el segundo es audio.mp3 . Utilice esta ruta en su lugar:
let resource = createAudioResource(join('..', 'music', 'audio.mp3'));En segundo lugar, está reproduciendo audio en el reproductor, pero no en la conexión de voz. Debe suscribirse al reproductor de audio.
Este debería ser el código final:
const player = createAudioPlayer() joinVoiceChannel({ channelId: message.member.voice.channel.id, guildId: message.guild.id, adapterCreator: message.guild.voiceAdapterCreator }).subscribe(player) message.guild.me.voice.setRequestToSpeak(true); let resource = createAudioResource(join('..', 'music', 'audio.mp3')); player.play(resource)