BiliBili-UWP完全指南:从零装好这款原生B站第三方客户端,玩转播放、弹幕与双模式体验
【免费下载链接】BiliBili-UWPBiliBili的UWP客户端,当然,是第三方的了项目地址: https://gitcode.com/gh_mirrors/bi/BiliBili-UWP
如果你也曾在 Windows 上用浏览器刷 B 站:切换分 P 时画面一顿、弹幕一多就掉帧、浏览器标签开得多了风扇狂转……那么这篇文章就是为你准备的。BiliBili-UWP正是一款瞄准这些痛点的第三方客户端——它基于 UWP 原生架构开发,把网页版的"重"替换成系统级的"顺",把播放器、弹幕、动态、收藏等核心功能统一收进一个轻量窗口,是学习 UWP 开发、体验桌面端 B 站交互的绝佳样本。
这款应用出自开发者"云之幻",最初在微软商店上架后走红,后因官方警告而下架并停止维护。但正如很多经典开源项目一样,它的代码结构与设计思路依然值得把玩。本文不写枯燥的源码分析,而是带你走一条完整路线:先搞清楚它好在哪里,再亲手编译安装,最后深入核心功能与调优技巧。
一、它凭什么值得一试?核心亮点一览
在动手之前,先直观感受一下它和网页版的差异。这不是"另一个套壳浏览器",而是从渲染到底层解码都走系统原生的应用:
| 对比维度 | 网页版 B 站 | BiliBili-UWP |
|---|---|---|
| 界面渲染 | 依赖浏览器内核,内存占用高 | UWP 原生渲染,轻量顺滑 |
| 视频解码 | 受浏览器策略限制 | 硬件加速,支持 HEVC 等编码 |
| 弹幕体验 | 与页面混在一起,卡顿明显 | 独立弹幕引擎,可精细调参 |
| 操作方式 | 只有浏览器快捷键 | 全键盘+鼠标侧键+触控手势 |
| 多设备适配 | 响应式网页,体验一般 | 桌面/平板双模式原生布局 |
再快速盘点几个让人印象深刻的点:
- 桌面模式 + 平板模式:同一套代码,两种完全不同的界面语言,1080P 大屏和平板、XBOX 都能找到合适的姿态
- 不亚于官方的快捷键体系:方向键、F2 弹幕开关、F11 全屏、Shift+S 截图,一应俱全
- 云端与本地数据打通:登录后动态、收藏、历史、稍后再看全在本地界面呈现
- 深度可定制:深浅色主题、弹幕密度/字号/速度、播放器小窗与影院模式,几乎所有体验参数都有开关
- 开放接口:提供
richasy-bilibili://协议标头,其他应用可一键唤起并直达指定视频
二、准备工作:环境要求与源码获取
正式编译前,先确认你的"硬件+软件"条件是否满足:
环境要求速查:
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 10 1809 及以上 |
| 开发工具 | Visual Studio 2019(需安装 UWP 工作负载) |
| 部署方式 | 本地生成测试证书后侧载部署 |
| 设备注意 | ARM 设备(如 Surface Pro X)可能无法运行 |
获取源码很简单,一条命令即可:
git clone https://gitcode.com/gh_mirrors/bi/BiliBili-UWP项目采用模块化设计,拿到手后你会看到四个核心工程,理解它们的分工对后续上手很有帮助:
- BiliBili-Controls:特殊控件库,包括自适应网格视图、瀑布流面板、虚拟化面板、气泡控件等
- BiliBili-Lib:公共类库与核心服务,B 站 API 的封装都集中在这里的
Service文件夹 - BiliBili-Notification:后台任务组件,负责动态内容的后台通知提醒
- BiliBili-UWP:主程序,UI 页面、控件模板、主题与业务逻辑都在此
三、两条上手路线,按需选择
不是每个人都想折腾编译环境。这里给出两条路,你可以根据自己的情况对号入座。
路线一:零基础快速体验(推荐普通用户)
如果你只是想"换个更好用的 B 站客户端",不必编译源码,直接在项目的 Release 版本中下载对应系统的压缩包:
- 下载解压后,右键
install.ps1按提示安装 - 如果提示证书问题,双击包内证书,导入到"本地计算机 → 受信任的根证书目录",再重新走一遍安装流程
- 安装完成后启动,先在欢迎页完成登录,即可开始使用
这条路线 5 分钟就能走完,几乎不碰命令行。
路线二:开发者深度使用(动手编译部署)
如果你对 UWP 开发或这个项目的实现细节感兴趣,就走完整编译流程:
- 用 Visual Studio 2019 打开
BiliBili-UWP.sln - 在
package.appxmanifest的 Package 选项卡下重新生成一个测试证书 - 右键解决方案 → 重新生成 → 部署
- 启动应用,打开调试输出观察整个启动、登录、拉取数据的流程
推荐先读一遍主程序里的App.xaml.cs和核心运行时状态管理类AppViewModel,它会告诉你应用是怎么串联"启动 → 登录 → 导航 → 播放"这条主线的。
四、核心功能逐个拆解
1. 双模式界面:一套代码,两种审美
这是项目最具辨识度的设计。桌面模式采用经典的 Master-Detail 结构:左侧导航、右侧详情,信息密度高,适合 1080P 以上大屏;平板模式则借鉴了 XBOX 新界面的游戏详情和 WIN8 卷轴式布局,以横向滚动为主,触摸友好。
更妙的是,当你选择某个视频后,应用背景会变成虚化的视频封面——这种"骚气"的视觉反馈正是 UWP 动画能力的体现。相关页面分别位于Pages-Desktop、Pages-Tablet和Pages-Share三个目录,共享页面(副页)承担了两端共用的逻辑,这也是开发者的设计巧思。
2. 播放器与弹幕:可精细调参的观影核心
核心播放器VideoPlayer放在Components/Controls目录,魔改的媒体传输控件(MTC)样式定义在Template/Media.xaml。开发者对体验参数几乎做到了"逐项可调",从设置枚举Settings.cs就能看出端倪:弹幕透明度、弹幕字号、弹幕速度、弹幕密度上限、是否合并弹幕、是否保护字幕区……每一项都有独立开关。
代码层面的核心服务也很清晰,视频相关的接口集中在VideoService中,例如获取分区视频:
// 按分区 ID 加载该分区下的推荐与最新视频 var result = await videoService.GetSubRegionDefaultAsync(rid);3. 账号体系:从登录到数据同步
登录、用户信息、收藏夹、历史记录、稍后再看等接口都封装在AccountService中,一个类搞定账号侧几乎所有能力:
var accountService = new AccountService(); var me = await accountService.GetMeAsync(); // 获取当前用户信息 var favs = await accountService.GetMyMainlyFavoritesAsync(); // 获取主收藏夹 var later = await accountService.GetViewLaterAsync(); // 获取稍后再看登录后,动态、评论、@我的、点赞消息都能在应用内直接消费,收藏夹管理也摆脱了网页版繁琐的跳转。
4. 协议唤起:让其他应用无缝跳转
项目提供了 URI 协议richasy-bilibili://,这是很实用的小功能。比如在别的应用里写一个链接,点击就能直达指定视频:
richasy-bilibili://navigate?action=video&aid=170001也可以携带bvid、cid参数,甚至支持动漫、电影、剧集(通过epid)的直达跳转。想给 B 站视频做个快捷入口的开发者,可以好好利用这个能力。
五、避坑指南:新手最容易踩的五个坑
- 证书安装位置不对:证书必须导入到"本地计算机 → 受信任的根证书",而不是"当前用户",否则应用装不上或启动失败
- ARM 设备无法运行:项目声明在 ARM 设备上可能无法启动,如果是 Surface Pro X 用户,先做好心理准备
- 4K 是"假选项":界面会显示 4K 清晰度,但非大会员拿到的片源仍不是 4K,这是 B 站服务端限制,不是 bug
- 播放卡顿先别怪应用:项目说明明确建议——如果播放视频卡,先在显卡设置中开启垂直同步,往往立竿见影
- 项目已停止维护:收到官方警告后应用已从商店下架,遇到影响使用的 BUG 大概率不会修复,请把它当作学习与体验项目,而非长期依赖的日常工具
六、性能与体验调优指南
场景一:低配设备(如小屏平板、老电脑)
- 在设置中关闭动画效果(
EnableAnimation) - 将播放默认画质调低,减少解码压力
- 弹幕密度设低,弹幕是 CPU 渲染的主要压力源之一
- 优先使用平板模式,其信息密度低、渲染负载小
场景二:高配大屏(1080P 以上显示器)
- 桌面模式信息密度高,正适合大屏发挥
- 开启 HEVC 编码,画质与码率更优
- 全屏或影院模式下保留弹幕条,观影氛围更完整
场景三:触摸设备或手柄
- 播放器中手指左右滑动调进度、上下滑动调音量,完全是移动端手感
- 双击播放器即可播放/暂停
- 平板模式本身就为触摸做了横向滚动优化
场景四:键盘党效率流
快捷键是这套客户端最值得记的部分:
| 按键 | 功能 |
|---|---|
| ← / → | 播放器回退/前进指定时长 |
| ↑ / ↓ | 调高/调低音量 |
| F2 | 开启/关闭弹幕 |
| F10 | 小窗/退出小窗 |
| F11 | 全屏/退出全屏 |
| Esc | 退出当前状态(全屏、影院、小窗) |
| Space | 播放/暂停 |
| Shift + S | 截图并保存到"图片库/Bili ScreenShot" |
另外鼠标侧键 X 点击可以返回上一页,这个细节比很多原生应用都贴心。
七、常见问题速查
Q:应用启动失败怎么办?先确认系统版本在 1809 以上;再检查证书是否导入到"本地计算机 → 受信任的根证书";最后确认 NuGet 依赖已完整还原。
Q:视频播放卡顿如何优化?在显卡设置中开启垂直同步;按网络情况调低默认画质;关闭动画特效,必要时降低弹幕密度。
Q:弹幕显示异常如何处理?在设置里调整弹幕密度上限、字号与速度;关闭弹幕合并或特效以降低渲染负担;重启应用重新加载弹幕数据。
Q:数据安全吗?项目声明数据仅在用户与 B 站之间流通,开发者不收集任何数据。但作为第三方应用,还是建议在可信环境下登录,并妥善保管账号信息。
Q:想研究代码从哪里入手?建议顺序:App.xaml.cs(启动流程)→AppViewModel(运行时状态)→BiliViewModel(业务处理)→BiliBili-Lib/Service(API 封装)→Components/Controls/VideoPlayer(播放器实现)。
八、写在最后
BiliBili-UWP 是一款"生不逢时"的优秀作品:它把移动端 B 站的交互解构后重装进桌面与平板,用原生 UWP 架构换来了网页版难以企及的流畅度,其模块化工程结构、双模式界面设计、精细的播放器参数体系,到今天依然是 UWP 开发者的参考范本。虽然项目因版权原因停止维护,但它留下的代码与设计思路,仍然值得每一位对 Windows 客户端开发感兴趣的读者深入研读。
下一步的行动建议很简单:先按"零基础快速体验"装一个试试手感,如果对工程感兴趣,再走一遍编译流程,从AppViewModel开始读起,你会打开一扇理解 UWP 应用架构的大门。
温馨提示:本项目仅供学习交流,不支持直播与视频下载功能,请尊重版权、规范使用。若追求长期稳定的日常体验,建议优先考虑官方客户端。
【免费下载链接】BiliBili-UWPBiliBili的UWP客户端,当然,是第三方的了项目地址: https://gitcode.com/gh_mirrors/bi/BiliBili-UWP
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考