版本 v1.4.9
Merge pull request #64 from Shinokawa/main
Jellyfin功能更新:播放记录同步 + 媒体库排序
本次更新为NipaPlay添加了完整的Jellyfin媒体库管理功能,包括智能播放记录同步和灵活的媒体库排序功能,显著提升了Jellyfin用户的体验。
新增功能
- Jellyfin播放记录同步服务
新增文件: lib/services/jellyfin_playback_sync_service.dart
核心功能
智能冲突处理: 比较服务器与本地播放记录,自动选择最新的记录
实时同步: 支持播放开始、暂停、停止时的记录同步与更新
进度同步: 每秒同步播放进度到Jellyfin服务器
会话管理: 完整的播放会话生命周期管理
技术特性
支持播放位置、播放次数、最后播放时间等数据同步
自动处理播放完成标记
错误处理和重试机制
2. Jellyfin媒体库排序功能
新增文件: lib/widgets/jellyfin_sort_dialog.dart
排序选项
创建时间: 按文件创建时间排序
名称: 按名称字母顺序排序
首播日期: 按首播日期排序
播放时间: 按最后播放时间排序
制作年份: 按制作年份排序
社区评分: 按社区评分排序
时长: 按视频时长排序
播放次数: 按播放次数排序
排序顺序
升序/降序: 支持两种排序方向
核心组件更新
- JellyfinProvider (lib/providers/jellyfin_provider.dart)
新增功能:
排序状态管理 (_currentSortBy, _currentSortOrder)
排序设置更新方法 (updateSortSettings)
支持排序参数的媒体项加载
2. JellyfinService (lib/services/jellyfin_service.dart)
新增功能:
支持排序参数的API调用
暴露访问令牌和用户ID供同步服务使用
优化媒体项加载逻辑
3. VideoPlayerState (lib/utils/video_player_state.dart)
修改 :
集成Jellyfin播放记录同步服务
修复历史记录更新错误bug
添加播放器重置标志防止冲突
优化错误检测逻辑
关键修复
解决退出时弹出未知错误: 添加重置标志防止在播放器重置过程中更新历史记录
改进错误检测: 更精确的无效数据检测,避免误报
优化同步时机: 在合适的时机进行Jellyfin同步操作
4. JellyfinMediaLibraryView (lib/widgets/jellyfin_media_library_view.dart)
新增功能:
集成排序对话框
添加排序按钮UI
实时响应排序设置变化
5. LibraryManagementTab (lib/widgets/library_management_tab.dart)
新增功能:
在库管理界面添加Jellyfin排序按钮
提供便捷的排序设置入口
构建信息
- 提交: eb817dc
- 分支: main