mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
2177 字
6 分钟
C# 本地播放器
2026-10-25

全能本地播放器(Local Player)项目介绍#

一款基于 .NET 10 + Windows Forms + LibVLCSharp 打造的 Windows 本地音视频播放器。它采用经典的桌面窗体布局,内置 libvlc 3.0.24 播放内核,开箱即用(无需预装 VLC),专注于把歌词显示、歌单库管理、桌面悬浮歌词、多套深色主题以及按文件独立记忆等日常高频细节打磨扎实。

主界面全貌

核心亮点与设计理念#

与常见的播放器不同,本项目围绕几条清晰的产品准则构建:

  1. 绝不偷偷改动用户文件:歌单与设置方案均采用“显式保存才落盘”机制。修改播放列表后仅在标题栏提示 【歌单名·未保存】,切换或替换列表前必定弹窗确认;删除歌单仅移除 .m3u8 索引,绝不触碰原始媒体文件。
  2. 绝不静默失败:无论是离线网络盘文件、被其它软件抢占的全局媒体快捷键,还是损坏的 settings.json 配置文件,程序都会在状态栏或诊断日志中给出明确原因。即使配置文件部分损坏,也会按字段逐个抢救可用配置并自动备份原文件。
  3. 按文件记住你的习惯:播放进度、音画同步延迟、字幕延迟、歌词时间轴偏移、画面旋转方向,甚至上次选择的音轨与字幕轨(含“特意关闭字幕”),都会按单个文件独立记忆,下次打开自动恢复。
  4. 默认完全离线,联网可控:在线歌词与封面(对接 LrcAPI)默认留空关闭,只有用户主动填写自建或信任的服务地址后才会发起请求。

功能速览#

1. 全格式播放与视频工具#

底层依托 VLC 3.0.24 内核,通吃主流音视频容器与网络串流(HTTP / RTSP / RTMP 等):

  • 播放控制:支持 0.5×~2.0× 倍速、A-B 区间循环、一轮不重复的“洗牌袋”随机播放、音量均衡(normvol 滤镜)与睡眠定时器(支持“播完当前曲目后暂停”或倒计时暂停)。
  • 视频增强:支持 7 种去隔行滤镜、6 种画面旋转与翻转(竖屏视频救星)、音频延迟(±50ms)与字幕延迟(±250ms)微调、双向逐帧步进(E / Shift+E)以及全屏画面右键快捷换轨。

视频播放与侧栏视频工具页

2. 侧栏歌词、内嵌标签与在线词封#

右侧可折叠侧栏包含 歌词 / 封面 / 媒体信息 三个标签页,支持拖拽调整宽度或独立拆出为悬浮窗:

  • 多源歌词自动匹配:按优先级自动加载同目录 .lrc、音频内嵌歌词(纯手写解析 ID3v2 USLT/SYLT、FLAC LYRICS、MP4 ©lyr)、同目录 .txt,以及可选的 LrcAPI 在线歌词。
  • 双语歌词与时间轴微调:同一时间戳的原文与译文自动归为同一句并同步高亮;支持点击任意歌词行跳转播放、悬停查看对应时间码,以及 Ctrl+[ / Ctrl+] 实时调整歌词偏移(±0.5 秒一档)。

右侧侧栏歌词与封面

3. 桌面悬浮歌词与私有字体库#

按下 Ctrl+D 即可开启无边框置顶的桌面歌词窗口,适合在看文档或游戏时后台听歌:

  • 逐像素透明与描边渲染:背景完全透明,文字自带深色描边,在纯白网页上依然清晰可读;鼠标悬停时才浮现半透明圆角底板与底部播放控制条。
  • 一键锁定穿透:锁定后开启鼠标穿透(WS_EX_TRANSPARENT)且永不抢夺焦点,随时可通过全局热键 Ctrl+Alt+D 或系统托盘菜单解锁。
  • 实时外观预览与字体管理:拖动滑块可实时调节字号(12~96 磅)与不透明度;支持直接拖入 .ttf / .otf / .ttc 字体文件导入私有字体库,并在字体管理器中直接用各字体自身渲染预览样例。

桌面悬浮歌词与外观对话框

4. 播放列表与歌单库管理#

解决了原生 VLC 长期缺失的列表管理痛点:

  • 实时汇总总时长:后台单线程自动扫描曲目时长,并在列表顶部实时汇总整个列表(或当前搜索过滤结果)的总时长。
  • 「下一首播放」插播队列:支持将任意曲目排入优先队列(最多 20 首,标题前标 ▶),插播完毕后自动回到原列表位置继续播放。
  • 标准 m3u8 歌单库:内置命名歌单库管理窗口,每个歌单对应数据目录下的一个标准 .m3u8 文件,支持拖拽调整歌单顺序、多选批量重命名、查重选中以及一键切换。

播放列表与歌单库

5. 五套内置主题与悬浮磁吸布局#

针对 WinForms 原生控件不支持深色模式的问题,项目通过自绘菜单/滑块控件以及调用 dwmapi / uxtheme 原生接口,实现了从标题栏、菜单栏到列表滚动条的完整主题切换:

主题名称视觉风格与适用场景
跟随系统自动检测 Windows 10/11 浅色或深色模式并实时无缝切换
浅色经典明亮浅灰配色(#F0F0F0),配蓝色强调色(#0A84FF)
深色舒适暗灰配色(#1E1E1E),适合日常夜间使用
OLED 纯黑纯黑底色(#000000),适合 OLED 屏幕与暗光观影
VLC 橙深灰底色搭配标志性橙色强调色(#FF8800)

此外,侧栏与播放列表均可脱离主窗口成为独立悬浮窗,靠近主窗口四边时会自动磁吸对齐并随主窗口同步移动(致敬经典 Winamp 体验)。

主题对比与悬浮磁吸

6. Windows 系统级集成与设置方案#

  • 系统媒体控件(SMTC)与任务栏按钮:接入 Windows 10/11 音量弹窗与锁屏界面,显示曲名、歌手、专辑封面与进度,支持直接点击上一首/播放暂停/下一首;任务栏缩略图悬停同样提供控制按钮。
  • 多套设置方案(Profiles):支持将当前设置命名保存为多套 .json 方案,载入时可按 7 大分组(播放、界面与主题、窗口与悬浮、歌词、音视频输出、行为、会话)勾选部分导入,并直观对比每组与当前设置的差异项数。

SMTC 与设置方案 SMTC 与设置方案

技术架构与质量保障#

模块目录代码规模核心职责
Core/64 个文件(约 1.1 万行)PlayerEngine 播放内核封装、列表与歌单库、手写二进制标签解析(ID3v1/v2、FLAC、MP4)、LrcAPI 客户端、设置抢救与诊断日志
Ui/46 个文件(约 9,800 行)5 套主题调色板、自绘滑块与渲染器、桌面歌词分层窗口、侧栏自绘视图、SMTC 与全局热键互操作
MainForm*.cs32 个文件(约 1.2 万行)主窗体各功能模块装配、跨控件事件协调与会话恢复
tools/SmokeTest/59 个文件(约 1.77 万行)20 步全量自动化冒烟测试(现场合成音频/标签/字体样本与本地假服务器,含强制变异验证)

下载与快速开始#

直接使用发行包#

项目提供两种开箱即用的发布形态(均已内置 .NET 运行时与 x64 libvlc 内核,无需安装任何依赖):

  • 安装版(local-player-<版本>-setup.exe):每用户安装至 %LocalAppData%\Programs\全能本地播放器,不弹 UAC,可选注册常见音视频格式的「打开方式」候选,卸载时不删除 %AppData%\播放器 下的个人歌单与配置。
  • 便携版(local-player-<版本>-portable.zip):解压即用,不写注册表;可通过设置环境变量 播放器_DATA_DIR 将数据目录重定向至 U 盘或当前文件夹。
  • 下载地址:
  • 仓库地址:https://github.com/non266/local-player
  • 最新发布(Releases):https://github.com/non266/local-player/releases
  • 历史版本归档:/cshap/local-player/archive/

从源码构建#

环境需安装 .NET 10 SDK(Windows 10/11 x64):

Terminal window
# 1. 克隆仓库
git clone https://github.com/non266/local-player.git
cd local-player
# 2. 还原 NuGet 依赖
dotnet restore 播放器.csproj
# 3. 编译 Release 版本
dotnet build 播放器.csproj -c Release
# 4. 启动运行
.\bin\Release\net10.0-windows10.0.19041.0\播放器.exe
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

C# 本地播放器
https://non266.top/posts/local-player/
作者
non_no266
发布于
2026-10-25
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录