2177 字
6 分钟
C# 本地播放器
全能本地播放器(Local Player)项目介绍
一款基于 .NET 10 + Windows Forms + LibVLCSharp 打造的 Windows 本地音视频播放器。它采用经典的桌面窗体布局,内置 libvlc 3.0.24 播放内核,开箱即用(无需预装 VLC),专注于把歌词显示、歌单库管理、桌面悬浮歌词、多套深色主题以及按文件独立记忆等日常高频细节打磨扎实。
- 仓库地址:https://github.com/non266/local-player
- 最新发布(Releases):https://github.com/non266/local-player/releases
- 历史版本归档:/cshap/local-player/archive/

核心亮点与设计理念
与常见的播放器不同,本项目围绕几条清晰的产品准则构建:
- 绝不偷偷改动用户文件:歌单与设置方案均采用“显式保存才落盘”机制。修改播放列表后仅在标题栏提示
【歌单名·未保存】,切换或替换列表前必定弹窗确认;删除歌单仅移除.m3u8索引,绝不触碰原始媒体文件。 - 绝不静默失败:无论是离线网络盘文件、被其它软件抢占的全局媒体快捷键,还是损坏的
settings.json配置文件,程序都会在状态栏或诊断日志中给出明确原因。即使配置文件部分损坏,也会按字段逐个抢救可用配置并自动备份原文件。 - 按文件记住你的习惯:播放进度、音画同步延迟、字幕延迟、歌词时间轴偏移、画面旋转方向,甚至上次选择的音轨与字幕轨(含“特意关闭字幕”),都会按单个文件独立记忆,下次打开自动恢复。
- 默认完全离线,联网可控:在线歌词与封面(对接 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、音频内嵌歌词(纯手写解析 ID3v2USLT/SYLT、FLACLYRICS、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 大分组(播放、界面与主题、窗口与悬浮、歌词、音视频输出、行为、会话)勾选部分导入,并直观对比每组与当前设置的差异项数。

技术架构与质量保障
| 模块目录 | 代码规模 | 核心职责 |
|---|---|---|
Core/ | 64 个文件(约 1.1 万行) | PlayerEngine 播放内核封装、列表与歌单库、手写二进制标签解析(ID3v1/v2、FLAC、MP4)、LrcAPI 客户端、设置抢救与诊断日志 |
Ui/ | 46 个文件(约 9,800 行) | 5 套主题调色板、自绘滑块与渲染器、桌面歌词分层窗口、侧栏自绘视图、SMTC 与全局热键互操作 |
MainForm*.cs | 32 个文件(约 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):
# 1. 克隆仓库git clone https://github.com/non266/local-player.gitcd local-player
# 2. 还原 NuGet 依赖dotnet restore 播放器.csproj
# 3. 编译 Release 版本dotnet build 播放器.csproj -c Release
# 4. 启动运行.\bin\Release\net10.0-windows10.0.19041.0\播放器.exe 分享
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时
相关文章 智能推荐






