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

9 hours ago

NipaPlay Release v1.10.13 更新日志

🌟 新特性

  • 自定义 User-Agent (UA) 支持 (#712)
    • 支持在视频播放 -> “输入链接”串流播放处自定义单次 UA。
    • 支持在“设置 -> 网络设置”中配置全局长期有效的 UA。
    • 适用于 libmpv、mdk 内核,并支持调用外部播放器(如 mpv/mpv.net 和 VLC)。
  • 外部弹幕渲染 (ASS 格式) (#710)
    • 支持在调用外部播放器时,将弹幕以 ASS 格式次字幕的形式注入外部播放器(目前 Windows 端已完成测试)。
  • 删除匹配历史记录 (#716)
    • 将番剧页面“清理记录”中的“清除扫描结果”功能,重构为更全面的“清除匹配信息”功能。
  • Cupertino (iOS/macOS) 界面功能补齐 (#705)
    • 在 Cupertino 外观设置页面中补齐了“播放器左上角按钮”分组,包含发弹幕、跳过、窗口适配、逐帧后退/前进等控制开关。

⚡ DFM+ 弹幕渲染引擎性能优化 (#708)

  • 时间轴与跳变优化:去除了弹幕慢速时间校准机制,改为直接跳变,解决弹幕抽动与重复运动问题。
  • 减少内存深拷贝build_vertices 采用 std::mem::take 配合引用遍历,避免了每帧对 frame_itemstokens 的 Vec/String 深拷贝与堆分配。
  • 降低阴影分辨率SHADOW_RENDER_SCALE 常量由 1 降为 0.5,阴影 mask 纹理面积减小 75%,极低画质损耗下大幅减轻 GPU 渲染负载。
  • 持久化字形渲染线程池:构建持久的 MsdfWorkerPool 并通过 mpsc 通道接收任务,避免密集新字形加载时频繁 spawn 线程引发的“线程风暴”;引入 2 秒超时保护机制,避免 fdsm 库死锁引发卡死。
  • 避免 atlas 绑定组重复创建:移除了 build_vertices 期间每帧创建 atlas_bind_group 的逻辑,改为构造时和字体切换时才重建绑定组。
  • 优化日志 I/O 损耗:移除了 n2log 每次写入日志时的 flush() 同步磁盘操作,且排除了 Release 模式下的过程日志与 format 堆分配。

🎨 界面与体验改进

  • 自适应设置 UI 重构 (#707, #717)
    • 引入了 lib/settings 共享设置内容,统一了桌面/平板端和手机端偏好设置的底层数据源。
    • 将手机端弹窗路由统一改为 bottom sheet,手机端设置滑块也相应进行了自适应适配(如 iOS 26+ 采用 AdaptiveSlider)。
  • 下拉菜单定位优化 (#719)
    • BlurDropdown 菜单置于 Overlay 坐标系中,解决开启逻辑 UI 缩放 (UiScaleWrapper) 时,下拉菜单定位偏移偏向右下角的问题。

🔧 维护与发布流程

  • 修复 Flutter 编译错误 (#718, 37f9cdc)
    • 修正了 ReorderableListView.builder 中因误用 onReorderItem 参数(应为 onReorder)导致的编译挂起问题。
    • 补齐了不支持 MDK 平台(unsupported stub)下的 setUserAgent 方法空实现。
  • 文档维护 (#715)
    • 从版本通道文档中移除了 Arch Linux AUR 安装/更新指令,但在 README 中继续保留提示。
  • iOS 构建恢复 (#714)
    • 恢复了 CI 中 iOS IPA 发布构建任务,迁移至 macos-26 执行。

Contributors

@FurudeRika123, @MCDFsteve, @makabaka11

Don't miss a new NipaPlay-Reload release

NewReleases is sending notifications on new releases.