Repository navigation
OcPlayer v0.1.5 · Emby 适配、iOS 安装包与自编译预读内核
OcPlayer v0.1.5 · Emby 适配、iOS 安装包与自编译预读内核
不换内核了!!继续用Erika!
下载
| 文件 | 平台 | 说明 |
|---|---|---|
OcPlayer-v0.1.5-macOS-arm64.dmg / .zip |
macOS(Apple Silicon) | 与往版相同 |
OcPlayer-v0.1.5-ios-unsigned.ipa |
iOS(iPhone / iPad) | 首次提供。未签名 IPA,需用 AltStore / Sideloadly / TrollStore 等工具重签安装 |
SHA256SUMS.txt / SHA256SUMS-ios.txt |
— | 对应平台产物校验和 |
iOS 包已在 iPhone 与 iPad 真机验证通过。macOS 与 iOS 包构建自同一份自编译 Erika 内核(v0.1.7+readahead.1,下载哈希已固化入仓),并通过同一测试门禁。
新增 Emby 服务器适配
- 登录流程探活时自动识别服务器类型(
ProductName含 Emby / 主版本 4.x)。Emby 走/embyAPI 前缀与老式路由,账号密码登录、浏览、播放、图片、字幕、播放上报全链路可用;服务器卡片显示所属类型(Jellyfin / Emby)。 - Emby 没有 Quick Connect(Jellyfin 独有),登录页在 Emby 服务器上只显示账号密码表单;Emby 老版本密码错误返回 400 时也归入「账号密码不对」提示。
ServerProfile新增kind字段;旧版本落盘的档案无此字段时解码默认 Jellyfin,静默恢复不受影响。
Emby 真机联调中修复的兼容问题:
- 标记已看失败:
/UserPlayedItems/{id}是 Jellyfin 新式路由,Emby 上 404。改走老式/Users/{uid}/PlayedItems/{id},详情页「标记已看」恢复可用。 - MediaSegments 404 日志噪音:该端点是 Jellyfin 插件提供的,Emby 没有,现在跳过并直接回退章节启发式。
- 外挂字幕下载 404:多版本条目(同一影片挂多个 MediaSource)时路由第二段硬编码错误,现透传真实 MediaSource id。
- 章节与条目详情解码失败:Emby 响应洗白规则误伤顶层
Type字段导致 SDK 解码报错、章节列表拉取失败,改为按MediaSources子树精确处理,并补真实机场景回归测试。
多服务器记忆与快速切换
- 登录页新增「已保存的服务器」区块,token 还在的一键重连。
- 设置页「服务器」区块列出其余已保存的服务器,支持就地切换和删除(删除连 token 一起清,有确认弹窗)。
- 登出不再等于遗忘:档案持续保留,来回切服务器不用重新输地址。
- 启动恢复更聪明:当前服务器 token 失效时自动尝试其它有有效 token 的档案,而不是直接弹登录页。
iOS
- 首次提供 iOS 安装包(未签名 IPA,见下载说明),iPhone 与 iPad 真机验证通过。
- 播放画面手势:长按 2 倍速(HUD 独立「▶▶ 2.0x」徽章,不唤醒面板)、横滑 seek(独立进度条)、纵滑调节亮度/音量;手势收敛为单一状态机,双击暂停不再被吞,多指不再误触发,切后台/来电自动收尾。
- 打开播放器自动转横屏;iPad 浏览态跟随重力旋转,不再锁竖屏;iPhone 首页横向卡片收紧、详情页紧凑重设计、海报上下渐变适配全端。
- iOS 测试链路修复(测试 target 改为零产品依赖 + BUNDLE_LOADER、Archive 链接失败修复)。
播放内核(Erika)
- 网络预读缓冲可调:设置 → 播放 新增「网络预读缓冲」(默认 2 MiB / 8 / 16 / 32 MiB)。公网高延迟服务器(远程 Emby 等)建议 16 MiB 以上,可显著减少播放中的反复缓冲。基于自编译 Erika 内核新增的
erika_presenter_open_with_optionsC API(fork 分支feat/http-readahead-option,已提上游),逐请求生效,本地文件自动忽略。 - 发版内核下载哈希固化入仓(
Scripts/erika-v0.1.7+readahead.1.sha256),构建时可复验。 - 修复内核拉取脚本 zip-slip 防护对绝对路径归档必然误报的问题(会让全新 CI 环境无法拉取内核)。
应用内更新
- 关于区显示版本号,可手动检查 GitHub Release 更新;应用启动与进入设置页时静默检查,发现新版本自动弹窗,支持「忽略此版本」。
其他新功能与优化
- Jellyfin Clear Logo:媒体库与详情页支持服务器提供的透明 logo 展示。
- Bangumi:播放结束自动标记已看时先把条目推进为「在看」;番剧候选打分算法多维度优化并与剧集季信息联动。
播放器修正
- 弹幕颜色为负数时先夹紧再转换,修复内核 trap 崩溃(P0)。
- seek 不再越过片长;内核重复错误事件去重。
- 保底跳过片尾记入会话,按钮不再原地循环。
- 弹幕「时间偏移」按 overlay 数据显隐;暂停态下弹幕恢复逻辑不再被误触发。
- 音量落盘 300ms 尾去抖并在停止收口补写,消除丢失窗口;2x 临时倍速不再持久化。
稳定性与性能
- 播放停止后 malloc pressure relief 四拍调度(+2/+25/+60/+120s),进程占用回落更快。
- 图片加载修复:悬停闪烁(认证头字典序抖动致缓存键漂移)与全量图片不加载回归(RemoteImage 复合键守卫)。
- 详情页横幅渐变被裁剪的回归修复(图片层定高钳制)。
- Bangumi 数据库换 DatabasePool(WAL 多连接并发);弹幕网关响应单遍解码、mapping 内存缓存;overlay 采样 Timer 频率自适应;Erika idle 帧率档。
- 网络健壮性:429 读取 Retry-After、退避加抖动、鉴权 401 发通知引导重登、用户取消原样透传、MoviePilot 静默重登加看门狗与熔断。
工程与质量
- 2026-08-29 全项目 review(161 条发现)处置完毕:P0–P3 全部收官,覆盖并发、网络、性能、构建与 UI 细节(报告入库
Reports/review-20260829.md)。 - 发版流水线:tag 构建必过全量测试门禁;Erika 环境准备抽为 composite action;SwiftPM 构建加缓存;
MARKETING_VERSION收敛App.xcconfig单源。
补记:随 0.1.4 附带但当时说明未展开
以下功能已包含在 0.1.4 的安装包中,当时发布说明过于简略,在此补记:
- Bangumi 全套:OAuth 登录、进度管理、个人主页、收藏列表、番剧日历、播放联动(看完整季自动推进条目状态)。
- MoviePilot 全套:设置页登录、找片下载(搜索 → 选种 → 下载)、订阅管理。
- 播放器章节列表与片头片尾/末 90 秒跳过;弹幕手动搜索选集与 HUD 弹幕菜单。
Full Changelog: v0.1.4...v0.1.5