Found a way to be more like the example code. Still not sure where the 2.0 alpha of prism comes from, but what the example uses I now have

This commit is contained in:
Bradley Bickford 2023-11-21 19:25:51 -05:00
parent 16b41fad2b
commit 66cec55bb6
2 changed files with 65 additions and 34 deletions

View File

@ -121,19 +121,22 @@ client.on(Events.VoiceStateUpdate, async (oldState, newState) => {
const receiver = connection.receiver
receiver.speaking.on("start", (user_id) => {
const opusStream = receiver.subscribe(user_id, {
receiver.subscribe(user_id, {
end: {
behavior: EndBehaviorType.AfterSilence,
duration: 1000
}
})
.pipe(new prism.opus.OggDemuxer())
.pipe(new prism.opus.Decoder({
rate: 48000,
channels: 2,
frameSize: 960
.pipe(new prism.opus.OggLogicalBitstream({
opusHead: new prism.opus.OpusHead({
channelCount: 2,
sampleRate: 48000
}),
pageSizeControl: {
maxPackets: 10
}
}))
.pipe(fs.createWriteStream("." + path.sep + "media" + path.sep + "voice_audio" + path.sep + newCallID + path.sep + `${Date.now()}-${user_id}.pcm`))
.pipe(fs.createWriteStream("." + path.sep + "media" + path.sep + "voice_audio" + path.sep + newCallID + path.sep + `${Date.now()}-${user_id}.ogg`))
})
} catch (error) {

82
package-lock.json generated
View File

@ -17,7 +17,7 @@
"libsodium-wrappers": "^0.7.13",
"mysql": "^2.18.1",
"mysql2": "^3.6.3",
"prism-media": "^1.3.5"
"prism-media": "^2.0.0-alpha.0"
},
"devDependencies": {
"eslint": "^8.27.0"
@ -120,6 +120,31 @@
"node": ">=16.9.0"
}
},
"node_modules/@discordjs/voice/node_modules/prism-media": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.5.tgz",
"integrity": "sha512-IQdl0Q01m4LrkN1EGIE9lphov5Hy7WWlH6ulf5QdGePLlPas9p2mhgddTEHrlaXYjjFToM1/rWuwF37VF4taaA==",
"peerDependencies": {
"@discordjs/opus": ">=0.8.0 <1.0.0",
"ffmpeg-static": "^5.0.2 || ^4.2.7 || ^3.0.0 || ^2.4.0",
"node-opus": "^0.3.3",
"opusscript": "^0.0.8"
},
"peerDependenciesMeta": {
"@discordjs/opus": {
"optional": true
},
"ffmpeg-static": {
"optional": true
},
"node-opus": {
"optional": true
},
"opusscript": {
"optional": true
}
}
},
"node_modules/@eslint/eslintrc": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
@ -611,6 +636,11 @@
"node": ">=6.0.0"
}
},
"node_modules/duplex-child-process": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/duplex-child-process/-/duplex-child-process-1.0.1.tgz",
"integrity": "sha512-tWbt4tyioDjyK5nh+qicbdvBvNjSXsTUF5zKUwSauuKPg1mokjwn/HezwfvWhh6hXoLdgetY+ZlzU/sMwUMJkg=="
},
"node_modules/ecdsa-sig-formatter": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
@ -1820,28 +1850,11 @@
}
},
"node_modules/prism-media": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.5.tgz",
"integrity": "sha512-IQdl0Q01m4LrkN1EGIE9lphov5Hy7WWlH6ulf5QdGePLlPas9p2mhgddTEHrlaXYjjFToM1/rWuwF37VF4taaA==",
"peerDependencies": {
"@discordjs/opus": ">=0.8.0 <1.0.0",
"ffmpeg-static": "^5.0.2 || ^4.2.7 || ^3.0.0 || ^2.4.0",
"node-opus": "^0.3.3",
"opusscript": "^0.0.8"
},
"peerDependenciesMeta": {
"@discordjs/opus": {
"optional": true
},
"ffmpeg-static": {
"optional": true
},
"node-opus": {
"optional": true
},
"opusscript": {
"optional": true
}
"version": "2.0.0-alpha.0",
"resolved": "https://registry.npmjs.org/prism-media/-/prism-media-2.0.0-alpha.0.tgz",
"integrity": "sha512-QL9rnO4xo0grgj7ptsA+AzSCYLirGWM4+ZcyboFmbkYHSgaXIESzHq/SXNizz2iHIfuM2og0cPhmSnTVMeFjKg==",
"dependencies": {
"duplex-child-process": "^1.0.1"
}
},
"node_modules/process-nextick-args": {
@ -2441,6 +2454,14 @@
"prism-media": "^1.3.5",
"tslib": "^2.5.0",
"ws": "^8.13.0"
},
"dependencies": {
"prism-media": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.5.tgz",
"integrity": "sha512-IQdl0Q01m4LrkN1EGIE9lphov5Hy7WWlH6ulf5QdGePLlPas9p2mhgddTEHrlaXYjjFToM1/rWuwF37VF4taaA==",
"requires": {}
}
}
},
"@eslint/eslintrc": {
@ -2803,6 +2824,11 @@
"esutils": "^2.0.2"
}
},
"duplex-child-process": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/duplex-child-process/-/duplex-child-process-1.0.1.tgz",
"integrity": "sha512-tWbt4tyioDjyK5nh+qicbdvBvNjSXsTUF5zKUwSauuKPg1mokjwn/HezwfvWhh6hXoLdgetY+ZlzU/sMwUMJkg=="
},
"ecdsa-sig-formatter": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
@ -3718,10 +3744,12 @@
"dev": true
},
"prism-media": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.5.tgz",
"integrity": "sha512-IQdl0Q01m4LrkN1EGIE9lphov5Hy7WWlH6ulf5QdGePLlPas9p2mhgddTEHrlaXYjjFToM1/rWuwF37VF4taaA==",
"requires": {}
"version": "2.0.0-alpha.0",
"resolved": "https://registry.npmjs.org/prism-media/-/prism-media-2.0.0-alpha.0.tgz",
"integrity": "sha512-QL9rnO4xo0grgj7ptsA+AzSCYLirGWM4+ZcyboFmbkYHSgaXIESzHq/SXNizz2iHIfuM2og0cPhmSnTVMeFjKg==",
"requires": {
"duplex-child-process": "^1.0.1"
}
},
"process-nextick-args": {
"version": "2.0.1",