mirror of
https://github.com/ZHANGTIANYAO1/teamspeak-music-bot.git
synced 2026-10-02 04:52:50 +08:00
feat: add audio engine — Opus encoder, play queue with 4 modes, FFmpeg player
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
d66355a829
commit
5afc8c5224
7 files changed
+958
No files matched your search
@@ -0,0 +1,25 @@
|
||||
import { OpusEncoder } from "@discordjs/opus";
|
||||
|
||||
const SAMPLE_RATE = 48000;
|
||||
const CHANNELS = 2;
|
||||
const FRAME_DURATION_MS = 20;
|
||||
export const FRAME_SIZE = (SAMPLE_RATE * FRAME_DURATION_MS) / 1000; // 960 samples
|
||||
export const PCM_FRAME_BYTES = FRAME_SIZE * CHANNELS * 2; // 3840 bytes (16-bit stereo)
|
||||
|
||||
export interface Encoder {
|
||||
encode(pcm: Buffer): Buffer;
|
||||
decode(opus: Buffer): Buffer;
|
||||
}
|
||||
|
||||
export function createOpusEncoder(): Encoder {
|
||||
const opus = new OpusEncoder(SAMPLE_RATE, CHANNELS);
|
||||
|
||||
return {
|
||||
encode(pcm: Buffer): Buffer {
|
||||
return opus.encode(pcm);
|
||||
},
|
||||
decode(opusData: Buffer): Buffer {
|
||||
return opus.decode(opusData);
|
||||
},
|
||||
};
|
||||
}
|
||||
Reference in new issue
Block a user