一直以来,我都在忍受各大官方 NAS APP (比如 DS Video )的折磨:索引慢得令人发指,播放高码率 MKV/TS 文件时缓冲转圈让人崩溃。而且想要看 ZIP/CBZ 格式的漫画,还得先下载解压,简直反人类。
iOS 上虽然有 Infuse 这样优秀的应用,但 Android 和 Fire TV 上却很难找到一个能让我满意的“即点即播”的纯粹播放器。于是,我决定自己造个轮子:Nas Player Pro 。
这里分享一下我填坑的两个技术点,以及被 AI 折磨的经历:
1. 解决 SMB 视频流的卡顿(本地代理方案)
直接把 smb:// 丢给播放器,拖拽进度条时卡顿非常严重。我的解决方案是:在本地起一个轻量级 HTTP 代理。播放器向本地代理请求视频流( Range Request ),代理再将其转化为 SMB 请求去精准拉取 NAS 上的对应字节。加了这一层后,几十 GB 的视频在局域网内实现了真正的“零缓冲”秒播和秒拖拽。
2. 不解压直接通过网络阅读 ZIP/RAR 漫画(二进制解析)
为了实现秒开漫画,我死磕了 ZIP 和 RAR 的二进制规范。
利用 SMB 的随机访问特性,只读取文件末尾的“中心目录( End of central directory )”,解析出每张图片的 Offset (偏移量)和大小。当滑动到下一页时,直接通过 SMB 按需提取那几十 KB 的字节并在内存中解码。完全不需要下载整个压缩包。
3. 被 AI 辅助编程( Vibecoding )折磨的日常
在开发过程中我大量使用了 AI ,但现实并非一键生成代码那么美好。AI 就像一个记忆力只有 7 秒的疯狂实习生,在帮我修复 UI Bug 的同时,会擅自“重构”并删掉我好不容易写好的二进制解析逻辑(幻觉严重)。由于当时还没习惯用 Git ,我只能靠疯狂复制备份文件夹来和它进行“肉搏战”。
虽然过程充满血泪,但这个无广告、不扫描索引、纯粹追求速度的工具终于上架了(支持 iOS / Android / Fire TV )。
如果这里也有被 NAS 播放痛点折磨的折腾党,欢迎来试试我的心血之作,也非常期待大家的硬核技术反馈!
官网介绍与各平台下载链接(支持英文):
https://killersaca.github.io/Privacy-Policy/NasPlayerPro.html#en

