Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

358
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda