Skip to content

feat: 支持优先使用已启用的音源插件 - #244

Open
kid141252010 wants to merge 1 commit into
SPlayer-Dev:devfrom
kid141252010:feat/prefer-plugin-source
Open

feat: 支持优先使用已启用的音源插件#244
kid141252010 wants to merge 1 commit into
SPlayer-Dev:devfrom
kid141252010:feat/prefer-plugin-source

Conversation

@kid141252010

Copy link
Copy Markdown
Contributor

改动类型

  • 新功能(feat)
  • 缺陷修复(fix)
  • 重构 / 优化(不改变对外行为)
  • 文档(docs)
  • 其他(请在「改动说明」中注明)

是否包含破坏性变更

  • 是(请在「改动说明」中详细描述)

改动说明

背景与动机

在安装了音源插件(如特定平台解析/解密插件)时,部分歌曲官方在线接口可能由于 VIP、地区版权等原因无法播放,或用户更期望直接使用第三方音源插件获取的音源直链。原逻辑中插件仅在官方接口解析失败后作为兜底使用,无法主动优先使用插件。

主要变更

  1. 设置项新增
    • 在播放设置中增加「优先使用插件音源 (preferPluginSource)」配置项,默认关闭(保持既有行为兼容)。
    • 完善中英双语 i18n (zh-CN.json / en-US.json)。
  2. 播放源解析链路调整 (audioSource.ts):
    • 重构 resolveOnlineUrl,拆分出 resolveOfficialOnlineUrl 独立解析官方接口。
    • preferPluginSource 开启时,优先调度 resolveByPlugin 解析直链;若插件未命中或仅返回试听,则回退至官方接口。
    • 未开启时保持原有逻辑(官方优先 -> 插件兜底 -> 试听回退)。
  3. 下载源解析同步 (download/source.ts):
    • 同步 preferPluginSource 偏好,开启时优先尝试插件下载源。
  4. 预加载缓存控制 (nextTrackPreloader.ts):
    • preferPluginSource 纳入下一曲预加载的上下文构建键(buildContextKey)及响应式监听器列表,确保用户切换设置时预加载缓存正确失效和刷新。

测试情况

  • 类型检查:本地通过 pnpm typecheck(包含 tscvue-tsc 无任何报错)。
  • 代码规范:运行 prettier --check,所有变更文件格式均符合规范。
  • 功能验证(Windows 11)
    • 未开启「优先使用插件音源」:行为与主分支一致,官方在线优先,插件作为失败兜底。
    • 开启「优先使用插件音源」:优先请求启用中的音源插件;若插件解析成功直接播放/下载插件源;若插件禁用或解析失败,平滑降级回退至官方接口。

自查清单

  • 本 PR 只包含一个主要功能 / 修复,没有夹带无关改动
  • 已在本地完整测试通过;AI 生成的代码同样自行测试并审阅过,未做未经验证的提交
  • 已运行 pnpm format,并确认 pnpm typecheckpnpm lint 通过
  • 改动涉及原生模块时已 pnpm build:native 验证;未手写 native/*/index.d.ts
  • 已向目标分支提交

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant