Simple Live:开源一站式聚合四大直播平台的完整指南(跑起来与二次开发)
【免费下载链接】dart_simple_live简简单单的看直播项目地址: https://gitcode.com/GitHub_Trending/da/dart_simple_live
深夜追更时,你可能正在斗鱼看一场游戏直播,同时哔哩哔哩挂着另一个主播,手机里的抖音还有没看完的赛事——在四个浏览器标签页之间来回切换,是不少直播重度用户的日常。今天要介绍的Simple Live就是一个用 Flutter 编写的免费开源直播聚合客户端:它把哔哩哔哩、斗鱼、虎牙、抖音四个平台的房间和主播收进同一个列表,一套代码可以编译到 Android、iOS、Windows、macOS、Linux 和 Android TV 六种终端上,界面干净、没有广告位,项目口号就是"简简单单的看直播"。
四个平台的数据,是怎么并成一份列表的
Simple Live 的核心思路是"每个平台一套独立实现,对外统一接口"。各平台的数据抓取、弹幕协议全部封装在核心库 simple_live_core/lib/src/ 里,四个平台互不影响,某个平台的接口变动不会拖累其他平台。
在应用侧,所有已注册的平台集中在 simple_live_app/lib/app/sites.dart 的一个注册表中,每个平台绑定自己的 Logo、名称和对应的站点实现;首页列表按你设置的排序展示,不常用的平台可以直接从显示列表里移除。
| 平台 | 内容特点 | 实现文件 |
|---|---|---|
| 哔哩哔哩直播 | 二次元与游戏内容 | bilibili_site.dart |
| 斗鱼直播 | 游戏与娱乐直播 | douyu_site.dart |
| 虎牙直播 | 电竞赛事 | huya_site.dart |
| 抖音直播 | 热门短视频生态直播 | douyin_site.dart |
从克隆到运行:5 分钟上手
项目不提供现成的 Release 安装包,README 中明确写了请自行编译后运行测试,所以"跑起来"这件事需要自己动手。环境只有一个硬性要求:Flutter 3.38及以上版本。
git clone https://gitcode.com/GitHub_Trending/da/dart_simple_live cd dart_simple_live/simple_live_app flutter pub get flutter run命令执行完,App 就会跑在你连接的设备上。仓库里其实有四个包,各管一摊:simple_live_core是核心库(各平台数据与弹幕协议),simple_live_app是手机/桌面主应用,simple_live_tv_app是面向 Android TV 的遥控器焦点版本(内置焦点模型base_focus_model.dart),simple_live_console则是命令行调试工具,支持传入直播间链接直接输出播放直链或拉取弹幕,排查协议问题时比较有用。
日常使用:浏览、跳转与弹幕
实际体验下来,主应用的用法和官方客户端差别不大,但多了几个跨平台工具:
- 链接直跳:在解析页粘贴任意一个直播 URL,App 会识别平台并直接进入房间,省去手动输入房间号;
- 直播源获取:选择清晰度后一键拿到播放直链,可以交给 PotPlayer 等外部播放器;
- 观看记录:历史自动落库,下次打开接着看;
- 播放增强:画中画、屏幕常亮、亮度音量调节,以及可设置的定时自动退出。
弹幕基于canvas_danmaku渲染,四个平台的协议差异都在 simple_live_core/lib/src/danmaku/ 下各自封装。设置里可以屏蔽关键词清广告刷屏,也能调节显示密度与滚动速度。
关注列表与观看历史,三种方式跨设备同步
手机上关注了一半,回家想在电脑上继续,这个需求 Simple Live 给了三条链路,全部位于 simple_live_app/lib/modules/sync/ 目录下:
| 同步方式 | 原理 | 适用场景 |
|---|---|---|
| 局域网同步 | UDP 自动发现同 Wi-Fi 下的设备,扫码互联 | 手机和家里电脑之间快速互传 |
| WebDAV 同步 | 对接 Nextcloud、坚果云等网盘 | 数据存放在自己的云上 |
| 远程服务器同步 | 基于 SignalR 的实时推送 | 跨网络、多设备秒级同步 |
三种方式按需选择,也可以混着用;对"数据自己掌握"有要求的用户,WebDAV 方案比较合适。
想接一个新平台?改动集中在两处
这个项目对二次开发者比较友好,扩展点设计得很克制。第一步是实现接口:simple_live_core/lib/src/interface/live_site.dart 定义了统一的LiveSite基类,分类、房间/主播搜索、房间详情、清晰度、播放地址、直播状态、SC 等能力都给出了方法签名,缺省实现全部返回空值,你只需按平台实际接口覆写。第二步是在应用侧的sites.dart注册表里追加一条记录,新平台就会出现在首页。
配套方面,核心库还带了统一的错误体系core_error.dart和多级别日志core_log.dart,调试过程不至于手忙脚乱。
谁适合把它跑起来
如果你是直播重度用户,日常需要在多个平台之间切房间,又受够了各 App 的广告与臃肿功能,Simple Live 值得装一个当主力入口;如果你在学 Flutter 跨端开发,它把"多平台协议适配 + 多终端 UI 适配"这件事拆得相当清楚,从simple_live_core一路读到simple_live_tv_app,就是一份现成的跨平台直播应用参考实现。需要留意的是:项目声明仅用于学习交流,严禁商业用途。下一步可以直接把仓库克隆下来,先跑flutter run看效果,再决定要不要动手改。
【免费下载链接】dart_simple_live简简单单的看直播项目地址: https://gitcode.com/GitHub_Trending/da/dart_simple_live
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考