Skip to content

jia070310/lomenTV-VDS

Repository files navigation

LomenTV VDS

一款专为 Android TV 设计的视频播放器,支持 WebDAV 网盘资源导入、智能刮削、记忆续播、IPTV 直播等功能。 image

最新版本 v1.0.15

构建号:10015。安装包请从 Releases 下载;仓库内不再附带 APK 二进制。

v1.0.15 更新简介

  • 版本versionName 1.0.15versionCode 10015
  • 版本更新对话框:窗口尺寸调整为 380dp x 350dp;更新内容长文本支持滚动查看(方向键滚动),避免焦点跑出弹窗导致无法操作。
  • 首页版本更新角标:版本更新提示徽章改为 TV 可聚焦卡片,焦点导航更稳定(下键回顶栏、方向键更一致的入口切换)。

此前版本:v1.0.14 更新摘要

  • 版本versionName 1.0.14versionCode 10014
  • 资源库列表:当前使用的资源库不再在副标题中显示「当前」,改为主信息卡片右侧选中(勾选)图标;资源库选择弹窗中的列表项采用相同逻辑,地址行更简洁。
  • 首页 · TMDB 配置提示:需要配置 TMDB API 的对话框打开时,焦点锁定在弹窗内;取消与确认可用左右键切换,避免焦点逃逸到背景界面。
  • 设置中心:左侧分类栏略加宽;标题、列表项、设置卡片与「关于」等在紧凑 UI 比例下字号略增行高与内边距微调,远距离观看更清晰;直播「定时刷新」相关下拉触发器字号与高度略增。

此前版本:v1.0.13 更新摘要

  • 版本versionName 1.0.13versionCode 10013
  • 直播设置 · 定时刷新:「定时刷新直播源」改为药丸按钮 + 上拉菜单选择间隔(关闭、1/2/4/6/12 小时);深色圆角面板、焦点行黄底黑字,与 TV 端常见交互一致。
  • 尺寸与可读性:药丸高度与同行 Switch 对齐,小字号与紧凑 contentPadding,减轻时间文字竖向裁切;上拉菜单收窄字号与药丸一致,六项时间一次完整展示(无内部滚动)。
  • 菜单位置Popup 锚在药丸右下(BottomEnd),整体上移并与药丸保留垂直间距;额外平移由 AutoRefreshPopupExtraOffsetX / AutoRefreshPopupExtraOffsetY 控制(默认各 5dp,右正下正)。
  • 修复:上拉菜单偏移不再使用 remember(density) 缓存整段 IntOffset,避免仅修改 dp 常量时界面不随参数更新。
  • 其他:启动图/主题与部分弹窗尺寸、TMDB/媒体同步与直播相关界面等同期迭代,详见对应提交变更。

此前版本:v1.0.12 相对 v1.0.11

v1.0.11 侧重媒体库/刮削链路、播放器与全站界面的整体体验与测试补充;v1.0.12 在此基础上,把更新集中在 TV 遥控器焦点扫码网页推送后的提示与窗口层级直播设置里历史列表与二维码的交互流程,不重复 1.0.11 已涵盖的刮削与播放大项。

方面 v1.0.11(基线) v1.0.12(本版新增/调整)
首页 详情/首页/资源库等「体验改进」(泛化描述) 明确行为:进入首页默认焦点在刷新;无资源时刷新上锁左键下键直达底部栏「首页」;有资源时下键进内容区;底部导航与菜单键衔接优化
WebDAV 扫码 随整体设置/资源库迭代 自检通过后关二维码 → 独立提示(引导去首页资源库选服务器并开始刮削);提示用 Dialog,避免被界面挡住
TMDB API 扫码 设置与 TMDB 相关能力延续 1.0.11 手机推送成功后:Toast 提示后自动关闭二维码窗口
直播:源 / 节目表 / UA 直播界面与 LiveViewModel 等调整(1.0.11) 历史列表点「添加」不关闭列表,二维码叠在列表上;推送成功先关二维码,立刻弹出「添加成功」(按入口区分直播源/节目表/UA 文案);成功提示用 Dialog 叠在列表之上(修复原先 Popup 被列表挡住、需先关列表才看到提示的问题);关提示后同一列表内选资源再关闭列表;二维码/成功提示显示时禁止底层列表被返回误关

构建与文档(v1.0.12)versionName / versionCode1.0.12 / 10012

历史版本

v1.0.15

  • 变更说明见上文 「v1.0.15 更新简介」

v1.0.14

  • 变更说明见上文 「v1.0.14 更新简介」

v1.0.13

  • 变更说明见上文 「此前版本:v1.0.13 更新摘要」

v1.0.12

  • 构建:1.0.12 / 10012。内容见上文 「此前版本:v1.0.12 相对 v1.0.11」 对照表。

v1.0.11

  • 媒体库与刮削:媒体分类策略、文件夹类型提示、剧集名解析、刮削与元数据、观看与统计等优化
  • 界面与播放:播放器与 PlayerViewModel、详情/首页/资源库、分类与搜索、设置中心、直播界面与 LiveViewModel 等体验改进
  • 其他:单元测试补充;app/build.gradle.kts 构建配置更新

v1.0.10

  • 直播:播放失败后的重试流程优化,降低异常退出与长时间卡住的几率
  • 版本更新:TV 端更新对话框焦点与按钮操作优化(含 TV 专用按钮、焦点锁定)
  • 关于应用:当前版本号由 BuildConfig 读取,与安装包一致
  • TMDB:首页设置支持清除 TMDB API Key(含确认);TMDB API 设置窗口焦点锁定,防止焦点移出窗口

v1.0.9

UI 优化

  • 二维码配置窗口统一:TMDB、WebDAV、直播源三个二维码配置窗口风格统一
    • 统一尺寸:320dp × 365dp,更加紧凑
    • 统一关闭按钮:右上角黄色底黑色图标,高亮聚焦
    • 统一背景色:SurfaceDark 深色背景
    • 焦点锁定:打开窗口自动聚焦关闭按钮,方向键锁定在窗口内
    • 返回键关闭:按遥控器返回键可直接关闭窗口

优化改进

  • 二维码窗口布局优化:缩小二维码白色底框,优化间距,确保底部文字完整显示
  • 直播源二维码窗口:组件排列更紧凑,访问地址网址可完整显示

v1.0.8

  • APTV 专用 UA:访问 aptv.app 域名时自动使用 iPhone UA,提高兼容性
  • 设置中心焦点导航优化:左侧菜单右键快速跳转右侧功能区,操作更便捷
  • 内置直播源调整:优化为 LEMONTV、MIGU、APTV 三个稳定源
  • EPG 节目表更新:默认使用 seven-days.xml.gz,新增多个备用源
  • 网页配置优化:WebDAV/直播配置支持多页面共享,修复推送数据接收问题
  • 焦点管理优化:修复直播界面选择源窗口焦点丢失问题

v1.0.7

  • IPTV 直播:支持 M3U 直播源,内置多个直播源
  • 跳过片头片尾设置:播放时可设置片头片尾时间,自动跳过
  • 自动跳过开关:设置中心可开启/关闭自动跳过片头片尾功能
  • 记忆续播开关:设置中心可开启/关闭记忆播放进度功能
  • 自动下一集:电视剧播放完自动播放下一集

功能特性

新增直播功能

媒体库管理

  • WebDAV 网盘支持:连接 OpenList/AList 等 WebDAV 服务
  • 智能刮削:优先使用本地 .nfo 文件,其次 TMDB 网络刮削
  • 多类型媒体:支持电影、电视剧、纪录片、演唱会
  • 资源库管理:支持多个 WebDAV 资源库切换

播放功能

  • 记忆续播:自动记录播放进度,下次从断点继续(可开关控制)
  • 智能跳过:支持跳过片头片尾,按剧集系列统一配置
  • 自动下一集:电视剧自动连播,最后一集提示结束
  • 音轨/字幕选择:播放时切换音轨和字幕
  • 播放控制:支持快进/快退、暂停、音量调节

IPTV 直播

  • 直播源管理:支持自定义 M3U 直播源
  • 内置直播源:提供多个内置直播源选择
  • EPG 节目表:支持节目预告显示
  • 频道切换:数字键快速换台,上下键切换频道

TV 端优化

  • TV 专属 UI:针对遥控器操作优化
  • 焦点导航:方向键控制焦点移动
  • 沉浸式体验:全屏播放,自动隐藏状态栏

其他功能

  • TMDB API 配置:支持自定义 TMDB API Key
  • 最近观看:显示最近观看记录
  • 搜索功能:支持媒体搜索
  • 通知栏:首页显示滚动通知,支持远程配置

系统要求

  • Android 5.0 (API 21) 及以上(以 app/build.gradle.ktsminSdk 为准)
  • Android TV 或电视盒子

技术栈

  • 语言:Kotlin
  • UI 框架:Jetpack Compose TV (TvMaterial3)
  • 架构:MVVM + Hilt 依赖注入
  • 数据库:Room
  • 网络:Retrofit + OkHttp
  • 图片加载:Coil

构建说明

# 克隆项目
git clone https://github.com/jia070310/lomenTV-VDS.git

# 进入项目目录
cd lomenTV-VDS

# 构建 Debug 版本
./gradlew assembleDebug

# 构建 Release 版本
./gradlew assembleRelease

使用说明

遥控器操作指南

基本导航

  • 方向键(上下左右):移动焦点、选择项目
  • 确定键(OK/Enter):确认选择、进入详情、播放媒体
  • 返回键(Back):返回上一级、关闭弹窗
  • 主页键(Home):返回系统主页

播放控制

  • 方向键左右:快进/快退
  • 方向键上下:调节音量(部分设备)
  • 确定键:暂停/播放
  • 菜单键:显示播放设置(音轨、字幕、跳过片头片尾)
  • 数字键:直播界面快速输入频道号

设置中心导航

  • 左方向键:从右侧功能区返回左侧菜单
  • 右方向键:从左侧菜单快速跳转右侧功能区
  • 下方向键:在列表中向下移动

直播播放界面功能

  • 左方向键:呼出频道列表
  • 右方向键:切换线路(多线路视频源)
  • 下方向键:上下切换频道
  • 菜单键:呼出播放界面状态栏

模拟器/手机测试说明

触控操作

  • 单击:选中项目(获取焦点)
  • 双击:确认选择(相当于遥控器确定键)
  • 滑动:滚动列表内容
  • 系统返回键:返回上一级

键盘映射(模拟器)

  • 方向键(↑↓←→):导航焦点
  • Enter:确定
  • Esc/Backspace:返回
  • 数字键 0-9:直播界面选台

直播播放界面功能

  • 左方向键:呼出频道列表
  • 右方向键:切换线路(多线路视频源)
  • 下方向键:上下切换频道
  • 鼠标双击屏幕:呼出播放界面状态栏

首次使用

  1. 启动应用后,配置 TMDB API Key(可选,用于媒体刮削)
  2. 在设置页添加 WebDAV 网盘
  3. 等待媒体刮削完成
  4. 开始观看

添加 WebDAV 网盘

  1. 进入设置页
  2. 选择"添加 WebDAV 网盘"
  3. 使用手机扫描二维码,在网页上填写配置信息
  4. 或选择"手动输入"直接填写服务器地址、端口、路径、用户名、密码
  5. 保存并测试连接

TMDB API 配置

  1. 访问 TMDB 官网 申请 API Key
  2. 在设置页选择"TMDB API 设置"
  3. 使用手机扫描二维码,在网页上输入 API Key
  4. 配置成功后即可使用 TMDB 刮削功能

通知配置

应用支持从远程服务器获取通知并在首页显示。

通知文件位置notifications.json

访问方式:应用通过 https://gh-proxy.org/ 加速器访问 GitHub 上的通知文件

配置格式

{
  "notifications": [
    {
      "id": "welcome",
      "title": "欢迎使用",
      "content": "通知内容",
      "type": "info",
      "enabled": true
    }
  ]
}

更新方式

  1. 修改 notifications.json 文件
  2. 提交到 GitHub 仓库
  3. 应用自动获取最新通知(每次打开首页时刷新)

项目结构

app/src/main/java/com/lomen/tv/
├── data/               # 数据层
│   ├── local/          # 本地数据库
│   ├── remote/         # 远程 API
│   ├── repository/     # 仓库
│   ├── scraper/        # 媒体刮削
│   └── webdav/         # WebDAV 客户端
├── domain/             # 领域层
│   ├── model/          # 数据模型
│   └── service/        # 业务服务
├── ui/                 # UI 层
│   ├── screens/        # 页面
│   ├── components/     # 组件
│   ├── theme/          # 主题
│   └── viewmodel/      # ViewModel
└── utils/              # 工具类

开源协议

MIT License

致谢

About

播放NAS webdav网盘 影视剧集 TV播放器

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages