Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

244
Vistas
Cómo obtener el estado de habla en tiempo real usando Discord.js v13

Trato de detectar en tiempo real si cada miembro está hablando o no en un canal de voz usando discord.js v13. En otras palabras, quiero reproducir el círculo verde de discordia en mi aplicación. Sin embargo, no pude encontrar un ejemplo de código o artículo adecuado. ¿Podrías aconsejarme?

Editar:

Con base en el consejo, pude resolverlo. El ejemplo de Recorder BOT fue útil. A continuación se muestra un ejemplo de código.

 const { Client, Intents, VoiceChannel } = require('discord.js') const { joinVoiceChannel, getVoiceConnection, entersState, VoiceConnectionStatus } = require('@discordjs/voice'); const client = new Client({ intents: ['GUILD_VOICE_STATES', 'GUILD_MESSAGES', 'GUILDS'] }); client.on("messageCreate", async (message) => { if(message.content.toLowerCase() === "test") { var connection = getVoiceConnection(message.guildId) if(!connection){ connection = joinVoiceChannel({ channelId: message.member.voice.channelId, guildId: message.guildId, adapterCreator: message.guild.voiceAdapterCreator, selfDeaf: false, selfMute: true, }); } try { await entersState(connection, VoiceConnectionStatus.Ready, 20e3); connection.receiver.speaking.on("start", (userId) => { console.log( `${userId} start` ); }); connection.receiver.speaking.on("end", (userId) => { console.log( `${userId} end` ); }); console.log( "Ready" ); } catch (error) { console.warn(error); } } }); client.login('YOUR-TOKEN')
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

La búsqueda de esto parece sugerir que esto solía ser posible, pero se rompió porque el evento no se activaba o se activaba solo una vez.

El evento client.voiceStateUpdate solía darte un VoiceState que tenía una propiedad de habla, que te decía si alguien estaba hablando (lo que parece que nunca funcionó).

La documentación actual de discord.js para VoiceState muestra que esta propiedad ya no existe, y no puede hacer lo que pide usando discord.js solo.

Editar: según el comentario de MrMythical a continuación, discord.js/voice tiene voiceRecievers, que expone voiceReciever.peakingMap.users , un mapa de usuarios que hablan actualmente. puede obtener eventos para ello registrando un oyente.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda