Ani Search – 动漫聚合搜索与播放客户端,支持秒级续播和自动切集

Ani Search 是一个基于 Flutter 的动漫聚合搜索与播放客户端,当前面向 Android 平台。应用通过本地依赖 dart_ani_search 直接获取搜索结果、详情、章节和播放源,远程 API 仅用于版本检查。搜索历史、播放历史、收藏作品、主题偏好和播放器设置存储在本地 SQLite 数据库,不依赖云端同步。

应用使用 GetX 管理路由、依赖注入和页面状态,采用 Material 3 与 FlexColorScheme 构建浅色和深色主题。

场景痛点

追番时在多个动漫站点之间来回搜索同一部作品,是不少观众的日常。每个站点的搜索结果、播放线路和章节列表格式各异,找到一个稳定可用的播放源往往需要反复尝试。换一台设备后,之前的搜索记录和播放进度全部丢失,想接着看只能凭记忆找回上次看到第几集。播放过程中遇到加载失败,需要手动重新打开页面。倍速播放和自动切集等功能,并非每个站点都提供。

核心功能

聚合搜索

应用通过 dart_ani_search 并发查询已启用的 Provider,可携带 Provider 筛选并展示聚合结果。搜索历史保存在本地,支持单条删除和清空。

详情播放

Ani Search 详情播放页在同一页面展示视频播放器、操作按钮、简介、播放线路和章节列表,用户可以边看边选。章节按固定区间分组展示,避免大列表一次性渲染导致页面卡顿。

收藏与播放历史

详情页支持收藏和取消收藏,收藏页提供最近收藏和标题排序两种浏览方式。播放历史按 provider + animeId 维护同一作品的最新记录,保存最近播放剧集、进度、来源和更新时间。详情播放页和历史页均可恢复到上次播放的剧集和秒级进度。

视频播放

播放内核使用 better_player_plus,支持上一集、下一集、重试、缓存、预加载、倍速调节、循环模式,以及播放完成后的自动切集。播放器手势支持进度拖动预览、音量调节、应用亮度调节和自托管全屏路由。自动播放设置可分别控制 WiFi 和移动网络下是否自动播放。

主题与封面

主题支持跟随系统、浅色和深色三种模式,提供多套 Material 3 主题配色。网络封面通过 cached_network_image 统一处理加载、缓存和错误占位。

版本更新

启动时和设置页可检查最新版本。版本服务默认地址为 https://anime.appsrv.pro,可通过编译变量 --dart-define=API_BASE_URL 覆盖。

安装与使用

前置条件

  • Flutter / Dart SDK ^3.11.0
  • Android 模拟器或真机设备
  • Flutter 环境已通过 flutter doctor 检查

安装

克隆仓库后,安装依赖:

运行应用:

如需使用自定义版本 API 地址:

构建与测试

场景命令说明
构建 APKflutter build apk构建 Android 安装包
静态分析flutter analyze运行 flutter_lints 检查
运行测试flutter test执行单元测试和 Widget 测试
代码生成dart run build_runner build --delete-conflicting-outputs重新生成 Drift、JSON Serializable 和 Retrofit 代码

我的使用感受

从 README 描述来看,Ani Search 把搜索、播放和收藏整合到一个客户端里,直接回应了多站点来回切换的痛点。聚合搜索并发查询多个 Provider,省去了逐个站点搜索同一部作品的时间。播放历史按秒级进度恢复,追番中断后可以无缝衔接。自动切集、倍速播放和手势控制覆盖了主流观影需求,WiFi 和移动网络下的自动播放策略也可分开设置。整体功能定位清晰,适合想在一个应用里集中追番的用户。

官方网站

https://github.com/zhao004/flutter_ani_search

下载地址

https://pan.quark.cn/s/2f94ae1042a2

相关推荐

Avatar photo

JameCling

我是 格律诗的软件世界 的作者,一名专注于软件工具、AI 技术和数字效率领域的独立研究者。
多年来,我持续关注互联网工具的发展趋势,体验不同平台的软件产品,并研究它们如何帮助用户提升效率。
我的工作不仅是整理软件信息,而是通过实际测试、功能分析和使用场景研究,帮助用户判断一个工具是否真正值得使用。
格律诗的软件世界 的每一篇文章都希望提供真实、有价值的信息,包括工具特点、使用方法、优缺点分析以及适合的人群。
我相信,好的工具能够改变工作方式,而准确的信息能够帮助用户做出更好的选择。