Skip to content

[BUG]音源插件路径音质被硬编码为hq(极高),导致无法切换无损及以上音质 #180

Closed

Description

@hero-sky

检查清单

  • 我已检索仓库中所有的 Issues,确保我没有重复提交问题;或有相似 Issue,但我觉得我的情况不包含在那个相似 Issue 之内
  • 我已经找到了可以复现这个问题的方法,并且写在了下面的「具体信息」中
  • 此问题可以在我的设备和当前环境中稳定复现
  • 此问题可以在最新版本 (Latest Release) 中复现
  • 此问题是在我更新到当前版本后才出现的

当前系统环境

Windows11

当前版本

v1.0.0

具体信息

问题描述

在启用音源插件、且走插件兜底取地址时,播放器写死了始终以 hq(极高) 解析,不会使用用户在「在线歌曲音质」里选择的 无损及以上档位。

复现步骤

  1. 设置 → 在线歌曲音质 选为 lossless 或 hi-res以上;
  2. 启用一个音源插件(如付费的ikun音源插件、聆澜音源插件);
  3. 播放一首官方接口无法提供该音质的歌曲(灰歌 / VIP 歌,或当前账号无无损权限的普通歌曲);
  4. 观察实际播放音质。

预期行为

应按所选音质(lossless / hi-res)向插件请求并返回对应地址。

实际行为

实际始终为 hq。

根因(代码定位)

src/services/audioSource.ts 的 resolveOnlineUrl:
官方接口正确按偏好传档位 resolveNeteaseUrl(track, songLevel, ...),
但紧接着的插件兜底写死了音质:

const pluginResolved = await resolveByPlugin(track, "hq", options.skipPluginIds ?? []);

插件 musicUrl 收到的 req.quality 永远是 hq,
用户选择的 lossless / hi-res 没有传给插件,质量映射无法被触发。
(下载链路 src/services/downloadSource.ts 已是 resolveByPlugin(track, level),
印证播放链路此处是遗漏。)

建议修复

- const pluginResolved = await resolveByPlugin(track, "hq", options.skipPluginIds ?? []);
+ const pluginResolved = await resolveByPlugin(track, songLevel, options.skipPluginIds ?? []);

这样插件路径与官方路径行为一致,插件实现质量映射后即可生效。

Activity

  1. github-actions commented on Aug 19, 2026

    @github-actions

    👋 您好 @hero-sky,感谢提交 Issue!
    🚀 我们已经收到您的反馈,会尽快确认您的问题。

    👋 Hi @hero-sky, thanks for opening this issue!
    🚀 We have received your report and will review it as soon as possible.

  2. changed the title [-][BUG][/-] [+][BUG]音源插件路径音质被硬编码为hq(极高),导致无法切换无损及以上音质[/+] on Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions