Introducción a un bot de musica
La voz en discord.js se puede utilizar para muchas cosas, tales como un bot de música, grabación o retransmisión de audio. Puede utilizar la voz conectándose a un canal de voz para obtener una Conexión de Voz, donde puede iniciar la transmisión y recepción de audio.
Instalación de FFMPEG y un codificador para el audio
Para empezar, asegúrese de tener instalados estos componentes:
- Instalar ffmpeg mediante consola: npm install ffmpeg-binaries --save ó desde su web FFmpeg
- Un codificar OPUS: npm install @discordjs/opus ó npm install opusscript
Recomendacion : Si lo activara localmente desde su PC asegurese de tener una buena conexión de internet, para que la reproduccion vaya fluida y sin cortes.
Conectandose a un canal de voz
Empezamos uniendo su BOT a un canal de voz del autor remitente, esto es importante ya que nos permitira obtener el metodo voiceConnection con el cual podemos empezar a transmitir.
Para conectando el BOT a un canal de voz, usando el metodo join() de voice.channel.
Ejemplo 34:
Desconectandose de un canal de voz
Para desconectar el BOT de un canal de voz conectado, usamos el metodo leave() de voice.channel .
Ejemplo 35:
Transmitiendo en un canal de voz
En el ejemplo anterior, observamos cómo unir a un canal de voz el BOT para obtener el metodo voiceConnection, ahora podemos iniciar la transmisión de audio.
El siguiente ejemplo muestra cómo reproducir un archivo .mp3 desde su PC, usando el metodo play()
Ejemplo 36:
Su archivo no tiene que ser sólo del formato .mp3, ffmpeg puede convertir videos y audios de muchos otros formatos.
Tambien podemos usar el metodo play(), convierte enlaces (URL's) en audio para poder reproducirlo en un canal de voz, en este ejemplo veremos como reproducir enlaces (URL's) de youtube usando el modulo npm ytdl-core
Instalar ytdl-core por consola: npm install ytdl-core
Ejemplo 37:
Así como puedes reproducir URL's de youtube, tambien podemos reproducir estaciones de radios streaming usando play() y crear bots de transmición de radios para su servidor.
Para este ejemplo usamos una estación de radio de musica electro, ustep puede elegir cualquier otro género ingresando a Radionomy que se encarga de listar estaciones de radio.
Ejemplo 38:
Recuerde que debe tener una buena conexión de internet para que la transmisión vaya fluida y sin cortes.
La importancia de la variable dispatcher
Es una instancia de StreamDispatcher, que gestiona la transmisión en un canal de voz. Podemos manejar los eventos con la varible dispatcher, saber cuando termina la reproducción, pausar, subir o bajar el volumen:
Definiciones:
Para mas metodos y clases de transmisión, usted puede consultar la documentación de Discord.js VoiceConnection.
Recomendación: si desea crear bots de transmision de radios, perronosaurio(Waxtz) creador de Baba, ha creado un BOT de radio de código abierto disponible en github: Baba Radio, simple de descargar y con muchas caracteristicas.