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 const receiver = connection.receiver
receiver.speaking.on("start", (user_id) => { receiver.speaking.on("start", (user_id) => {
const opusStream = receiver.subscribe(user_id, { receiver.subscribe(user_id, {
end: { end: {
behavior: EndBehaviorType.AfterSilence, behavior: EndBehaviorType.AfterSilence,
duration: 1000 duration: 1000
} }
}) })
.pipe(new prism.opus.OggDemuxer()) .pipe(new prism.opus.OggLogicalBitstream({
.pipe(new prism.opus.Decoder({ opusHead: new prism.opus.OpusHead({
rate: 48000, channelCount: 2,
channels: 2, sampleRate: 48000
frameSize: 960 }),
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) { } catch (error) {

82
package-lock.json generated
View File

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