feat: add audio quality selector (standard to jymaster/Hi-Res)

- MusicProvider interface: setQuality/getQuality methods
- NeteaseProvider: passes quality level to /song/url/v1
- Default: exhigh (320kbps MP3)
- Settings page: 6-option grid selector
- GET/POST /api/music/quality endpoints

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
saopig1andClaude Opus 4.6 committed 2026-03-30 03:37:26 +08:00
1 parent 0439bd047f
commit b74c8e8add
5 files changed
+142 -4

No files matched your search

+25
View File
@@ -193,5 +193,30 @@ export function createMusicRouter(
}
});
// Get current quality
router.get("/quality", (_req, res) => {
res.json({
netease: neteaseProvider.getQuality(),
qq: qqProvider.getQuality(),
});
});
// Set quality
router.post("/quality", (req, res) => {
const { quality, platform } = req.body;
if (!quality) {
res.status(400).json({ error: "quality is required" });
return;
}
if (!platform || platform === "netease") {
neteaseProvider.setQuality(quality);
}
if (!platform || platform === "qq") {
qqProvider.setQuality(quality);
}
logger.info({ quality, platform }, "Audio quality changed");
res.json({ success: true, quality });
});
return router;
}