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

2 hours ago

新功能

外挂字幕编辑框与多字幕交互 (#933)

播放界面支持多条外挂字幕同时加载,各字幕拥有独立时间轴。长按字幕文字可弹出编辑框,拖动编辑框可同步调整全局字幕位置偏移。切换视频或跳转到下一句台词时编辑框自动收起,避免弹幕层因编辑框持续重绘而出现闪烁。字幕轨道菜单和字幕设置菜单同步提供 Cupertino 与 NipaPlay 两套主题样式。关联:#920、#922

VobSub (.sub+.idx) 图形字幕支持 (#957)

新增对 VobSub 图形字幕格式的完整支持,包括本地文件选择器、WebDAV/SMB 等远程来源及自动配对下载。加载视频时自动优先选择简体中文或日语字幕轨道,其余候选字幕堆叠在轨道菜单中供手动切换,切换时不会打断当前正在播放的字幕。远程缓存的字幕文件始终以原始文件名显示,冷启动后也能正确还原。

播放器快捷调节与媒体库 NEW 标识开关 (#945)

在"设置 → 播放器"新增"播放器菜单快捷调节"开关,开启后可在播放器菜单顶部直接调整倍速和音量增强,默认关闭。在"设置 → 外观"新增"媒体库 NEW 标识"开关,关闭后隐藏桌面、手机和电视媒体库卡片上的 NEW 角标,新内容追踪与排序逻辑不受影响,默认开启。两项设置重启后均保持选择。

首页新番回顾板块 (#953)

首页新增限时开启的新番回顾板块,可在设置中关闭。

Linux 平台启用 Erika 播放内核 (#972)

Linux 源码构建现在支持使用 Erika 原生播放内核。Wayland 环境下视频、字幕和弹幕通过原生视图渲染,Flutter 控件以透明层叠加;X11 使用兼容纹理视图。新安装默认使用 Erika,已保存的内核选择不受影响。源码构建安装器支持 NIPAPLAY_WSL_GPU_COPY=1 选项,可在 WSL 环境下启用 D3D12 GPU 帧直传,减少解码帧在 GPU 与 CPU 之间的往返传输。

升级 Erika 至 0.2.1,Linux 发布包内置 Erika (#982)

将 Erika 播放引擎升级至 0.2.1,Linux 正式发布包现在随包携带 Erika 内核,新安装默认启用,已有用户的内核选择保留。amd64 和 arm64 均静态链接 FFmpeg 8,并启用 NVDEC、VA-API 和 Vulkan 互操作。

媒体信息页剧集多版本绑定 (#971)

新版媒体信息页支持将同一剧集绑定多个视频文件版本,播放前弹窗供用户选择对应版本,也可快速解除匹配。同时新增剧集自动定位,修复鼠标滚轮在剧集列表中滚动速度过慢的问题。

Jellyfin 剧集添加日期排序 (#979)

新增 Jellyfin 的"剧集添加日期"排序选项,使近期新增剧集的番剧可以排在前面,支持升序和降序。同时修复 Emby/Jellyfin 旧排序存档字段缺失时打开排序菜单或加载媒体库触发空值异常的问题。关联:#795


体验改进

跳过片头/片尾按钮改为无容器阴影样式 (#954)

移除"跳过片头/片尾"按钮的半透明胶囊背景和边框,改为直接显示图标和文字并添加阴影,在视频画面上可读性更好,视觉更简洁。

GIF 导出支持复制到系统剪贴板 (#953)

桌面端 GIF 导出菜单中的"复制到剪贴板"现在可将实际图片内容写入系统剪贴板,可直接粘贴到聊天软件等位置,而非此前的文件路径。移动端因系统限制隐藏此按钮。同时修复 JavaScript 弹幕引擎在播放前几秒使用默认配置的问题,以及视频加载失败时错误弹窗改为展示 URL 解码后的地址,方便排查。

Android TV 启动时自动适配界面缩放 (#951)

Android TV 现在在启动时根据实际输出分辨率和逻辑密度自动选择全局缩放比例,解决 1920×1080 输出下界面过大的问题。"设置 → 外观"新增"自动适配界面大小"开关,没有手动缩放记录的 Android TV 默认启用,每次启动重新计算;已有手动值继续保留。全局缩放范围扩展至 0.5~1.3。TV 顶部状态栏和底部菜单栏改为完全不透明的主题底色。

弹幕随视频缓冲同步启停 (#973)

DFM+ 和 JavaScript 弹幕引擎现在接入播放器内核的缓冲信号,视频缓冲时弹幕同步暂停,缓冲结束后恢复,避免弹幕与画面不同步。同时修复鼠标指针在进度条上悬浮时时间提示频闪的问题。

iOS DFM+ 弹幕渲染对齐显示时钟 (#969)

修复 iOS DFM+ 弹幕由 Rust 定时器与 CADisplayLink 各自出帧导致的重复帧、跳帧和位移抖动问题,现在统一由原生显示时钟驱动出帧。同时修复暂停后小幅跳转(如 8.0 → 8.1 秒)被时钟校正阈值吞掉、弹幕不跟随 seek 的问题。

媒体库排序弹窗使用 NipaPlay 原生控件 (#958)

修复桌面和平板端"媒体库排序"弹窗使用 Material 默认控件、与整体界面风格不一致的问题,改为使用 NipaPlay 原生窗口和控件,并修正向下拖动时的目标索引计算错误。

下载器可靠性与交互改进 (#950)

修复点击添加后需等待下一次轮询才显示任务、磁力预览后再次联网解析、暂停/恢复/保存任务和完成后入库不可靠等问题。添加任务后立即显示处理状态,操作结束后立即刷新任务状态,其他任务可继续操作。Android/鸿蒙任务数据库改用固定应用支持目录,合并旧记录并保留下载位置和暂停状态。下载状态改为纯文本,移除多处弹窗和设置面板标题前的装饰图标。

插件市场支持直接卸载已安装插件 (#949)

插件市场中已安装的非内置插件现在显示"删除"按钮;有可用更新时"更新"和"删除"并列显示。删除前需确认,执行期间显示进度,完成后卡片恢复为"安装"状态。

Windows 中文字形渲染修复 (#944)

修复 Windows 端大量界面文字使用日文异形字而非中文汉字的问题。同时修复新版媒体信息页视频时长显示错误、无观看记录时"继续播放"按钮错误显示为最后一话的问题,以及推荐栏过滤无实际内容的"未知动画"空壳条目。番剧删除新增多端同步墓碑机制,防止批量删除观看记录后云端残留数据重新同步回本地。


Bug 修复

修复切换播放内核时界面卡死 (#935)

修复在播放过程中切换 mdk(fvp)与 libmpv(media_kit)播放内核时,平台线程死锁导致界面冻结的问题。两个内核的原生销毁现在完全序列化,新内核在旧内核完全释放后才开始初始化,保证任意时刻只有一个原生播放器实例存在。

修复画面比例菜单位置与生命周期 (#936)

修复画面比例菜单在屏幕右侧向进度条方向溢出的问题,以及退出播放器后浮层与控制栏锁状态无法清理的问题。菜单现在仅在支持画面比例切换的播放表面上显示。

修复外挂字幕编辑框在切换视频后残留 (#937)

修复外挂字幕编辑框在切换视频或切换台词后可能残留的问题。编辑框现在绑定播放会话,媒体路径或字幕集合变化时自动收起;拖动进行中时收框延后至拖动结束。双指长按手势改用指针事件识别,解决同一手势检测器中 pan/scale 回调冲突的问题。

修复字幕列表高亮行定位偏差 (#938)

修复字幕列表按估算行高定位导致长列表累计偏差、台词间隙高亮未来字幕的问题。高亮行完整可见时不再触发滚动,离开视口才滚动;远距离 seek 后目标行尚未构建时,先将数据窗口移至目标位置再按真实布局显示。

修复截图对话框无法点击外部关闭 (#948)

修复平板全屏播放时控制栏隐藏状态下,截图/GIF 导出对话框无法通过点击外部区域关闭,只能依赖右上角关闭按钮的问题。

修复退到后台后媒体库图片永久留白 (#933)

修复应用退到后台后媒体库封面图片无法恢复显示的问题。

修复 iOS 横屏播放控件与刘海/灵动岛重叠 (#959)

修复 iPhone 横屏播放时,顶部按钮、标题、锁定按钮、跳过按钮及底部进度条与刘海/灵动岛区域重叠的问题,各控件现在正确读取左右安全区域边距。

修复 iOS 媒体库设置按钮点击区域错位 (#962)

修复 iOS 媒体库页面右上角设置按钮因原生工具栏布局导致点击区域偏移、只有极小区域可触发的问题,改为 Flutter 内布局的 44×44 点透明按钮,保留按压反馈和无障碍支持。

修复 iOS「文件」打开视频后不播放 (#963)

修复在 iOS「文件」中选择"打开方式 > NipaPlay"后,应用启动但视频不播放的问题。现在支持冷启动和运行期间接收文件 URL,使用安全范围访问将文件复制到应用目录后播放,同一来源的未修改文件复用副本。关联:#961

修复鸿蒙本地媒体添加失败 (#964)

修复鸿蒙添加本地媒体时目录选择通道未注册、目录实现缺失的问题。支持目录选择和持久授权的设备可直接选择本地目录;不支持的手机提供 MP4/MKV 视频复制导入流程,导入文件同名时自动编号,失败时清理临时文件。关联:#940

修复 WebDAV/SMB 视频弹幕自动识别失败 (#965)

修复弹幕自动识别系统未接入 WebDAV 和 SMB 私有协议导致无法识别的问题,并延长播放前等待时间,确保弹幕和剧集信息在播放开始前准备完毕。

修复 Android 适配填充模式时弹幕无法覆盖黑边 (#966)

修复 Android 使用适配填充(aspect-fit)模式播放时,Erika 弹幕层被缩小到视频矩形内,无法在上下/左右黑边区域显示弹幕的问题。现在 Erika 渲染层保持全播放器尺寸,由渲染器内部处理视频适配。

修复 iOS 底部导航栏图标与文字重叠 (#970)

修复 iOS 底部导航栏图标覆盖"视频播放""媒体库"等标签文字的问题。原生容器现在在布局完成、加入窗口及安全区域变化后重新测量高度,横竖屏切换后自动更新。

修复 iPhone 播放器加载卡片文字被挤到底部 (#975)

修复 iPhone 播放器加载卡片中,加载文字上方出现大块空白、文字被挤到卡片底部的问题。

修复 macOS 沙盒构建启动中断 (#976)

修复 macOS 沙盒构建因无法访问 /tmp/nipaplay_instance.lock 导致应用在启动时中断的问题。单实例锁文件现在存放在沙盒可访问的 Application Support 目录,初始化失败时记录错误并允许应用继续启动。关联:#955

修复 DFM/DFM+ 超采样设置和弹幕开关重启后被重置 (#977)

修复关闭 DFM/DFM+ 超采样后重启恢复默认值,以及弹幕开关在启动恢复和用户设置之间相互覆盖的问题。超采样选择现在明确持久化,弹幕可见性恢复提前到耗时初始化之前,用户已显式修改时不再被启动存档覆盖。关联:#835、#836

修复 iPadOS 媒体库搜索输入无法继续编辑 (#978)

修复 iPadOS 媒体库搜索框在搜索结果更新后无法继续编辑关键词、输入法和光标操作异常的问题。关联:#834

修复 macOS 切换音频输出设备时崩溃 (#980)

回移上游 mpv CoreAudio 初始化失败的生命周期修复,避免耳机插拔或蓝牙设备切换时遗留的 hotplug 回调访问已释放的音频输出对象导致崩溃。关联:#913


维护与发布流程

  • 版本号 bump 至 1.11.9、1.11.11(#933 内及 direct commit)
  • 修复鸿蒙发布构建中 FVP 子类异步释放接口不匹配和 MDK 缓冲监听兼容问题,补齐 Web 平台 exit() 接口声明,使内置 Web 页面和鸿蒙 HAP 可正常编译(#983)
  • 修复 Linux CI 剧集多文件匹配测试共享数据库导致用例间相互干扰的问题(#974)
  • Linux 发布包补齐 DEB/RPM 运行依赖,同步使用文档(#982)
  • Android 调试版使用独立包名,可与正式版并行安装;Rust 构建遵循显式 target-platform(#951)

Contributors

@MCDFsteve, @Shinokawa, @TsangAsuna, @aozaoz112233, @makabaka11

Don't miss a new NipaPlay-Reload release

NewReleases is sending notifications on new releases.