github AimesSoft/NipaPlay-Reload v1.10.9
Release v1.10.9

3 hours ago

NipaPlay v1.10.9 更新日志

新功能与体验改进

新增 Erika 播放内核(Apple 平台实验性功能) (#594)

为 Apple 平台(macOS / iOS)引入 Erika 作为可选播放内核。Erika 是一个基于 Rust 的媒体引擎,采用 FFmpeg / VideoToolbox 解码,通过 CAMetalLayer 原生渲染路径输出画面,支持 Apple EDR / HDR 显示,并内置 libass 字幕渲染。用户可在设置中切换 Erika 与原有 media-kit 内核,两者独立共存。该功能目前作为实验室(Labs)选项提供,需在设置中手动开启。关联:#626

弹幕偏移量同步至 Erika 原生渲染器 (#622)

使用 Erika 内核时,手动设置和自动计算的弹幕时间偏移量现在可以正确同步至 Erika 的原生弹幕渲染器,切换弹幕列表或重新加载内核后偏移量也会随之重新应用。

下载器页面交互全面改进 (#616)

  • 新增卡片视图与列表视图切换,列表视图采用紧凑布局。
  • 新增搜索和排序控件。
  • 磁力链接添加流程重构为"预览并确认"模式,添加前可查看种子文件元数据。
  • 下载路径选择整合至添加流程,支持快速选择最近使用的文件夹并可移除历史记录。
  • 新增已完成下载的扫描摘要展示。
  • Cupertino 界面(移动端)的磁力添加和操作菜单改用底部弹出面板,符合移动端交互习惯。

Next 引擎弹幕渲染性能优化 (#610)

  • 引入 vsync 物理帧驱动重绘,弹幕现在以屏幕实际刷新率(60 / 120 / 240Hz)稳定渲染,解决 CPU / GPU 负载不高但弹幕帧率偏低的问题。
  • 使用高精度 Stopwatch 计算帧间隔并以增量方式推进弹幕位置,消除倍速播放时因时钟微调导致的位置跳跃和频闪。
  • 弹幕描边改为 8 方向零模糊 Shadow 烘焙方案,在保持旧版几何膨胀视觉效果的同时,将绘制开销控制在单次 drawParagraph 内。
  • 移除 GPU 批量命令录制的数量阈值限制,所有弹幕统一合并为单一 Picture 提交,减少渲染管线切换开销。
  • 暂停或不可见时自动挂起 vsync 控制器,节省系统资源。

远程访问新增 IPv6 独立开关 (#627)

远程访问功能新增 IPv6 开关,默认关闭,服务默认仅监听 IPv4。开启后 IPv6 地址才会出现在地址列表和二维码中,避免在不需要 IPv6 的环境下产生干扰。


Bug 修复

DFM+ 引擎弹幕排布与溢出策略修复 (#611)

修复了 DFM+ 引擎中滚动弹幕始终集中在画面上方 40% 区域、溢出策略和覆写策略不生效的问题。同时,弹幕超采样选项现在在全平台均可手动开启或关闭(原先默认启用的平台保持默认开启),弹幕时间戳精度进一步提升,大幅缓解弹幕抽帧现象。此外修复了 CupertinoUI 番剧评论页越滑越卡的问题,以及 UI 交互偶发触发 DFM+ 弹幕闪烁的问题。

修复弹幕加载失败导致播放后无弹幕的问题 (#612, #613)

修复了弹弹play请求与 NipaPlay 代理请求之间的时序竞争问题:此前三次兜底请求的总耗时可能超过外层超时限制,导致代理请求成功返回时弹幕轨道已以 0 条初始化完毕,视频开始播放后弹幕无法载入。重构后的加载策略为:缓存命中(立即)→ 用户自定义服务器(10s)→ 弹弹play主服务器与 NipaPlay 代理竞速(10s,先返回先用)→ 失败后重试一次竞速(10s),外层超时 32s,平均弹幕加载时间在 2 秒以内。

DFM+ / Next2 引擎弹幕频闪彻底修复 (#617, #618)

  • 修复了续播视频时弹幕从头开始播放的问题。
  • 大幅减少因设备像素比(DPR)变化和布局微抖导致的弹幕频闪(如播放器在副屏、用户在主屏操作的场景)。
  • 从根本上修复了 Windows 平台 DX12 共享纹理并发读写导致的弹幕黑色闪烁和空白闪烁问题:将所有弹幕渲染(阴影 + 字形)改为先写入私有离屏纹理,完成后再通过单次原子 blit 更新共享纹理,Flutter 合成器不再有机会读取到中间状态。关联:#1#2

Android 平台退出播放页面卡顿修复 (#619)

修复了 Android 平台使用 libmpv 内核时退出播放页面出现数秒卡顿的问题。截图操作改为异步执行,退出时立即静音避免残留声音,屏幕方向在截图等待前优先重置,并通过 Completer 机制和 4 秒超时保护替代原有轮询逻辑,同时修复了视频切换时旧截图覆盖新视频缩略图的竞态条件。

Next++ 引擎弹幕缩小及多倍速问题修复 (#620)

  • 修复了 Android 设备上 Next++ 引擎弹幕异常缩小的问题(DPR 缩放坐标系未正确应用)。
  • 修复了 Next++ 引擎在多倍速播放时的卡顿、暂停后弹幕回弹、时间轴偏移等一系列问题,包括 seek 后锚点未更新、播放时间单调递增保护缺失、速率变化时锚点未重设等。

DFM+ 引擎暂停恢复时间跳变及字形图集卡顿修复 (#623)

  • 修复了 DFM+ 引擎暂停后继续播放时弹幕跳转到错误时间点、以及弹幕不从当前位置继续移动的问题。
  • 修复了中文弹幕约每 70 秒出现一次 50–500ms 弹幕冻结的问题:原因是字形图集填满后整体清空导致大量字符需要重新光栅化。现改为 LRU 淘汰 + 空闲列表分配器机制,每帧仅光栅化 1–3 个真正缺失的新字形(约 1–3ms),图集空间循环利用,视觉上完全不可感知。
  • 优化弹幕时间漂移修正速率,校准收敛时间缩短至原来的 1/3。
  • 修复了 SMB 服务未正确退出导致的进程残留问题。

插件配置页面无法滚动的问题修复 (#624)

修复了插件配置页面无法正常滚动(出现反弹)的问题。


维护与发布流程

  • Erika 依赖从仓库 submodule 路径依赖切换为固定版本的 pub Git 依赖,普通克隆和 fork 无需手动初始化 submodule 即可执行 flutter pub get。(#625)
  • Linux DEB 包新增 libkeybinder-3.0-0 运行时依赖,并确保 librust_lib_nipaplay.so 在 Flutter bundle 未包含时正确复制至 DEB 包。(#627)
  • 版本号升级至 1.10.9。

Contributors

@Heylyx841, @MCDFsteve, @Shinokawa, @makabaka11, @weiyongzenqi

Don't miss a new NipaPlay-Reload release

NewReleases is sending notifications on new releases.