NipaPlay-Reload 是一个现代化的跨平台视频播放器,支持 Windows、macOS、Linux、Android 和 iOS。集成了弹幕显示、多格式字幕支持、多音频轨道切换,新番查看等功能,采用 Flutter 开发,提供统一的用户体验。
除了本地播放外,还支持 Jellyfin / Emby 免费媒体服务器软件,可以让你在任何设备上流式传输媒体收藏。另外后续还将新增支持云媒体库挂载 WebDAV、FTP、SMB。支持选择播放器内核,目前提供了 libmpv (底层媒体播放库)、MDK(跨平台媒体播放框架)、Video Player(Flutter官方视频播放器)。

支持本地视频文件播放
支持Emby,Jellyfin视频播放
支持弹幕显示(集成弹弹play)
滚动弹幕、顶部弹幕、底部弹幕
弹幕记忆运动轨迹
时间轴跳转时弹幕位置同步
弹幕轨道管理系统
合并弹幕显示
开关弹幕覆盖
字幕支持
支持 ASS、SRT 格式字幕
支持内嵌字幕和外挂字幕
支持多字幕轨道切换
支持字幕样式自定义
音频支持
支持多音频轨道切换
视频信息自动匹配
播放进度记忆
视频播放
支持本地视频文件播放
支持Emby,Jellyfin视频播放
支持弹幕显示(集成弹弹play)
滚动弹幕、顶部弹幕、底部弹幕
弹幕记忆运动轨迹
时间轴跳转时弹幕位置同步
弹幕轨道管理系统
合并弹幕显示
开关弹幕覆盖
字幕支持
支持 ASS、SRT 格式字幕
支持内嵌字幕和外挂字幕
支持多字幕轨道切换
支持字幕样式自定义
音频支持
支持多音频轨道切换
视频信息自动匹配
播放进度记忆
番剧管理
新番时间表展示
按星期分类显示
番剧详情查看
图片缓存管理
历史记录同步
设置中心
毛玻璃设计风格,提供现代感界面
主题模式切换(亮色/暗色)
背景图片自定义更换
快捷键自定义
账户设置
关于页面
核心功能库
fvp - 高性能视频播放器
video_player - Flutter官方视频播放器
media_kit - 跨平台媒体播放框架
media_kit_video - media_kit视频组件
media_kit_libs_video - media_kit视频库
http - HTTP 请求处理
crypto - 加密功能
UI 相关
glassmorphism - 毛玻璃效果
hugeicons - 图标库
kmbal_ionicons - 图标库
transparent_image - 透明图片占位符
文件处理
file_selector - 文件选择器
path_provider - 路径提供
path - 路径处理
image_picker - 图片选择器
image - 图片处理
状态管理
provider - 状态管理
synchronized - 同步控制
数据存储
shared_preferences - 本地存储
sqflite - SQLite数据库
sqflite_common_ffi - 桌面平台SQLite支持
网络相关
cached_network_image - 网络图片缓存
系统功能
window_manager - 窗口管理
package_info_plus - 包信息
url_launcher - URL 启动器
permission_handler - 权限管理
wakelock_plus - 屏幕常亮
screen_brightness - 屏幕亮度控制
工具库
intl - 国际化支持
uuid - UUID生成器
开发工具
flutter_lints - 代码检查
🎯 核心框架
Flutter - 跨平台UI框架
Dart - 编程语言
🎬 视频播放引擎
FVP (Flutter Video Player) - 基于libmdk的高性能视频播放器
Media Kit - 跨平台媒体播放框架
Video Player - Flutter官方视频播放器
libmpv - 底层媒体播放库
🗄️ 数据存储
SQLite - 本地数据库存储
SharedPreferences - 轻量级键值存储
文件系统 - 本地文件管理
🌐 网络与API
HTTP - 网络请求处理
弹弹play API - 弹幕数据源
Bangumi API - 番剧信息源
Emby/Jellyfin API - 媒体服务器集成
🎨 UI/UX技术
Material Design - 设计语言
Glassmorphism - 毛玻璃视觉效果
Provider - 状态管理
自适应布局 - 响应式设计
🔧 系统集成
Window Manager - 桌面窗口管理
Permission Handler - 权限管理
Wakelock - 屏幕常亮控制
Screen Brightness - 亮度控制
📱 平台支持
Windows - 桌面应用
macOS - 桌面应用
Linux - 桌面应用
Android - 移动应用
iOS - 移动应用
v1.11.7版本
新功能
播放器支持跳过片头/片尾 (#903)
播放番剧时,播放器现在可以自动识别片头和片尾区间,并在屏幕右下角显示跳过按钮。数据来源包括 AniSkip 社区标注与弹幕报点推导两种方式,两者均失败时静默降级,不影响正常播放。可在播放器设置中开启或关闭此功能。画中画模式和 UI 锁定状态下跳过按钮会自动隐藏。
Bug 修复
修复弹弹play接口因 Dart 3.13 VM 回归导致的全面崩溃,以及观看历史无法加载的问题 (#899)
Dart 3.13 的虚拟机存在一处回归缺陷,导致登录状态下弹幕加载、排行榜、播放历史、收藏、番剧详情等接口全部失败。此外,在新旧版本之间切换后,观看历史数据库可能因迁移逻辑不幂等而永久无法打开(数据仍在,但读取失败),并伴随大量错误日志和 CPU 占用异常。本次修复同时解决了上述两个问题,已验证 173 条历史记录无丢失。关联:#898
修复多端同步导致的媒体库连接丢失,并补齐同步配置的全量备份 (#900)
多端同步功能在特定情况下会导致媒体库连接丢失。同时,多端同步的配置此前未被全量备份系统收集,现已补齐。
修复 macOS 上绕过系统代理导致的网络请求失败 (#904)
macOS 已启用系统代理时,NipaPlay 的网络请求此前仍会走直连,导致在校园网或企业网络环境下弹幕匹配、播放历史等接口失败。现已正确读取并应用系统代理配置,包括代理例外列表。
修复 Android TV 上空媒体库显示异常、遥控器按键错乱及二维码输入显示不全 (#905)
没有可用媒体来源时,媒体库现在仍会显示标题、连接提示和添加入口,遥控器可直接确认添加媒体。同时修复了遥控器菜单键和返回键的映射异常,以及二维码输入弹窗在 TV 屏幕上显示不完整的问题。关联:#902
修复 Jellyfin 12 登录失败及媒体鉴权问题 (#906)
Jellyfin 12 默认禁用了旧版鉴权方式,导致登录返回 400 错误,登录后的媒体浏览、播放进度上报及字幕请求也一并失败。现已统一适配标准鉴权协议,Emby 保持原有协议不受影响。关联:#901
DFM+ 弹幕引擎优化,修复开头卡顿与弹幕抽帧问题 (#907)
将字形预热提前到视频载入阶段,解决了弹幕在视频开头出现卡顿的问题。同时修复了进度保存占用主线程导致弹幕动画出现抽帧的问题,并优化了视频载入阶段的提示文案和插件设置页的更新提示。
内部架构
引入统一媒体数据库架构 (#869)
引入了新的统一媒体数据库设计(DatabaseService 与 AnimeInfoService),现阶段仅建立基础架构,不影响现有功能。后续将逐步接入业务代码,并在设置中提供实验性开关供用户选择启用。关联:#867
维护与发布流程
修复 Android、Linux 和 HarmonyOS 平台的发布构建失败,涉及 Android SDK 初始化、OpenGL 渲染线程配置及 Rust 桥接的跨平台整数类型处理 (#908)
更新 .gitignore 配置
版本号升级至 1.11.7