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

one day ago

NipaPlay v1.11.1 更新日志

新功能

Android 平台 Erika 原生播放支持 (#740)

  • 集成 Erika 原生视频渲染表面,支持 Android 平台的硬件解码播放。
  • 支持 SDR 和扩展线性 HDR 输出模式切换,提供解码器、音频、输出等实时诊断信息。
  • 支持通过 Android SAF(存储访问框架)打开 content:// 来源的视频文件,无需复制媒体即可播放;字幕文件通过应用缓存加载。
  • 播放器热切换时序列化等待原生后端销毁,防止新旧播放器实例重叠。
  • 已知限制:部分应用通过 ACTION_VIEW 打开的文件仅授予临时读取权限,进程重启后从历史记录重新打开可能失败;通过 ACTION_OPEN_DOCUMENT 选择的文件在提供者支持时可保留持久权限。关联:#42#744

外部播放器弹幕控制台功能增强 (#743)

  • 弹幕控制台支持拖动进度条调整 mpv 播放进度,实时显示总时长和暂停状态。
  • 新增弹幕描边开关,设置通过 ASS 更新和 mpv 重载即时生效;关闭后再次开启时恢复会话启动时的实际描边宽度。
  • 新增弹幕列表面板,实时显示所有弹幕并高亮标记当前屏幕上的弹幕,同时展示弹幕颜色和时间戳。
  • 以上功能仅适用于 Linux + mpv 外部播放器。

外部播放器弹幕控制台功能追加(第二期) (#748)

  • 新增播放/暂停控制按钮和输入时间戳精确跳转功能。
  • 新增弹幕屏蔽规则:支持按发送者 ID、关键词和正则表达式屏蔽弹幕。
  • 新增弹幕描边粗细实时调节。
  • 弹幕透明度和描边样式修改后实时重新生成 ASS 并通过 mpv 热重载,串行处理连续更新避免文件并发写入。
  • 弹幕列表展示发送者身份标识,移除容易混淆的来源标签。
  • 支持启动外部播放器后自动切换到弹幕控制台。
  • 统一使用 DanmakuItem 作为弹幕数据模型,简化 ASS 转换流程。
  • 以上功能目前仅支持 Linux + mpv 播放器,但架构已为未来扩展到其他平台做好准备。

播放器右键菜单新增番剧详情入口 (#747)

  • 播放器右键菜单项目高度从 44 调整为 36,降低上下留白使菜单更紧凑。
  • 当前视频存在已识别番剧信息时,右键菜单新增"番剧详情"入口。
  • 打开详情时透传当前播放来源上下文(本地、WebDAV、Emby、Jellyfin 等),避免不同媒体库之间的剧集数据串用。
  • 支持本地文件在播放期间完成番剧匹配后动态显示详情入口。

推荐海报强晕染与快速开始播放 (#750)

  • 恢复首页低分辨率推荐海报的强晕染效果,并在外观设置中提供切换选项,默认启用。
  • 播放器加载界面优先同步读取已缓存的番剧封面,避免先显示纯灰色占位。
  • 新增"快速开始播放"设置(位于播放器设置页),启用后视频就绪即开始播放,番剧识别和弹幕加载在后台继续进行。
  • 后台识别成功后实时更新番剧名和标题,弹幕加载完成后立即写入当前弹幕轨道;快速切集时旧请求不会污染当前视频。

核心工具迁移至 Rust (#751)

  • 将 ASS 弹幕转换、弹幕密度分析、远程媒体探测与哈希计算、字幕匹配、媒体文件名解析和自然排序等核心功能从 Dart 迁移至 Rust 实现,提升性能。
  • Rust 桥接加载失败时自动回退到原有 Dart 实现,不影响正常使用。

媒体库管理匹配信息展示恢复 (#764)

  • 恢复新 UI 下媒体库管理中视频文件的匹配信息展示。
  • 手动匹配后媒体库自动在后台刷新。

体验优化

设置按钮悬浮交互与关于页面样式优化 (#749)

  • 设置页左侧导航按钮悬浮或聚焦时仅缩放内部图标和文字,按钮背景、边框和点击区域保持固定,避免按钮放大后被裁剪。
  • 关于页面赞助用户名称移除多余的圆角胶囊背景和边框。
  • "检查更新"按钮默认色改为中性次要文字色,悬浮时平滑过渡为主题色。

播放器子菜单容器高度统一 (#753)

  • 播放器右键菜单的子菜单统一复用主菜单的容器高度,切换不同面板时不再出现容器高度跳变。

Bug 修复

修复 DFM+ 弹幕引擎掉帧与卡顿 (#758)

  • 彻底解决 DFM+ 弹幕引擎在 Android 平台的掉帧与卡顿问题。通过异步预热字符 MSDF 光栅化(提前 3 秒预热滚动弹幕、首播预热 15 秒窗口),避免新字符进入屏幕时阻塞渲染线程;极端情况保留同步兜底,确保字符不跳过不闪烁。
  • MSDF Worker Pool 重构为 4 线程并行,Atlas 基础尺寸从 4096 提升至 8192 以降低长视频驱逐频率。
  • Android 端启动时请求最高刷新率,iPad Pro 启用 ProMotion 后稳定 120 FPS。
  • 修复 Android 端文件夹导入失效的问题:优先使用真实路径(外接存储使用 /storage 下的 UUID 目录),SAF 机制作为回退。关联:#615#654#675

修复中文媒体文件名导致播放失败 (#756)

  • 修复包含中文或 % 字符的媒体文件名因路径二次 URI 解码而抛出异常、导致播放器初始化失败的问题。

修复 Emby 服务器 MediaFolders 接口 404 导致媒体库无法加载 (#757)

  • 部分 Emby 服务器(如经过反向代理/Cloudflare 的 UHD Emby)对 MediaFolders 接口返回 404 HTML 响应。现在实现多级回退逻辑:依次尝试 MediaFolders、Views API 和无前缀路径,并提前拒绝 HTML 错误响应。关联:#570

修复媒体库管理目录名显示与远程控制扫描问题 (#744)

  • 修复媒体库管理中目录名多行显示功能在新 UI 下的适配问题。
  • 远程控制功能的扫描匹配添加对自身的过滤机制。
  • Windows 大屏幕模式下隐藏三个窗口控制按钮,防止 UI 重叠。

修复 Liquid Glass 底部安全区域和 Android 回退渲染 (#760)

  • 修复 Liquid Glass 风格标签栏在 Android 三键导航和 iOS 手势导航下被遮挡或间距不足的问题,统一保持 6 逻辑像素的底部安全间距。
  • 修复 Android Release 构建因 Dart 代码混淆导致回退渲染器无法正确识别圆形/圆角矩形形状,造成高光边框被裁剪的问题。
  • 修复番剧详情页动画过程中因每帧重新分配 BackdropFilter 层导致的卡顿,改为跨帧复用。

修复 iOS 构建编译错误 (#765)

  • 修复 Web 编译时 PlatformInt64 类型不匹配的问题。
  • 修复 iOS 构建脚本对单架构 Framework 执行 lipo 时崩溃的问题。

维护与发布流程

  • 新增 iOS App Store 自动发布流程,包括签名 IPA 构建、本地化发布说明生成和自动提交审核 (#752)。
  • Erika 运行时升级至 v0.1.3 预构建版本,Android 发布构建改为使用预构建产物 (#754)。
  • CI 工作流中 Erika 预构建标签改为从依赖配置自动推导,避免版本漂移 (#755)。
  • 修复 iOS 发布工作流中 App Store Connect 密钥读取方式和签名配置问题 (#762#763#766)。
  • 修复 iOS 构建脚本中因中文全角逗号引发的版本号传递错误 (#764)。
  • 版本号更新至 v1.11.1。

Contributors

@FurudeRika123, @Kuuhaku31, @MCDFsteve, @Shinokawa, @makabaka11

Don't miss a new NipaPlay-Reload release

NewReleases is sending notifications on new releases.