来试试我做的音乐播放器吧

文章目录

    • 一、升级点
      • [1.1 更多音源](#1.1 更多音源)
      • [1.2 UI优化](#1.2 UI优化)
      • [1.3 增加WASAPI独占模式](#1.3 增加WASAPI独占模式)
      • [1.4 性能优化](#1.4 性能优化)
    • [Navidrome 简介与使用](#Navidrome 简介与使用)
      • [示例:使用预编译 `.deb` 安装包(推荐)](#示例:使用预编译 .deb 安装包(推荐))

之前做了一个音乐播放器。

9月13号,我发布了第一版,以及文章和视频,有不少朋友提了建议和批评,非常感谢。

https://mp.weixin.qq.com/s/ysRpJZx43u_ltmJw3QHCCQ

经过2个星期的打磨,现在版本已经升级到0.4.1了,我目前觉得效果还行,故再次分享出来,请大家使用和指导。

🔗地址:https://github.com/LingyunStudio/RustMusic

详细的介绍看上面之前发的文章即可,本文主要介绍一下升级/优化的内容。

最新版的视频展示:https://space.bilibili.com/434633524

本软件不提供音源,音源来自你自己的账号权益,请支持正版。技术上可以实现,但我不能做。

一、升级点

写一下主要的吧。

1.1 更多音源

  • 支持网x云、QX音源、K狗,其实后面2个是一家的:
    • 登录后,就可以导入你的歌单了,支持一键全部导入,登录后你有会员即可听VIP歌曲
    • 歌词支持逐字显示,暂时仅支持前面2个音源
    • 内置了3大音源的一些歌单,比如:热歌榜、新歌榜
    • 点击歌手名或者专辑名,可以查看该歌手/专辑的更多内容
  • 支持B站:
    • 仅播放音频,不播放视频
    • 粘贴视频url、BV号均可
    • 支持收听某一UP主的所有视频
    • 支持收藏UP主
    • UP主视频支持排序:最新、最多播放、最多收藏
    • 登录后可以播放自己的收藏夹内容
  • 支持Navidrome:
    • 即收听自己服务器上保存的歌曲
    • Navidrome教程下文写了

1.2 UI优化

  • 改成无边框的简约设计。
  • 新增了一些内置皮肤。
  • 用户可以自定义背景。

1.3 增加WASAPI独占模式

简而言之就是,软件独占一个音频输出设备,比如耳机,其它任何软件都不能再使用这个设备播放声音了。

软件独占音频输出设备,可以在一定程度上提高收听效果。

注意:

  • 输出设备支持WASAPI独占才行
  • 开启后,下一首歌曲生效
  • 关闭后立即生效
  • 开启时,其它音频、视频会无法播放,关闭独占立刻恢复

1.4 性能优化

  • 封面三级缓存:160px 列表小图 / 600px 详情图按场景加载,滚动解码内存降一个数量级
  • 大列表虚拟化渲染,DOM 与解码缓存不随曲库规模线性增长
  • 托盘隐藏即挂起 WebView 并主动裁剪工作集:788MB → 66MB 仅需约 2 秒
  • 扫描并行度受控、在线缓存防御性封顶,长时间重度使用不再只增不减

日常听歌,且软件处于前台时,内存占用约200-300MB。

软件最小化到托盘后,内存立即降低到几十MB。

浏览长歌单、浏览B站UP主的视频(大封面)的时候,内存会升高(尤其是浏览多个B站UP主的很多视频的时候),最多能到1GB左右,这个我觉得还是能接受的,而且最小化时会立即下降。

文章开头分享的视频里面全程展示了内存变化情况。


其它的就是各种bug修复了。

当然了,现在可能还有一些不完美的地方,不断改进嘛。

这里面很多优化都来自于大家的建议,这种感觉很好,感谢!

感兴趣的看看就行。

Navidrome 是开源、轻量的个人音乐服务器和网页流媒体播放器。可托管本地音乐库,用浏览器或第三方 App 随时随地听歌,相当于私有 Spotify / Apple Music。

简单来说就是:你把歌曲文件放在你的服务器上面,然后使用Navidrome 这个软件来管理,你就可以通过网页在任意设备上收听服务器上的歌曲了。

音源的话,其实你搜一下或者问下AI就行,有很多的,我不写出来咯。

核心特点:

  • Go 编写,资源占用极低,树莓派、低配 NAS、廉价云服务器均可流畅运行。
  • 兼容 Subsonic API,支持音流、DSub、Play:Sub、Amperfy 等第三方客户端。
  • 支持 Windows、macOS、Linux,常用 Docker 部署;自带现代化 Web 播放器。
  • 多用户,各自拥有播放历史、收藏、评分和歌单。
  • 自动读取音乐标签,可接入 Last.fm / Spotify 补全封面和艺术家简介。

**适用场景:**电脑或 NAS 中有大量本地音乐,尤其无损音乐,想在外用手机随时流播,又不占手机空间。Navidrome 是目前流行的个人云音乐方案之一。

在 Linux(以 Ubuntu / Debian 系为例)上安装 Navidrome,官方提供了两种主要方式,当前最新版本为 v0.64.2 。可以直接前往 Navidrome Releases 查看各架构的下载包。

官网:https://www.navidrome.org/docs/installation/linux/

GitHub:https://github.com/navidrome/navidrome/

示例:使用预编译 .deb 安装包(推荐)

使用 .deb 会由包管理器自动处理 ffmpeg 等依赖,后续维护也更方便。

(1)更新系统并准备环境

bash 复制代码
sudo apt update && sudo apt upgrade -y

(2)下载最新版本的安装包(以 64 位 x86_64 架构为例):

bash 复制代码
wget https://github.com/navidrome/navidrome/releases/download/v0.64.2/navidrome_0.64.2_linux_amd64.deb

(3)安装

推荐使用 apt 本地安装,它会自动补齐依赖:

bash 复制代码
sudo apt install ./navidrome_0.64.2_linux_amd64.deb

(4)配置音乐库路径

建议使用Navidrome 配置文件里面设置的默认路径,或者非root目录以外的路径。

查看配置文件:

bash 复制代码
sudo cat /etc/navidrome/navidrome.toml

可以看到:

bash 复制代码
DataFolder = "/var/lib/navidrome"
MusicFolder = "/opt/navidrome/music"

默认的音乐文件路径就是:/opt/navidrome/music

上传音乐文件到这个目录。

(5)给新音乐目录赋予正确的权限

bash 复制代码
sudo chown -R navidrome:navidrome /opt/navidrome/music

(6)重启 Navidrome 服务

bash 复制代码
sudo systemctl restart navidrome

(7)查看运行状态

bash 复制代码
systemctl status navidrome

成功检测到2个音乐文件。

(8)启动并设置开机自启

bash 复制代码
sudo systemctl enable --now navidrome

启动成功后,在浏览器访问 服务器ip地址:4533,首次打开会提示创建管理员账户,记一下用户名和密码。

点击界面右上角头像可以设置中文:

其实只是用Navidrome也是可以的,无论手机还是电脑,打开链接就可以播放你存在服务器里面的歌曲了。

我只是在软件里面支持了Navidrome歌曲的播放。

我不使用这个,是有朋友提了这个建议,我看了下Navidrome还不错,就添加了这个功能。


软件支持最好的是win11,win10我懒得测试了。

Linux和macos的,可以自己用AI构建一下,我没那么多精力了,反正是开源的嘛,找AI改一改很快的。

相关推荐
李航19838 小时前
DeepSeekAI建模三 - 实战建模一组柜子
人工智能·python·计算机视觉·ai·ai编程
Maydaycxc9 小时前
实战:基于 Computer Use 实现网页元素 AI 自愈,告别固定 XPath 定位
人工智能·ai·rpa
LMT流氓兔9 小时前
第五单元——第4课:给工具参数加校验
java·前端·算法·ai·langchain
程工造Agent9 小时前
从 0 到 1 学 Codex 源码:顺着 main 读懂 Rust 闭包与 async move
rust·ai编程
运维开发王义杰11 小时前
用 AI 编程做角色视频:Unreal、Unity 和浏览器方案怎么选?
ai
海带紫菜菠萝汤11 小时前
MemT 1.0 开源:128K 历史装进 40 MiB,记忆从外挂搬进模型里
人工智能·深度学习·ai·开源·大模型
一枕槐安48711 小时前
Rerank 重排实测:BGE、Cohere、Jina 选型与 RAG 效果提升的工程账
人工智能·ai·jina
wflynn11 小时前
NVIDIA 将 Run:ai 平台全面开源,纳入 DSX AI Factory 体系
ai·技术
俊哥V11 小时前
每日 AI 研究简报 · 2026-10-20
人工智能·ai
探索云原生12 小时前
Ascend vNPU 实战:从原生 Docker 到 Ascend Docker Runtime
linux·ai·云原生·kubernetes·gpu