Which example is this bug report for?
basic
Issue description
git clone https://github.com/discordjs/voice-examples.git
cd recorder
npm i -D
npm start
Join a voice channel
/join
/record speaker@<your_user>
Talk into the mic, and after a while you'll see
👂 Started recording ./recordings/1696122267181-dimsey8_0.ogg
✅ Recorded ./recordings/1696122267181-dimsey8_0.ogg
👂 Started recording ./recordings/1696122271590-dimsey8_0.ogg
👂 Started recording ./recordings/1696122275391-dimsey8_0.ogg
👂 Started recording ./recordings/1696122278329-dimsey8_0.ogg
(node:64307) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 end listeners added to [AudioReceiveStream]. Use emitter.setMaxListeners() to increase limit
(Use node --trace-warnings ... to show where the warning was created)
✅ Recorded ./recordings/1696122278329-dimsey8_0.ogg
✅ Recorded ./recordings/1696122275391-dimsey8_0.ogg
✅ Recorded ./recordings/1696122271590-dimsey8_0.ogg
Code sample
import { createWriteStream } from 'node:fs';
import { pipeline } from 'node:stream';
import { EndBehaviorType, VoiceReceiver } from '@discordjs/voice';
import type { User } from 'discord.js';
import * as prism from 'prism-media';
function getDisplayName(userId: string, user?: User) {
return user ? `${user.username}_${user.discriminator}` : userId;
}
export function createListeningStream(receiver: VoiceReceiver, userId: string, user?: User) {
const opusStream = receiver.subscribe(userId, {
end: {
behavior: EndBehaviorType.AfterSilence,
duration: 1000,
},
});
const oggStream = new prism.opus.OggLogicalBitstream({
opusHead: new prism.opus.OpusHead({
channelCount: 2,
sampleRate: 48000,
}),
pageSizeControl: {
maxPackets: 10,
},
});
const filename = `./recordings/${Date.now()}-${getDisplayName(userId, user)}.ogg`;
const out = createWriteStream(filename);
console.log(`👂 Started recording ${filename}`);
pipeline(opusStream, oggStream, out, (err) => {
if (err) {
console.warn(`❌ Error recording file ${filename} - ${err.message}`);
} else {
console.log(`✅ Recorded ${filename}`);
}
});
}
@discordjs/version version
@discordjs/voice@0.11.0
Node.js version
Node@18.18.0
Operating system
MacOS m1
Priority this issue should have
Medium (should be fixed soon)
I have tested this issue on a development release
No response
Which example is this bug report for?
basic
Issue description
git clone https://github.com/discordjs/voice-examples.git
cd recorder
npm i -D
npm start
Join a voice channel
/join
/record speaker@<your_user>
Talk into the mic, and after a while you'll see
👂 Started recording ./recordings/1696122267181-dimsey8_0.ogg
✅ Recorded ./recordings/1696122267181-dimsey8_0.ogg
👂 Started recording ./recordings/1696122271590-dimsey8_0.ogg
👂 Started recording ./recordings/1696122275391-dimsey8_0.ogg
👂 Started recording ./recordings/1696122278329-dimsey8_0.ogg
(node:64307) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 end listeners added to [AudioReceiveStream]. Use emitter.setMaxListeners() to increase limit
(Use
node --trace-warnings ...to show where the warning was created)✅ Recorded ./recordings/1696122278329-dimsey8_0.ogg
✅ Recorded ./recordings/1696122275391-dimsey8_0.ogg
✅ Recorded ./recordings/1696122271590-dimsey8_0.ogg
Code sample
@discordjs/version version
@discordjs/voice@0.11.0
Node.js version
Node@18.18.0
Operating system
MacOS m1
Priority this issue should have
Medium (should be fixed soon)
I have tested this issue on a development release
No response