NipaPlay 更新日志
新平台支持
HarmonyOS 基础适配,接入 FVP/Erika 播放器 (#797)
NipaPlay 正式支持 HarmonyOS 平台。本次适配基于 OpenHarmony Flutter SDK,支持在 HarmonyOS 真机上构建、安装和运行,主要包括:
- 支持 FVP/MDK 与 Erika 两套播放器内核,接入 HarmonyOS AVCodec 硬件解码、Surface 渲染和 OHAudio 音频输出;
- 接入本地设置、应用目录、SQLite、权限、文件选择、图片选择、屏幕亮度、防休眠、系统音量等系统能力;
- 通过 QuickJS C Bridge 支持 JavaScript 插件执行;
- 使用
aarch64-unknown-linux-ohos编译 Rust 核心,支持 Torrent 功能; - 修复播放器控制浮层点击后约一秒就消失的问题;
- 修复取消文件选择后加载状态无法结束的问题;
- 修复 MDK 硬件解码器选择未生效的问题;
- 修复 Torrent 初始化访问不可写系统目录的问题;
- HarmonyOS 依赖通过独立的
pubspec_overrides.ohos.yaml与主线隔离,不影响 Android、iOS 及桌面平台。
Apple TV 大屏适配 (#809)
NipaPlay 正式支持 Apple TV(tvOS)平台,主要包括:
- 适配大屏导航、焦点操作和遥控器输入;
- 媒体库、番剧、账号、设置、插件、搜索和播放器流程均已针对电视遥控器进行适配;
- 支持通过二维码在浏览器或手机端完成文字输入;
- 播放策略强制使用 Erika 内核,播放界面默认深色主题;
- 通过统一的
isTelevision平台策略管理电视端行为,为后续 Android TV 支持预留扩展空间; - 非电视平台的现有行为不受影响。
新功能与体验改进
首页新增自适应热门排行榜 (#810)
- 在首页新增弹弹play排行榜,支持全站热播、全站飙升和新番热播三种排序;
- 排行榜接口加入自动重试与缓存兜底,降低偶发请求失败的影响;
- 移动端通过上拉菜单、桌面端通过独立窗口展示完整榜单;
- macOS/桌面端完整榜单窗口加入毛玻璃效果。
完善桌面排行榜与平板设置体验 (#811)
- 重做桌面排行榜设置与完整榜单窗口,支持排序下拉、前三名展示和海报网格;
- 优化排行榜间距、卡片文本、主题色和详情返回行为;
- 平板端隐藏外部调用、快捷键及开发者设置中的打开日志路径等桌面专属入口;
- 修复大屏模式下快捷键误拦截问题。
WebDAV/SMB 远程媒体路径优化与插件系统扩展 (#791)
- 优化 WebDAV 和 SMB 路径为新的 Base URL 格式,解决更改服务器配置后媒体匹配全部失效的问题;
- 扩展插件系统 API,允许执行外挂可执行文件(为 steam_status_sync 等插件提供支持);
- 修复清除匹配信息后丢失播放记录的问题。
DFM+ 弹幕渲染与播放器优化 (#808)
- 修复 emoji 字体度量问题,解决 emoji 与纯文本不同渲染路径导致的防碰撞失效;
- 修复发送弹幕后会重载弹幕且丢失 emoji 的问题,改用增量渲染和热重载机制;
- 为自己发送的弹幕增加绿色矩形框标识;
- 修复部分等宽窄字母渲染后间距过大的问题;
- 优化视频载入放行逻辑;
- 修复 iOS 端调用系统文件选择器失败的问题。
Bug 修复
修复 Linux/NVIDIA 环境下的播放崩溃与画面异常 (#798)
- 修复 Linux/NVIDIA 环境下播放崩溃、画面损坏、闪烁和 libmpv 蓝屏问题;
- 恢复 media_kit 的隔离 EGL 上下文,解决 mpv 蓝屏问题;
- 在 Linux+NVIDIA 环境下,弹幕渲染默认不使用 Next2 内核,避免驱动层 SIGSEGV 崩溃;
- 在 NVIDIA 显卡实际参与渲染时,优先选择 CUDA/NVDEC 解码器,而非 VAAPI/VDPAU;
- NVIDIA 判断从"驱动是否加载"收紧为"当前进程是否实际使用 NVIDIA GL/EGL",避免混合显卡误判。关联:#639、#307
修复 Erika 播放器恢复进度与视觉同步问题 (#793)
- 修复恢复播放时可能在跳转完成前就开始播放,导致视频画面空白直到用户手动拖动进度条的问题;
- 修复弹幕阴影样式修改后未实时同步到 Erika 的问题;
- 修复窗口模式下视频背景从毛玻璃变为纯黑的问题。
修复退出播放器后 Erika 窗口覆盖层残留 (#794)
- 修复退出播放器后 Erika 原生覆盖层未正确清除,导致返回主页后界面异常的问题;
- 修复全屏切换、播放恢复等场景下的覆盖层状态管理。关联:#66
修复远程媒体播放列表与自动续播失效 (#812)
修复 #791 引入的 Base URL 格式导致 WebDAV/SMB 播放列表和自动续播功能失效的问题。关联:#791
修复 Windows 端弹窗卡死问题 (#815)
- 修复 Flutter 3.44.6 更新后 Windows Windowing 将部分弹窗提升为隐藏原生窗口,导致界面看似卡死的问题;
- 将媒体库排序、Emby/Jellyfin 排序及手动匹配弹窗保留在当前 Flutter 主视图;
- 恢复 Emby/Jellyfin 排序当前选项的高亮、勾选、焦点和自动滚动定位。关联:#795
修复 iOS 备份文件选择器与 Windows 音量问题 (#819)
- 修复 iOS 端备份功能调用系统文件选择器失效的问题;
- 修复 Windows 端 libmpv 内核因时序问题导致的音量偏小问题;
- 为 WebDAV 和 SMB 媒体库管理添加进程内缓存,优化加载速度。关联:#796
维护与发布流程
- 放宽 macOS CI 中 CocoaPods 安装策略,允许在必要时自动更新锁文件,修复 macOS 打包任务失败的问题 (#790)
- 升级 Erika 播放器依赖至 v0.1.5,更新 HarmonyOS 和 tvOS 构建配置以使用对应预编译产物 (#817)
- 修复 Erika v0.1.5 在 Windows 下因 SDK 宏冲突导致的编译失败,并跟进上游 SMTC 修复 (#823、#824)
- 新增 HarmonyOS HAP 和 Apple TV 旁加载包的发布流程 (#813)
- 修复 HarmonyOS CI 签名工具在无交互终端环境下无法读取密码的问题 (#814)
- 修复 tvOS CI 中 Flutter SDK Git 目录缺失导致构建失败的问题 (#818)
- 修复 HarmonyOS 排序弹窗对 Flutter 3.41+ 新 API 的依赖,确保与 HarmonyOS Flutter 3.35 兼容 (#816)
- 稳定各平台发布构建:固定 Windows 构建环境、修复 tvOS Rust 工具链依赖、迁移 HarmonyOS 插件镜像源、修复 macOS 公证重试逻辑 (#820)
- 修复 Erika v0.1.5 HarmonyOS ArkTS Bridge 在严格编译器下的类型推断错误 (#821)
- 修复 Erika tvOS 预编译缓存补丁的幂等性问题 (#822)
- 版本号升级至 1.11.3
Contributors
@ASIjacket, @MCDFsteve, @Shinokawa, @aozaoz112233, @baizhenyu, @makabaka11