mirror of
https://github.com/ZHANGTIANYAO1/teamspeak-music-bot.git
synced 2026-10-02 04:52:50 +08:00
Fix @discordjs/opus ESM import for Node 24 compatibility. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
27 lines
696 B
TypeScript
27 lines
696 B
TypeScript
import opusModule from "@discordjs/opus";
|
|
const { OpusEncoder } = opusModule;
|
|
|
|
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);
|
|
},
|
|
};
|
|
}
|