Skip to content

Releases: panhaichen-creator/LibreTV-for-HarmonyOS

v2.3.6 — 新增搜索关键字联想功能,优化播放缓冲体验,UI细节美化

Choose a tag to compare

@panhaichen-creator panhaichen-creator released this 27 Oct 08:57

下载

文件 | 说明 -- | -- LibreTV-HarmonyOS-v2.3.6-unsigned.hap | 未签名安装包(2.18 MB),需自行签名后安装 LibreTV-HarmonyOS-v2.3.6-unsigned.hap.sha256 | 文件校验值,用于确认下载完整

⚠️ 这个 HAP 没有签名,直接安装会失败。 请用你自己的证书重签,步骤见 README「📥 安装 → 方式 B:用 Release 里的 HAP 自己重签」。

SHA256:

系统要求

  • HarmonyOS 6.0(API 26)及以上
  • 手机 / 平板自适应,平板与大屏横屏走加宽网格;播放页支持横屏全屏
  • 播放走系统 AVPlayer,不依赖 WebView,也不需要额外装解码器

本版要点

一句话:搜索框终于"输入即出",详情页和播放页补齐了同类应用该有的细节, 浅色 / 深色主题下那几条说不清的"色带"也彻底没了。

这一版相对上一份公开说明(v1.9.8)累计改动较多,按模块归并如下。

新增:搜索关键字联想(首页 + 搜索结果页)

  • 打第一个字就有候选,不用等到第二个字。 联想不是拿关键字去采集站搜一遍(那要走「多源并发 + 解析 + 排序」,13 秒起步, 会把输入框拖死),而是走豆瓣的轻量搜索接口,通常 200600 ms 就回。
  • 两个接口并行:快接口先出结果,条数不够(少于 4 条)时再用慢接口补一次。 慢接口专治"单个汉字不出结果"——快接口对「流 / 三 / 星」这类单字实测返回 0 条, 慢接口能回 812 条真实片名,代价是 5001000 ms,所以只用来补漏。
  • 面板在输入框正下方,不再遮挡输入框:它和搜索框是同一个纵向流里的兄弟节点, 按搜索框的盒底往下排,而不是叠在输入框上面。可以边看候选边改关键字。
  • 点候选直接进结果页,结果页不会再弹一次面板。进页面时代入关键字、 点候选项、点历史词这几种"程序填值"都会被识别成回填、不触发联想; 只有你在结果页输入框里真的改了字,才重新展开。
  • 最多 6 条,带「电影 / 剧集」小标签和年份;防抖 220 ms(首字不防抖); 接口超时或失败就地回落本地片名池筛选,面板不会卡在"正在联想"。

详情页

  • 豆瓣评分:先用采集站自带的分数占位,豆瓣结果异步到了再覆盖; 拉不到就保持源站分数,不弹提示、不阻塞页面。
  • 简介折叠成 3 行,超出才给「展开 / 收起」。短简介不显示这个开关—— 它用真实可用宽度和字号量了一次行数,放得下就完全不折叠。
  • 新增「下载离线观看」入口,以及「正在看 / 来自」的状态提示。

播放页:弱网自适应

  • 判定分成正常 / 偏弱 / 弱网三档,网络越差,越晚才判「加载失败、该换源」。 档位只升不降,直到连续平稳播放 60 秒才回落一档—— 抖一下就把阈值永久放宽,等于把正常的换源保护也一起废了。
  • 起播慢的时候给一句 「网络较慢,正在加大缓冲等待…」, 而不是让用户盯着转圈以为卡死。
  • 记录每次起播耗时(诊断日志可见),方便定位是源慢还是网络慢。

首页:直播源卡片

  • 收起的是一叠纸,展开才长成整块:收起态每张卡只露标题条, 下一张压住上一张一截,看得出是"一摞"。
  • 频道分页渲染:有的源上千个频道,一次性铺几百行会在展开那一下卡近 1 秒, 所以先铺一屏多一点把"卡片长出来"的动画撑住,滚到底再补。
  • 七套卡片配色(淡紫 / 青柠 / 石墨 / 杏橙 / 钢蓝 / 玫瑰 / 薄荷), 浅色深色各存一份资源——深色下同样的七个色相压成低饱和暗彩,比底色亮一档但不刺眼。

源管理

  • 「点播源 / 直播源」的纯文字标签换成两颗圆角立体按钮: 文字点击区域原本只有十几个 vp 高,手指很难点准;现在有底色、投影和描边,按得下去。
  • 底部标签栏让出一段,按钮底边不再压在手势条上,减少误触返回。

界面与性能

  • 全屏底色改成纯色。原来是一段三段式竖向渐变,在 8bit 色深下 深色主题两端差 21 级,等于 21 条横向色带;深色主题里中段比两端更暗, 纵向剖面还是"亮 → 暗 → 亮"的折返。渐变是矢量绘制的,加色标救不了,只能改纯色, 层次感交回给内容卡片和玻璃条。
  • 状态栏占位改成实测:不再写死 42vp。平板状态栏更高,写死会把收藏、分享那一排 压在时间与电量上;横屏系统收起状态栏时是真 0,也认这个 0。
  • 瀑布流改用 LazyForEach,只创建可视区 + 缓存区内的卡片, 滑到几百条时不再掉帧。
  • 导航按钮的光晕改成主题资源:浅色主题完全不画,深色主题不再出现椭圆形的边沿。

开源化

  • 仓库不再携带任何签名材料:build-profile.json5 里 signingConfigs 为 [], 签过名的机器上会被 DevEco 自动回填,提交前记得改回 []。
  • 应用图标换成通用播放图标(不含任何字母)。想换成自己的: 改 scripts/make-app-icon.py 顶部常量后跑 python scripts/make-app-icon.py --write, 或者直接拿一张 512×512 的 PNG 覆盖 AppScope/resources/base/media/app_icon.png 与 entry/src/main/resources/base/media/app_icon.png。

说明

  • 本应用不内置任何影片内容,也不内置任何源。首次安装是空的, 需要自己添加采集站(Apple CMS V10 协议)或点应用内的一键导入。
  • 联想、评分来自第三方公开接口,可能限流或失效;失败时静默回落,不影响搜索与播放。
  • 内容来源与版权责任由源方及使用者自负。
Read more

v1.9.8 — 界面美化+功能优化+增加分享功能

Choose a tag to compare

@panhaichen-creator panhaichen-creator released this 21 Oct 07:39

本版要点

一句话:能分享给别人了,导片源不再硌手,浅色主题下那几条说不清的"灰带"也彻底没了。

这一版相对上一份公开说明(v1.1.8)累计改动较多,按模块归并如下。

新增:影片分享(详情页 / 播放页)

详情页操作栏和播放页顶部栏各加了一个分享按钮,走系统分享面板 (微信、碰一碰、附近设备都能选)。

  • 分享的不是网页链接,而是一条 libretv://play?… 深链,对方装了这个 APP, 点开就直接全屏播放,不需要再自己找片源、找集数。
  • 分享卡片带影片封面:封面会先压成 30 KB 以内的缩略图再交给系统。 系统分享对缩略图有 32 KB 硬上限,超了整个面板都拉不起来,所以这里做了强制压缩。
  • 对方没有同一个片源时,会按片名在自己已添加的源里找同名影片再播, 而不是直接报「链接无效」。
  • 分享标题会自动带上提示:「打开后选择「在浏览器打开」播放」。 这么写是因为微信只放行白名单协议,内置浏览器不允许页面跳转 libretv:// —— 这是微信平台的限制,App 侧绕不过去。按提示走「右上角 ··· → 在浏览器打开」即可自动播放。

优化:视频源管理 · 导入

  • 「一键导入推荐源」点了就有反应:点击后 60ms 内按钮就变成「转圈 + 正在导入…」, 导入过程最短保留 520ms 的忙碌态,不会再出现"点了半天没动静"。 落盘也从逐个写入合并成一次批量写入,导入速度更快。
  • 该按钮改成绿色,并跟着主题走: 浅色主题是深绿底 + 白字,深色主题是亮绿底 + 深字,两种主题下文字都清晰可读, 不会再出现亮绿底配浅色字、糊成一片的情况。
  • 导入面板底部操作区重做:原来是一排 13fp 的纯文字,没有内边距、几乎贴着面板圆角, 手指很难点中。现在是两行 44vp 的胶囊按钮: 第一行 | 从地址导入(主色) · 从粘贴内容导入 -- | -- 第二行 | 扫码导入 · 从本地文件导入 · 关闭 面板底部也加厚了留白,按钮不再压在圆角上。 |  

    环境要求

    • HarmonyOS NEXT / OpenHarmony,API 26 及以上
    • 应用不内置任何片源,首次使用需自行在「我的 → 视频源管理」添加点播源(Apple CMS V10) 与直播源(M3U / TXT),或使用「一键导入推荐源」

    已知限制

    • 微信内点击分享链接无法直接唤起 App(微信只放行白名单协议), 需按提示「右上角 ··· → 在浏览器打开」。
    • 分享卡片里的封面来自 App 侧压缩后的缩略图;如需在微信里显示大图卡片, 需要服务端按影片动态渲染分享页,静态托管做不到「一影片一封面」。
Read more

v1.1.7 — 画中画功能新增和各种优化BUG修复

Choose a tag to compare

@panhaichen-creator panhaichen-creator released this 20 Oct 04:50

下载

文件 | 说明 -- | -- LibreTV-HarmonyOS-v1.1.7-unsigned.hap | 未签名安装包(2.11 MB),需自行签名后安装 LibreTV-HarmonyOS-v1.1.7-unsigned.hap.sha256 | 文件校验值,用于确认下载完整

小窗里本来就是暂停状态下还原的,不会被强行播起来。

修复:再次进入播放页会卡住、换台换不动

症状有两种,其实是同一个原因:

  • 点播或直播播过一段、返回上一级,再点播放:出现竖屏界面,画面卡住不动, 中间挂着暂停按钮,点它没反应
  • 直播里返回频道列表后点任何频道,播的还是最早那一路(黑屏 + 一直转圈)

原因是页面跳转框架会把"刚离开的页面"缓存着复用:再次进入同一个页面时, 拿到的是上一次那个已经停掉的页面,而不是全新的一页。于是:

  • 页面里记着"我已经播放过了",起播流程被自己拦下 → 一直转圈
  • 页面里记着"当前播的是 CCTV2",列表点什么都还是 CCTV2
  • 页面里记着"已经横屏了",这次就不会再切横屏 → 停在竖屏
  • 播放器早已释放,暂停按钮自然点了也没反应

现在每次页面重新显示,都会重新读取这次要播的内容、把状态清零、 把画面重新接回播放器再起播。

顺带修掉同一原因引起的其它串台:从一部影片退出再进另一部,详情页可能显示的 还是上一部;换个关键词搜索,结果还是上一次的;「播放历史」与「我的收藏」互相串。

修复:续播进度会被清零

返回详情页后,那部片子的"看到 12:34"变成了"从头开始"。 原因是离开播放页时会保存两次进度:第一次拿到的是真实位置, 第二次播放器已经释放、位置读出来是 0,把刚存好的覆盖掉了。现在只认真实位置。

修复:播放页调过亮度后,系统亮度调节失灵

在播放页左侧上下滑动调过亮度之后,回到列表页面,控制中心里调亮度会一直没反应。 原因是这个亮度设置作用在整个窗口上,离开播放页时没有当场还原。 现在返回的那一刻就还给系统。

修复:首页横滑会误弹「已到顶部」

首页顶部的观看历史是横向滑动的。滑到最右边时手往回一收,手指会自然往下带一点, 被误判成"下拉",于是弹出「已到顶部」的提示。现在只有竖直方向的位移明显大于横向 (约 58° 以上)才算下拉。

环境要求

  • HarmonyOS NEXT / OpenHarmony,API 26 及以上
  • 应用不内置任何片源,首次使用需自行在「我的 → 视频源管理」添加点播源(Apple CMS V10)与直播源(M3U / TXT)

已知问题

  • 只支持 Apple CMS V10 点播接口与 M3U/TXT 直播订阅;TVBox 的 type:3 蜘蛛源不能当点播源使用
  • 自动换源依赖「同名影片能搜到」:标题带季集号、译名差异较大时可能找不到备用源, 此时会退回手动换源提示
  • 离线缓存是把 HLS 分片按字节拼接成单个 .ts。若源站各分片的时间戳不连续, 个别影片仍可能在中途出现一次短暂停顿(本地自愈会尝试重新同步,但不保证一定成功)。 这类片源建议在线观看
  • 画中画依赖系统能力,个别定制 ROM 上若被系统策略禁用,会自动退回「退后台即暂停」的旧行为
  • 网盘 / 磁力播放尚未实现

校验下载完整性

输出应与上面的 SHA256 完全一致。

Read more

v1.0.9 — 自动切换源体验优化 + 离线播放音画不同步修复

Choose a tag to compare

@panhaichen-creator panhaichen-creator released this 20 Oct 01:05

下载

文件 | 说明 -- | -- LibreTV-HarmonyOS-v1.0.9-unsigned.hap | 未签名安装包(2.03 MB),需自行签名后安装 LibreTV-HarmonyOS-v1.0.9-unsigned.hap.sha256 | 文件校验值,用于确认下载完整

横向滑满一屏对应 5 分钟,越靠近两端越精细。

说明:控制条显示时长按不会触发加速 —— 那一层压着播放/暂停、进度条、选集等按钮, 长按手势若抢事件,这些按钮会点不动。轻点一下画面收起控制条即可使用。

顺带修了一个连带问题:向后拖动进度条后,卡顿计数会被误判。 seek 之后「最近进度」还停在旧的高位上,进度要追很久才超过它,这段空窗会被 「卡顿判定」当成长时间卡住,进而自作主张换源。现在 seek 后会重置判定基准。

修复:离线播放「画面冻住、声音正常」

症状是离线缓存播放一段时间后画面不动了,但声音还在响,拖一下进度条才恢复。

根因在把本地文件喂给播放器的那个回环 HTTP 服务:

  1. 播放器断开连接后,服务端还在继续推。 每次 seek / 换集 / 重建播放器, 播放器都会关掉旧连接。旧实现不感知断开,会对着一个已经死掉的 socket 把整个缓存文件(几百 MB)从头到尾"推"一遍。
  1. 读文件用的是同步 IO(fs.readSync / fs.openSync),跑在主线程上。 叠加第 1 点,主线程被大量无意义的同步读写占住 —— 画面渲染拿不到帧, 而音频走的是另一条渲染链路,于是「声音正常、画面冻住」。
  1. 连续 await 只在微任务队列里打转,事件循环里排队的渲染帧和触摸事件 一直轮不到执行,观感就是卡死。

改法:

  • 监听连接 close 立即停止推流;send 失败也当场中止,不再静默空转。
  • 全程改用异步 fs.open / fs.read,主线程不再被磁盘 IO 按住。
  • 分块从 256 KB 降到 128 KB,且每 8 块让出一次宏任务,给渲染帧留出执行窗口。
  • 播放器侧补上 BUFFERING_START / BUFFERING_END 事件处理(此前只处理了百分比)。
  • 另加一层自愈:离线播放时若「缓冲开始」后 4 秒仍未结束,就以当前位置做一次 精确定位(SEEK_CLOSEST,不会往回跳到关键帧)强制解码器重新出帧 —— 等同于用户手动拖一下进度条,最多 5 次。

版本号

自动递增已生效:1.0.8 → 1.0.9(versionCode 1100004 → 1100005)。

环境要求

  • HarmonyOS NEXT / OpenHarmony,API 26 及以上
  • 应用不内置任何片源,首次使用需自行在「我的 → 视频源管理」添加点播源(Apple CMS V10)与直播源(M3U / TXT)

已知问题

  • 只支持 Apple CMS V10 点播接口与 M3U/TXT 直播订阅;TVBox 的 type:3 蜘蛛源不能当点播源使用
  • 自动换源依赖「同名影片能搜到」:标题带季集号、译名差异较大时可能找不到备用源, 此时会退回手动换源提示
  • 离线缓存是把 HLS 分片按字节拼接成单个 .ts。若源站各分片的时间戳不连续, 个别影片仍可能在中途出现一次短暂停顿(本地自愈会尝试重新同步,但不保证一定成功)。 这类片源建议在线观看
  • 网盘 / 磁力播放尚未实现

校验下载完整性

输出应与上面的 SHA256 完全一致。

Read more

v1.0.8 — 点播卡顿时自动切换源 + 多次直播失败自动返回频道列表

Choose a tag to compare

@panhaichen-creator panhaichen-creator released this 19 Oct 13:58

下载

文件 | 说明 -- | -- LibreTV-HarmonyOS-v1.0.8-unsigned.hap | 未签名安装包(1.99 MB),需自行签名后安装 LibreTV-HarmonyOS-v1.0.8-unsigned.hap.sha256 | 文件校验值,用于确认下载完整

⚠️ 这个 HAP 没有签名,直接安装会失败。 请用你自己的证书重签,步骤见 README「📥 安装 → 方式 B:用 Release 里的 HAP 自己重签」。

SHA256:

本版要点

新增

  • 点播自动换源:起播超过 12 秒没有画面,或同一集累计卡顿 3 次以上, 自动切换到「延时最小的其他点播源」,并从当前播放进度继续,不用手动换源。 多源测速复用现有能力:并发探测最多 8 个源,按首个分片的响应延迟升序挑选。
  • 直播自动退回:频道播放失败后,用户连续点两次「重试」仍起不来, 自动退回频道列表并提示「该频道当前不可用,请尝试其他频道」, 不再让人对着错误弹窗反复点第三次。

修复

  • 画面刚恢复就被换源:测速要花几秒,这段时间里画面可能已经正常了, 旧逻辑仍会照切。现在切换前会复查播放进度,近 2 秒内有进度就放弃本次换源。
  • 卡顿计数不会清零:一次播放里零散卡三次(可能横跨一小时)也会被判成「反复卡顿」。 现在平稳播放满 60 秒即清零,只认真实持续的卡顿。
  • 版本号自动递增未进包:此前递增逻辑排在 PreBuild 之前执行, 但 hvigor 启动阶段已经把 app.json5 读进内存,导致磁盘上版本号变了、 HAP 里还是旧值。现在改为在 hvigor 加载构建配置之前完成递增。

文档

环境要求

  • HarmonyOS NEXT / OpenHarmony,API 26 及以上
  • 应用不内置任何片源,首次使用需自行在「我的 → 视频源管理」添加点播源(Apple CMS V10)与直播源(M3U / TXT)

已知问题

  • 只支持 Apple CMS V10 点播接口与 M3U/TXT 直播订阅;TVBox 的 type:3 蜘蛛源不能当点播源使用
  • 自动换源依赖「同名影片能搜到」:标题带季集号、译名差异较大时可能找不到备用源, 此时会退回手动换源提示
  • 网盘 / 磁力播放尚未实现

校验下载完整性

输出应与上面的 SHA256 完全一致。


完整更新记录:见仓库顶部的 Commits 页面。

Read more

v1.0.6 — 版本号自动更迭 + 直播页修复

Choose a tag to compare

@panhaichen-creator panhaichen-creator released this 19 Oct 12:21

下载

文件 | 说明 -- | -- LibreTV-HarmonyOS-v1.0.6-unsigned.hap | 未签名安装包(1.98 MB),需自行签名后安装 LibreTV-HarmonyOS-v1.0.6-unsigned.hap.sha256 | 文件校验值,用于确认下载完整

⚠️ 这个 HAP 没有签名,直接安装会失败。 请用你自己的证书重签,步骤见 README「📥 安装 → 方式 B:用 Release 里的 HAP 自己重签」。

SHA256:

本版要点

新增

  • 版本号自动更迭:打包前自动检查源码是否改动,改动则版本号 +0.01; 同一份代码重复打包不会虚增版本
  • 直播播放页新增「铺满屏 / 适应屏」切换,与点播页行为一致

修复

  • 直播正常播放时,画面中央仍出现「缓冲中」和转圈动画 (判据由「缓冲进度未满」改为「播放进度是否停摆」)
  • 「我的」页「关于」右侧版本号与「关于」页不一致 (改为运行时读取包信息,不再硬编码)

环境要求

  • HarmonyOS NEXT / OpenHarmony,API 26 及以上
  • 应用不内置任何片源,首次使用需自行在「我的 → 视频源管理」添加点播源(Apple CMS V10)与直播源(M3U / TXT)

已知问题

  • 只支持 Apple CMS V10 点播接口与 M3U/TXT 直播订阅;TVBox 的 type:3 蜘蛛源不能当点播源使用
  • 部分采集站的 ac=videolist&ids= 会忽略 id 返回最新列表,表现为点不同影片播同一部(已做 vod_id 校验,若仍遇到请反馈具体源)
  • 网盘 / 磁力播放尚未实现

校验下载完整性

输出应与上面的 SHA256 完全一致。

Read more