# flutter_tv **Repository Path**: chen-superplus/flutter_tv ## Basic Information - **Project Name**: flutter_tv - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-12 - **Last Updated**: 2026-02-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NEW_TV - Flutter 电视直播软件 一款基于 Flutter 开发的 Android 电视直播应用,支持 M3U/TXT 格式直播源,适配电视遥控器操作。 ## 功能特性 ### 核心功能 - **直播播放**: 支持 HLS、RTSP、RTMP 等常见直播格式 - **频道管理**: 自动解析 M3U/TXT 格式直播源 - **频道去重**: 相同频道自动合并多源,播放失败自动切换 - **分类浏览**: 按分组浏览频道,支持收藏和最近观看 - **搜索功能**: 快速搜索频道 ### 播放控制 - **多源切换**: 支持手动切换播放源 - **自动切换**: 播放失败自动尝试下一个源 - **遥控器支持**: 完整支持方向键、确认键、返回键 - **触屏操作**: 同时支持触屏点击操作 ### 个性化设置 - **主题切换**: 内置 8 种主题色(蓝、绿、红、紫、橙、青、靛、粉) - **深色模式**: 支持浅色/深色主题切换 - **自定义源**: 支持设置自定义直播源 URL ### 局域网推送 - **HTTP 服务**: 内置 HTTP 服务器接收推送 - **二维码**: 显示二维码方便手机扫描 - **文件上传**: 支持上传 M3U/TXT 文件 - **链接推送**: 支持推送订阅链接 ## 项目结构 ``` lib/ ├── main.dart # 应用入口 ├── app.dart # 应用配置和初始化 ├── models/ # 数据模型 │ ├── channel.dart # 频道模型 │ └── channel_group.dart # 频道分组模型 ├── services/ # 服务层 │ ├── playlist_parser.dart # M3U/TXT 解析器 │ ├── channel_service.dart # 频道数据服务 │ ├── settings_service.dart # 设置存储服务 │ └── push_service.dart # 局域网推送服务 ├── providers/ # 状态管理 │ ├── channel_provider.dart # 频道状态 │ ├── player_provider.dart # 播放器状态 │ └── theme_provider.dart # 主题状态 ├── pages/ # 页面 │ ├── home_page.dart # 主页面 │ ├── player_page.dart # 播放页面 │ └── settings_page.dart # 设置页面 ├── widgets/ # 自定义组件 │ ├── tv_focusable.dart # TV 焦点组件 │ ├── channel_card.dart # 频道卡片 │ ├── category_sidebar.dart # 分类侧边栏 │ └── player_controls.dart # 播放控制 └── theme/ # 主题配置 ├── app_theme.dart # 主题定义 └── theme_colors.dart # 主题颜色 ``` ## 技术栈 - **框架**: Flutter 3.x - **播放器**: fijkplayer (基于 ijkplayer) - **状态管理**: Provider - **本地存储**: shared_preferences - **网络请求**: dio - **二维码**: qr_flutter - **HTTP 服务**: shelf + shelf_router ## 编译配置 ### 支持平台 - Android 4.1+ (API 16+) - 支持 ABI: armeabi-v7a, arm64-v8a ### 国内镜像配置 项目已配置国内镜像源,加快依赖下载: **android/build.gradle**: ```gradle repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/central' } maven { url 'https://maven.aliyun.com/repository/public' } google() mavenCentral() } ``` **gradle.properties**: ```properties SYSTEM_PROP_MAVEN_CENTRAL_URL=https://maven.aliyun.com/repository/central SYSTEM_PROP_GOOGLE_URL=https://maven.aliyun.com/repository/google SYSTEM_PROP_GRADLE_PLUGIN_URL=https://maven.aliyun.com/repository/gradle-plugin ``` ### Gradle 缓存目录 在 `android/app/build.gradle` 中配置: ```gradle buildCache { local { directory = "/home/czc/devlop/tools/gradle_resp" removeUnusedEntriesAfterDays = 30 } } ``` ## 编译说明 ### 环境要求 - Flutter SDK 3.0+ - Android SDK - JDK 11+ ### 编译步骤 1. **获取依赖** ```bash flutter pub get ``` 2. **编译 APK (调试版)** ```bash flutter build apk ``` 3. **编译 APK (发布版)** ```bash flutter build apk --release ``` 4. **编译分架构 APK** ```bash # ARMv7 flutter build apk --target-platform android-arm # ARMv8 flutter build apk --target-platform android-arm64 ``` 5. **编译 App Bundle** ```bash flutter build appbundle ``` ### 输出目录 - APK: `build/app/outputs/flutter-apk/` - AAB: `build/app/outputs/bundle/release/` ## 使用说明 ### 首次使用 1. 安装应用后打开,自动加载内置频道 2. 使用方向键选择频道,按确认键播放 3. 按返回键返回频道列表 ### 设置自定义源 1. 进入设置页面 2. 开启"使用自定义播放源" 3. 输入 M3U 或 TXT 格式直播源链接 4. 保存后重启应用 ### 局域网推送 1. 在设置中开启"启用推送服务" 2. 使用手机扫描二维码或访问显示的 IP 地址 3. 在网页上上传 M3U/TXT 文件或输入订阅链接 ### 遥控器按键说明 - **方向键**: 导航选择 - **确认键**: 播放/暂停 - **返回键**: 返回上级 - **左右键**: 切换频道(播放时) - **S 键**: 切换播放源 - **L 键**: 显示频道列表 ## 直播源格式 ### M3U 格式 ```m3u #EXTM3U #EXTINF:-1 tvg-name="CCTV1" tvg-logo="http://..." group-title="央视",CCTV1综合 http://example.com/cctv1.m3u8 ``` ### TXT 格式 ``` 央视,#genre# CCTV1综合,http://example.com/cctv1.m3u8 CCTV2财经,http://example.com/cctv2.m3u8 卫视,#genre# 湖南卫视,http://example.com/hunan.m3u8 ``` ## 注意事项 1. **网络权限**: 应用需要网络权限访问直播源 2. **存储权限**: 用于保存设置和缓存数据 3. **屏幕常亮**: 播放时保持屏幕常亮 4. **横屏模式**: 应用强制横屏显示 ## 开源协议 本项目仅供学习交流使用。 ## 更新日志 ### v1.0.0 - 初始版本发布 - 支持 M3U/TXT 直播源解析 - 支持频道分类、收藏、搜索 - 支持多主题切换 - 支持局域网推送 - 支持遥控器操作