Baka 中文文档 下载 App

Baka 的技术架构——Flutter 跨平台外壳与 mpv 硬核播放内核

整体架构

Baka 采用经典的"UI 框架 + 原生播放引擎"双层架构:

┌──────────────────────────────────────┐
│     Flutter 跨平台 UI 层             │
│  毛玻璃主题 · 深浅色模式 · 流畅动效    │
├──────────────────────────────────────┤
│  业务逻辑层(Dart)                    │
│  多源聚合 · 脚本适配器 · 弹幕管理      │
│  下载引擎 · 数据同步 · 收藏夹          │
├──────────────────────────────────────┤
│  播放引擎层(media_kit / libmpv)      │
│  4K/H.265/10bit 硬解 · Anime4K 着色器  │
│  字幕渲染 · 音轨切换 · 弹幕覆盖层      │
└──────────────────────────────────────┘

Flutter UI 层

Flutter 负责整个应用的 UI 渲染和交互逻辑,优势在于:

media_kit 播放引擎

Baka 没有自己从零写解码器,而是基于 media_kit——一个 Flutter 生态中对 libmpv 的封装层。这样做的好处是直接继承了 mpv 的工业级能力:

脚本适配器机制

动态脚本系统是 Baka 架构中最有特色的部分。它允许用户加载 JavaScript 或 JSON 格式的适配器脚本来扩展新的番剧源。这一层独立于 UI 和播放引擎,通过统一接口调用,类似浏览器的扩展插件机制。

脚本机制的存在让 Baka 的内容来源不再受限于官方内置的几个源——社区可以持续贡献新脚本,用户可以按需加载。

开源与可追溯

Baka 以 GPL-3.0 协议开源,代码托管在 GitHub。这意味着整个架构的每一层都可以被审查和二次开发,不存在功能黑盒。对于在意隐私和可追溯性的用户,这一点比闭源播放器有优势。