尧图精选

Simple Live 完整指南:一个 App 打通四大直播平台的 Flutter 直播聚合工具

🕒 发布时间:2026/9/11 5:43:45 📁 来源:尧图网络
Simple Live 完整指南一个 App 打通四大直播平台的 Flutter 直播聚合工具【免费下载链接】dart_simple_live简简单单的看直播项目地址: https://gitcode.com/GitHub_Trending/da/dart_simple_live手机里躺着四五个直播 App想看哪个就得翻一次桌面切来切去还各登各的号。Simple Live 的思路很直接一个应用同时接入哔哩哔哩、斗鱼、虎牙、抖音用同一套界面选台、看播、刷弹幕把碎片化的观看体验收拢到一个 Flutter 跨平台直播工具里。 它解决什么问题把换 App变成换平台标签看直播这件事卡点从来不是播放器而是入口太散。Simple Live 把四个平台的直播房间装进同一个列表你在首页下拉刷新看到的可能是 B 站往上滑两屏又轮到斗鱼主播、封面、在线人数全部对齐成卡片样式。它支持的直播渠道包括哔哩哔哩直播、斗鱼直播、虎牙直播、抖音直播客户端则覆盖 Android、iOS以及处于 Beta 阶段的 Windows、macOS、Linux 和 Android TV。也就是说同一份代码既能跑在手机里也能推到电视上——客厅的遥控器场景项目专门给了 TV 端客户端来承接。跑起来之前先确认本地装了 Flutter项目按 3.38 环境开发剩下的步骤只有四行命令。 三步跑起项目克隆、装依赖、选入口把仓库拉到本地装好 Dart 包就能启动git clone https://gitcode.com/GitHub_Trending/da/dart_simple_live cd dart_simple_live/simple_live_app flutter pub get flutter run仓库里其实藏了四个可运行的入口各管一段场景dart_simple_live/ ├── simple_live_core/ # 核心库各平台接口与弹幕协议 ├── simple_live_app/ # 手机/电脑端客户端功能最全 ├── simple_live_tv_app/ # Android TV 专用客户端 └── simple_live_console/ # 命令行版本只跑核心库日常使用建议直接进simple_live_app想在电视上看切到simple_live_tv_app而simple_live_console适合想单测某个平台接口、不关心 UI 的开发者。跑通之后接下来聊几个真实的看播场景以及每个场景下应用替你做了什么。 三种典型看播场景体验各有什么细节按平台刷推荐。首页按平台分页每个平台各自拉取推荐房间滚动加载、下拉刷新是标配想看别的分类分类页把各平台的子类目并列出来点进去就是对应房间列表。关注主播、回来接着看。把感兴趣的主播加进关注列表后关注页会显示谁在开播你进过的房间也会记进观看历史下次不用重新搜。数据落在本地 Hive 存储里重启不丢。换台设备接着用。关注列表和观看记录可以跨设备同步两条路线任选局域网内扫码互传或者对接自己的 WebDAV 网盘做云端备份。同步相关界面和逻辑集中在 simple_live_app/lib/modules/sync/ 里本地同步走局域网协议远程同步走 WebDAV 上传下载选哪种取决于你有没有自己的网盘空间。界面本身支持深浅两套主题深色适合关灯看播浅色适合白天跟随系统或手动指定都行——细节不炫技够用就好。看完了用的部分下面钻进代码里看看这些能力底下是怎么搭的。 弹幕同一块屏幕四套私有语言弹幕是直播的灵魂也是最难跨平台的零件。四个平台的弹幕通道协议互不相同有的走 WebSocket 二进制帧有的要处理加密和签名抖音甚至直接带了一套 protobuf 定义。应用要做的是把四套方言翻译成普通话。simple_live_core/lib/src/danmaku/ 下每个平台一个实现文件对外统一收敛成同一个接口——上层播放器只关心来了消息不关心消息是谁、以什么格式发来的。这套做法也让屏蔽词、弹幕开关这些功能可以只做一遍四个平台同时生效。协议统一之后剩下的就是架构层面的事了下一节看整体分层。 源码速览一个基类撑起所有平台核心逻辑全部沉在 simple_live_core/lib/src/ 里分层很克制interface/定契约model/放数据类每个平台一个*_site.dart做具体实现。所有平台实现都挂在一个LiveSite基类上看它的默认方法就知道一个平台要提供哪些能力class LiveSite { String id ; String name ; FutureListLiveCategory getCategores(); // 读取平台分类 FutureLiveCategoryResult getRecommendRooms({int page}); // 拉取推荐房间 FutureLiveRoomDetail getRoomDetail({required String roomId}); // 房间详情 FutureListLivePlayQuality getPlayQualites(...); // 清晰度列表 FutureLivePlayUrl getPlayUrls(...); // 解析播放地址 }注意这些方法都有空实现——新平台哪怕先只交一个能播的版本应用也不会崩缺的功能自然退化成空白页。基类把差异封装在默认行为里是这套架构里最值得学的一手。应用层则薄得多GetX 管状态和路由每个页面配一个 Controller负责调核心库、喂数据给 UI。核心库甚至被独立打包命令行版本直接依赖它运行等于给核心库做了一重无 UI 冒烟测试。理解了这套契约给它加一个平台就不再是什么架构工程按下面的顺序走就行。 想加一个新平台照三步走第一步写平台实现。在simple_live_core/lib/src/下新建xxx_site.dart继承LiveSite按优先级补方法先getRoomDetail和getPlayUrls保证能播再补getRecommendRooms、getCategores让列表页可用最后接弹幕。第二步注册进应用。在 simple_live_app/lib/app/sites.dart 的站点表里加一行static final MapString, Site allSites { Constant.kBiliBili: Site( id: Constant.kBiliBili, name: 哔哩哔哩, liveSite: BiliBiliSite(), ), // 新平台按同样格式补一条 };第三步放图标、过一遍 UI。把平台 logo 丢进assets/images/然后在首页、分类、搜索几个页面各点一遍确认新平台的卡片、详情页、弹幕都正常渲染。顺序反过来也行——先通弹幕再接推荐只要最终五个核心方法都能返回数据应用侧几乎不用改动。 上手前最后几条提醒项目不提供预编译安装包想尝鲜就按上面的步骤自己flutter run编译这也是 README 开头就声明的。桌面端Windows/macOS/Linux和 TV 端目前是 Beta建议以手机端为主力体验。项目定位是学习交流用途基于公开资料开发没有逆向或破解成分商业用途请勿使用。依赖较多播放器、WebView、画中画等首次pub get和网络慢的话耐心等它把 media_kit 这类带本地库的包下完。工具的价值最终体现在你少开了几个 App。如果一个应用看遍四大平台正是你要的不妨把 Simple Live 跑起来给仓库点个 Star 支持一下持续更新想动手加平台的话照着三步扩展指南试一个你会发现这套接口契约比想象中好上手。【免费下载链接】dart_simple_live简简单单的看直播项目地址: https://gitcode.com/GitHub_Trending/da/dart_simple_live创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →