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

364
Vistas
Estoy tratando de hacer que mi bot de discord grabe audio usando prism-media como se dice en el ejemplo de @discordjs/voice pero recibo un error

Estoy haciendo un bot de discord que graba el canal de voz.

las bibliotecas discord.js@13.6.0 , @discordjs/voice@0.8.0 , prism-media@1.3.2

mis importaciones

 const { createWriteStream } = require("node:fs") const { pipeline } = require("node:stream") const { Client, Intents } = require("discord.js"); const { joinVoiceChannel, getVoiceConnection, EndBehaviorType } = require("@discordjs/voice"); const prism = require('prism-media') const { token } = require("./secrets.json");

la parte de mi código que falla

 const oggStream = new prism.opus.OggLogicalBitstream( { opusHead: new prism.opus.OpusHead({ channelCount: 2, sampleRate: 48000, }), pageSizeControl: { maxPackets: 10, }, } );

Esto es idéntico a lo que se muestra en la página de github de @discordjs/voice https://github.com/discordjs/voice/blob/309ac8596cac422cf22e51331869e011c720124c/examples/recorder/src/createListeningStream.ts#L19

el error

 C:\Users\user\OneDrive\Documents\source\discord_bot\index.js:60 opusHead: new prism.opus.OpusHead({ ^ TypeError: prism.opus.OpusHead is not a constructor at Client.<anonymous> (C:\Users\user\OneDrive\Documents\source\discord_bot\index.js:60:27) at Client.emit (node:events:390:28) at VoiceStateUpdate.handle (C:\Users\user\OneDrive\Documents\source\discord_bot\node_modules\discord.js\src\client\actions\VoiceStateUpdate.js:38:14) at Object.module.exports [as VOICE_STATE_UPDATE] (C:\Users\user\OneDrive\Documents\source\discord_bot\node_modules\discord.js\src\client\websocket\handlers\VOICE_STATE_UPDATE.js:4:35) at WebSocketManager.handlePacket (C:\Users\user\OneDrive\Documents\source\discord_bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:351:31) at WebSocketShard.onPacket (C:\Users\user\OneDrive\Documents\source\discord_bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22) at WebSocketShard.onMessage (C:\Users\user\OneDrive\Documents\source\discord_bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10) at WebSocket.onMessage (C:\Users\user\OneDrive\Documents\source\discord_bot\node_modules\ws\lib\event-target.js:199:18) at WebSocket.emit (node:events:390:28) at Receiver.receiverOnMessage (C:\Users\user\OneDrive\Documents\source\discord_bot\node_modules\ws\lib\websocket.js:1137:20)
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

El problema es con sus importaciones:

 const { createWriteStream } = require("node:fs") const { pipeline } = require("node:stream") const { Client, Intents } = require("discord.js"); const { joinVoiceChannel, getVoiceConnection, EndBehaviorType } = require("@discordjs/voice"); const { opus } = require("prism-media"); // THIS IS THE WRONG BIT const { token } = require("./secrets.json");

Estás importando opus desde prism-media . No tienes una variable de prism . Sin embargo, lo llamas aquí:

 const oggStream = new prism.opus.OggLogicalBitstream( //WRONG { opusHead: new prism.opus.OpusHead({ //WRONG channelCount: 2, sampleRate: 48000, }), pageSizeControl: { maxPackets: 10, }, crc: false } );

Sin embargo, no importó prism , solo prism.opus . Cambia tu código a:

 const oggStream = new opus.OggLogicalBitstream( { opusHead: new opus.OpusHead({ channelCount: 2, sampleRate: 48000, }), pageSizeControl: { maxPackets: 10, }, crc: false } );

O puede cambiar la importación, pero eso puede romper otro código existente.

 const prism = require("prism-media"); // THIS INSTEAD OF const { opus } = require("prism-media"); // THIS
about 4 years ago · Juan Pablo Isaza Denunciar

0

Utilice prism-media@2.0.0-alpha.0 .

Para esto:

 npm i prism-media@2.0.0-alpha.0
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