Compare commits

..
19 Commits
Author SHA1 Message Date
余生andClaude Opus 5 3ffcb525d3 docs: say Entryway is free but closed source, not MIT
Drops the MIT badge, the licence section with the NipaPlay-Reload
credits, and the links to the source repositories, which are private.
The README now says Entryway is free to use but not open source.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 18:08:24 +08:00
余生andClaude Opus 5 00cdf00fe0 docs: invite readers into the Entryway Buddys WeChat group
Adds the group's QR code under the latest releases, with a pointer to
entryway.top for a fresh code once this one expires (WeChat group codes
last seven days). The image starts at the group name, without the
members' avatar collage.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 17:20:50 +08:00
余生andClaude Opus 5 abec806aea docs: list Android 0.90.0 and TV 0.25.0, with entryway.top as the site
The README still showed the global v0.24.0 batch. It now lists each
platform's current independent release with Gitea downloads, GitHub
mirrors, sizes and SHA-256, the 1.0 backup notice, what 0.88-0.90
brought, the supported media sources, and the renamed GitHub owner.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 11:50:15 +08:00
余生 bf74848404 docs(release): publish v0.24.0 preview artifacts 2026-08-15 23:20:21 +08:00
余生 681fb2d6a0 docs(release): publish v0.23.0 debug artifacts 2026-08-11 23:16:19 +08:00
余生 c4248f8cc5 release: prepare v0.22.0 mobile pad update 2026-08-11 00:34:04 +08:00
余生 2de521154c fix(tv): update v0.21.1 release notes 2026-08-09 21:56:24 +08:00
余生 e02b2fbaa7 release: publish v0.21.1 mobile bugfix 2026-08-09 10:48:01 +08:00
余生 a74eefa394 release: publish v0.21.0 mobile detail update 2026-08-09 00:32:03 +08:00
余生 49e08e3e24 fix(release): align candidate source metadata 2026-08-08 18:01:15 +08:00
余生 47dafdf839 fix(release): publish debug APK filenames 2026-08-08 17:59:59 +08:00
余生 394db69387 release: publish v0.20.0 metadata 2026-08-08 17:51:25 +08:00
余生andClaude Opus 5 e92af5d83d release: mobile 0.19.1 signing fix, TV 0.17.0, Windows 0.17.0 (v0.19.1)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 01:32:18 +08:00
余生 78f6683ff1 release: mobile 0.19.0, TV 0.17.0, Windows 0.17.0 2026-07-30 00:56:20 +08:00
余生 eac5511e86 docs: update README for multi-platform with v0.18.1 downloads and website link 2026-07-25 22:06:06 +08:00
余生 bede8a7a14 release: mobile 0.18.0, TV 0.16.1, Windows 0.16.0 (v0.18.1) 2026-07-23 18:35:16 +08:00
余生 bc51ab8f46 release: v0.18.0 ships Android debug builds (pre-1.0 convention) 2026-07-22 21:31:08 +08:00
余生 3bbc259f04 release: mobile 0.18.0, TV 0.16.1, Windows 0.15.0 2026-07-22 21:00:12 +08:00
余生 51df07d54f release: mobile 0.17.0, TV 0.16.0, Windows 0.14.0 2026-07-20 19:36:27 +08:00
3 changed files with 142 additions and 256 deletions
+59 -69
View File
@@ -3,96 +3,86 @@
</p>
<p align="center"><strong>Entryway</strong></p>
<p align="center">多服务器聚合管理的 Android 媒体客户端,支持 JellyfinEmby。</p>
<p align="center">A multi-server aggregation Android media client for Jellyfin & Emby.</p>
<p align="center">一扇门,通往你的全部影音。聚合 JellyfinEmby、Plex、fnOS、Navidrome 与本地 / SMB / WebDAV 媒体源的跨平台客户端。</p>
<p align="center">One entryway to all your media — a cross-platform client for Jellyfin, Emby, Plex, fnOS, Navidrome, local folders, SMB and WebDAV.</p>
<p align="center"><a href="https://entryway.top"><strong>官方网站 entryway.top</strong></a> <a href="https://entryway.top">Official Website</a></p>
<p align="center">
<img src="https://img.shields.io/badge/Platform-Android-3DDC84?style=flat-square&logo=android&logoColor=white" alt="Android">
<img src="https://img.shields.io/badge/Kotlin-2.0-7F52FF?style=flat-square&logo=kotlin&logoColor=white" alt="Kotlin">
<img src="https://img.shields.io/badge/Jetpack_Compose-Material_3-4285F4?style=flat-square&logo=jetpackcompose&logoColor=white" alt="Compose">
<img src="https://img.shields.io/badge/Min_SDK-27_(Android_8.1)-34A853?style=flat-square" alt="MinSDK">
<img src="https://img.shields.io/badge/License-MIT-blue?style=flat-square" alt="License">
<img src="https://img.shields.io/badge/Android-0.90.0_Preview-3DDC84?style=flat-square&logo=android&logoColor=white" alt="Android 0.90.0">
<img src="https://img.shields.io/badge/Android_TV-0.25.0-3DDC84?style=flat-square&logo=android&logoColor=white" alt="Android TV 0.25.0">
<img src="https://img.shields.io/badge/Windows-独立版待发布-8A8F98?style=flat-square" alt="Windows">
<img src="https://img.shields.io/badge/Server-Jellyfin%20%7C%20Emby%20%7C%20Plex%20%7C%20fnOS%20%7C%20Navidrome-AA5CC3?style=flat-square" alt="Server">
</p>
---
## 最新版本 | Latest Release
本仓库是 Entryway 的公开发布仓库:安装包以 Release 附件形式提供,客户端的更新检测也从这里读取版本。手机、TV、Windows 三端**独立发版**,各自使用 `android-phone-v*``android-tv-v*``windows-v*` 前缀的 Tag。
- **手机版 v0.16.0**:首页完整快照、子媒体库 30 分钟缓存、局部增量更新和返回位置恢复
- **TV 版 v0.15.0**:同步首页与子媒体库缓存策略、遥控器焦点修复及故障服务器恢复能力
- **手机版 APK**[`entryway-debug-0.16.0.apk`](https://github.com/JackYucongjia/Entryway_Release/releases/download/v0.16.0/entryway-debug-0.16.0.apk)
- **TV 版 APK**[`Entryway-tv-debug-0.15.0.apk`](https://github.com/JackYucongjia/Entryway_Release/releases/download/v0.16.0/Entryway-tv-debug-0.15.0.apk)
- **变更日志**[`RELEASE_NOTES.md`](RELEASE_NOTES.md)
## 最新版本 | Latest Releases
## 概述 | Overview
| 平台 | 版本 | 构建号 | 渠道 | 系统要求 | 下载(Gitea | 镜像(GitHub |
| --- | --- | ---: | --- | --- | --- | --- |
| Android 手机 | **0.90.0** | 56 | Preview | Android 8.1+ | [entryway-preview-0.90.0.apk](https://gitea.yamby.cn/yusheng/Entryway_Release/releases/download/android-phone-v0.90.0/entryway-preview-0.90.0.apk) | [下载](https://github.com/YuSheng-Jack/Entryway_Release/releases/download/android-phone-v0.90.0/entryway-preview-0.90.0.apk) |
| Android TV | **0.25.0** | 42 | Release | Android 7.1+ | [Entryway-tv-release-0.25.0.apk](https://gitea.yamby.cn/yusheng/Entryway_Release/releases/download/android-tv-v0.25.0/Entryway-tv-release-0.25.0.apk) | [下载](https://github.com/YuSheng-Jack/Entryway_Release/releases/download/android-tv-v0.25.0/Entryway-tv-release-0.25.0.apk) |
| Windows x64 | 0.18.0+37 | 37 | — | Windows 10/11 | 独立版待发布 | — |
**Entryway** 是一个面向自建媒体服务器用户的 Android 客户端,核心设计理念是 **多服务器聚合**——在一个统一的界面中管理和浏览你所有的 Jellyfin / Emby 服务器。
| 安装包 | 大小 | SHA-256 |
| --- | ---: | --- |
| `entryway-preview-0.90.0.apk` | 170,091,554 B | `63dfc5027fd722b9e931b11678b7bb84b72237f64d6f2cad4653a67a6e945b7e` |
| `Entryway-tv-release-0.25.0.apk` | 202,557,288 B | `cabfb74233ec14d82603f97606a32dd07998616c3700d50ab39467d48de19150` |
Entryway is an Android client designed for self-hosted media server users. Its core philosophy is **multi-server aggregation** — managing and browsing all your Jellyfin / Emby servers from a single, unified interface.
> [!IMPORTANT]
> **1.0 正式版即将发布**,将正式支持音乐与有声书服务器。1.0 与现有 Preview 版本**不兼容、无法直接覆盖升级**,请提前在「设置 › 备份与恢复」备份到本地文件或 WebDAV,安装 1.0 后即可恢复服务器、设置与书签。
## 核心特性 | Features
- 手机版 Preview 是非调试的持续发布构建(R8 + Baseline Profile),沿用 1.0 前公开包的调试证书,现有用户可直接覆盖安装。
- 每个版本的更新内容见对应 Release 说明:[Gitea Releases](https://gitea.yamby.cn/yusheng/Entryway_Release/releases) [GitHub Releases](https://github.com/YuSheng-Jack/Entryway_Release/releases)。`RELEASE_NOTES.md` 仅保留 v0.24.0 及更早的合并发布记录。
### 🖥️ 多服务器管理
- 添加多个 Jellyfin / Emby 服务器,一键快速切换
- 服务器卡片显示用户头像、用户名、服务器地址
- 长按菜单:重新登录、服务器线路、修改图标、修改备注、设为私密、修改密码、编辑、删除
- 溢出菜单:搜索、排序(默认/名称/最近使用)、网格/列表布局切换、显示选项
- 私密服务器:标记后默认隐藏,需手动开启显示
## 交流群 | Community
### 🏠 首页即服务器
- 首页直接展示当前活跃服务器的媒体库内容
- 左上角显示当前服务器名,点击即可切换到其他非私密服务器
- 支持精选轮播(Featured Carousel)和无轮播两种模式
欢迎加入微信用户群 **Entryway Buddys**:反馈问题、交流服务器与播放设置,新版本和 1.0 正式版的消息也会第一时间在群里发布。
### 🎬 双引擎播放器
- **ExoPlayer 引擎**:默认播放引擎,基于 Media3 + Jellyfin FFmpeg 扩展
- **mpv 引擎**:备用高兼容性引擎,基于 libmpv,支持更多编解码格式
- 播放失败时自动提供引擎切换建议,支持手动一键切换
- 切换引擎时自动保持播放进度
- 统一 User-Agent`Entryway/{version} (android; {api})`
Join the **Entryway Buddys** WeChat group for feedback, tips and release news.
### ⏩ 播放控制
- **倍速播放**0.1x ~ 5.0x 滑动条 + 快速预设(0.5x / 1.0x / 1.5x / 2.0x / 3.0x
- **长按快速倍速**:长按屏幕进入手动短时间高速播放
- **手势控制**:左右滑动快进快退、左侧上下滑动调亮度、右侧上下滑动调音量
- **画面比例**:循环切换适应/填充/16:9/4:3 等比例模式
- **锁屏**:锁定控制界面,防止误触
- **剧集导航**:上一集/下一集,播放列表(仅剧集)
<p align="center">
<img src="community-wechat.png" alt="微信群 Entryway Buddys 入群二维码" width="260">
</p>
### 🔧 mpv 引擎专属
- **解码模式切换**:SW(软解)/ HW(硬解)/ HW+(硬解+拷贝)一键循环切换
- 字体自动加载,支持字幕渲染
> 微信群二维码每 7 天更新一次。如果扫码提示已过期,请到官网 [entryway.top](https://entryway.top/#community) 获取最新的二维码。
### 🔊 高级音频
- Apple Spatial Audio 空间音频检测与启用
- HDR / Dolby Vision 能力检测与自动适配
## 这一版能做什么 | What's New
### 🎨 全局主题系统
- 支持 **跟随系统** / **浅色** / **深色** 三种主题模式
- 基于 Material 3 动态配色方案
### 手机版 0.88 – 0.90:界面与交互全面改版
### 🌐 完整国际化
- 界面支持中文(简体/繁体)和英文
- 50+ 影视类型名称客户端翻译
- 根据系统语言自动切换
- **新导航**:底栏「影音 / 接续 / 资源 / 设置」加独立搜索按钮,滚动自动收起;Entryway 自绘线性图标。
- **四种视觉效果**:毛玻璃、液态玻璃、薄雾、春山;跟随系统 / 浅色 / 深色主题与主题强调色。
- **多服务器合一**:同一部影片在所有服务器上的版本合并展示,支持 4K / HDR / 1080p 筛选,播放中可切到另一台服务器的同一版本。
- **推荐 · 接续 · 搜索**:组件化推荐页(TMDB / 豆瓣榜单、流媒体平台);继续观看、收藏、追更跨服务器汇总;全服务器合并搜索。
- **播放器**ExoPlayer / mpv 双内核自动选择,跳过片头片尾、章节、画中画、Anime4K、播放器书签、杜比视界与 HDR 徽标。
- **音乐(预览)**:Navidrome 专辑、艺人、歌单,迷你播放器与离线下载。
- **个性化**:APP 图标三色自由组合(8 种背景 × 17 种隧道 × 17 种播放三角);简体中文、繁體中文、English、日本語、한국어、Español。
- **备份**:本地文件或 WebDAV,服务器、设置与书签一并备份。
### 📥 离线下载
- 队列化下载管理,支持暂停/恢复/取消
- 季度/剧集批量下载,下载前显示存储空间预估
- 无网络时自动切换到离线内容模式
### 支持的媒体源
## 技术栈 | Tech Stack
| 类型 | 服务 |
| --- | --- |
| 视频服务器 | Jellyfin(含 Jellyfin 12)、Emby 及兼容服务端、Plex、fnOS |
| 音乐服务器 | NavidromeSubsonic 协议,预览) |
| 文件源 | 本地文件夹、SMB、WebDAV |
| 弹幕 | 弹弹Play 官方、LogVar 弹幕 API、其他弹弹Play 兼容服务 |
| 类别 | 技术 |
|------|------|
| **语言** | Kotlin 2.0, Coroutines, Flow |
| **UI** | Jetpack Compose + Material 3 + Navigation Compose |
| **网络** | Retrofit 3 + OkHttp 5 |
| **图片** | Coil 3 |
| **播放器** | Media3 ExoPlayer + FFmpeg 扩展 / libmpv (双引擎) |
| **存储** | SharedPreferences + DataStore |
| **构建** | Gradle 9.4, AGP, KSP |
### Android TV 0.25.0
## 贡献 | Contributing
- 首页背景随焦点切换,分区顺序可调并立即生效,返回首页时焦点回到进入前的位置。
- Dolby Vision Profile 5 自绘路径:硬件解码 + GPU 色彩重整形。
- 遥控器全键盘搜索、手机扫码辅助输入、完整弹幕设置。
欢迎提交 Issue 和 Pull Request。较大的功能开发建议先开 Issue 讨论范围。
## 更新检测 | Update Check
客户端请求本仓库的 Release 列表,按本平台 Tag 前缀与安装包文件名筛选,优先使用 Gitea,失败时降级到 GitHub。
## 许可 | License
Entryway 可免费下载使用,但不开源,源代码不公开。
Entryway is free to use, but it is not open source.
+83 -187
View File
@@ -1,227 +1,123 @@
# Entryway Release Notes
# Entryway v0.24.0
## 手机版 v0.16.0 / TV 版 v0.15.0 - 2026-07-19
本批次将 Android 手机版公开持续发布切换到 **Preview** 构建,并集中发布界面流畅度、隐私服务器保护、缓存搜索、Dolby Vision 与 mpv 稳定性等更新。Android TV 和 Windows 本批次没有代码变化,继续复用上一版已验证安装包。
> ⚡ **缓存优先、按需刷新,故障服务器不再拖垮全局** — 双端首页优先恢复按账号隔离的本地快照;进入子媒体库时只在缓存超过 30 分钟后强制获取最新数据,同时保留手动刷新能力。单个服务器不可用时,其他已保存服务器仍可正常进入
> Preview 是 release 形态的非 debuggable 构建,启用 R8、AOT 与 Baseline Profile,但仍使用历次公开 Debug 包相同的调试证书,现有用户可直接覆盖安装。它属于公开持续发布渠道,不是正式 Release 构建
### 手机版首页与媒体库
## 版本信息
- **首页完整快照**:精选轮播、继续观看、下一集、我的媒体和各媒体库分区按服务器与用户隔离持久化,启动和切回首页时先显示缓存,再在后台分区更新。
- **局部更新合并**:进入子媒体库成功刷新后,只替换首页缓存中对应媒体库的内容,并异步刷新精选轮播,不再等待整页重新获取。
- **30 分钟子库缓存**:缓存未满 30 分钟时进入媒体库立即显示现有内容且不重复请求;超过时前台刷新,用户手动下拉可随时强制刷新。
- **分页缓存一致性**:已加载分页会写入磁盘缓存,但不会延长首屏数据的 30 分钟新鲜度;刷新或分页失败均保留已有内容。
- **返回位置修复**:从媒体库或详情页返回首页时恢复原有滚动位置,不再强制跳回精选轮播顶部。
| 平台 | 应用版本 | 构建号 | 渠道 | 安装包 | SHA-256 |
| --- | --- | ---: | --- | --- | --- |
| Android 手机版 | 0.24.0 | 45 | Preview | `entryway-preview-0.24.0.apk` | `413dc569c88b3bff6140609d584d3b826a536f85f2c40ddda57008c839c47ae0` |
| Android TV 版 | 0.18.1 | 39 | Debug | `Entryway-tv-debug-0.18.1.apk`(沿用 `v0.23.0` | `f9a7ef9f71a92df4c0469e75c1e36863062631a9735da417b7b237d54b97e4ba` |
| Windows x64 | 0.18.0 | 37 | Debug | `Entryway_0.18.0+37_Windows_x64_Setup.exe`(沿用 `v0.23.0` | `b744a11a186350461dc6b4143df1fd5ee833bcc0ae1df6bff4339e1824333477` |
### TV 首页与媒体库
## Android 手机版 0.24.0
- **TV 首页快照**:我的媒体、继续观看、收藏及各库最新内容使用按账号和服务器隔离的持久化快照;分区请求互不阻塞,单个媒体库超时不会清空其缓存行。
- **TV 子库刷新策略**:与手机版一致采用 30 分钟缓存窗口;过期时前台刷新,遥控器可直接触发显式刷新,分页不会伪造新的刷新时间。
- **遥控器位置与焦点**:返回首页保留纵向滚动状态,后台刷新不再强制抢回首项焦点;空库或首次请求失败时默认聚焦刷新按钮。
- **跨服缓存隔离**:缓存身份同时包含账号、完整服务器地址和用户 ID,并使用稳定编码或散列生成缓存键,避免不同服务器误用同一份内容。
### Preview 构建与界面性能
### 服务器故障恢复
- 公开持续发布从 Debug 切换到 Preview:关闭调试模式并启用 R8、AOT 与 Baseline Profile,减少 Debug 构建对启动和界面性能的限制。
- 首页滚动视差、图片阴影与播放器进度更新改为更轻量的绘制和局部状态更新,避免整页或整层控件逐帧重组。
- 首页数据由高频主线程轮询改为数据就绪后主动推送。
- 页面切换统一为约 300 毫秒的方向性转场,精简重复淡入、缩放和多组按压弹簧动画。
- 完善手机、Medium 平板与 Expanded 平板的布局规范。
- **冷启动不再联网验凭据**:启动时直接恢复本地会话,DNS、TLS、超时或服务端暂时不可用不会清除账号,也不会把应用锁回服务器录入页。
- **保存账号恢复入口**:兼容旧版本已经清掉当前会话的情况;登录页可直接进入已保存账号列表,切换到其他正常服务器。
- **失败相互隔离**:刷新失败只影响当前服务器与当前分区,缓存和其他已保存服务器继续可用;退出和删除仍保持显式、可预期的行为。
### 搜索与首页缓存
### APK
- 搜索页优先从各服务器的 Home Snapshot 缓存立即返回结果,后台实时搜索完成后再替换。
- 慢服务器或暂时异常的服务器不再让搜索页长期空白,实时搜索失败也不会清空已有缓存结果。
- 读取其他服务器缓存时不切换当前活动服务器;首页缓存更新后同步刷新搜索缓存。
- 首页轮播支持直接展示海报,减少横图裁切造成的信息损失。
- 手机版:`entryway-debug-0.16.0.apk`
- TV 版:`Entryway-tv-debug-0.15.0.apk`
### 隐私与稳定性
### 构建信息
- 私密服务器新增密码与生物识别保护,并确保进入隐私设置前也需要完成验证。
- 修复系统备份排除规则未覆盖 DataStore,导致登录凭据与服务器列表可能被纳入系统云备份的问题。
- 修复通知权限被拒绝或撤销后,下载通知可能导致崩溃的问题。
- 修复详情页重复 artwork tag 可能触发崩溃的问题。
- 修复登录页部分小米设备键盘安全区过大,以及 Logo 四周出现白色边线的问题。
- 修复深色主题下卡片出现不协调青色描边、语言切换后设置项未刷新及服务器标签中文缺失的问题。
- 手机版:`versionName 0.16.0``versionCode 35`
- TV 版:`versionName 0.15.0``versionCode 34`
### 播放器、Dolby Vision 与 mpv
## 手机版 v0.15.0 / TV 版 v0.14.0 - 2026-07-19
- 修正 Dolby Vision Profile 5 的色彩与播放路径,根据 Profile、基底层和设备解码能力选择合适策略。
- mpv 对需要修正的 Dolby Vision 内容启用 `gpu-next` 与软件解码,普通内容恢复默认路径;ExoPlayer 使用设备解码器能力判断 Dolby Vision 支持。
- 新增播放器高级配置:音频解码、gpu-next、快速解码、立体声降混、图片字幕拉伸、不受信任证书、mpv 详细日志、时钟、方向、HDR 色彩模式与最高刷新率等。
- 补齐此前只作用于 ExoPlayer 的 mpv 设置,包括 `vd-lavc-dr``target-colorspace-hint``gpu-api`,并让全屏/最大化画面设置在 mpv 加载完成后正确生效。
- 修复部分 115/云盘 302 直链大体积 MKV 在 mpv 读取尾部索引时遇到 Range 403 后直接 EOF、跳片尾或进入下一集的问题;连接失败后会在实际请求层重建连接。
- 新播放加载动画替换旧实现,并为 Preview/R8 增加 mpv JNI 保留规则。
- 播放进度或播放完成后会刷新首页继续观看等相关区域,同时保留现有缓存策略。
> 💿 **双端播放内核与 ISO 能力增强** — 手机版和 TV 版接入可解析 DVD / Blu-ray 的自构建 mpv 内核、JNI 主标题读取与本地 Range 代理;同时补齐 TV 弹幕、MPV 字幕、直链播放性能和跨端视觉统一。
## Android TV 0.18.1
### DVD / Blu-ray ISO 与双内核
- 本批次无代码变化,沿用 `v0.23.0` 的 Debug APK。
- **实验性原盘 ISO 播放**:支持未加密 DVD / Blu-ray ISO。手机版可识别已下载到本机的原盘文件;手机和 TV 可对支持 HTTP Range 的远程 ISO 建立可随机读取的播放链路。
- **原盘增强 mpv 内核**:以兼容现有 `mpv-android-lib 0.1.12` API 的自构建 AAR 替换 Maven 版本,加入 `libdvdread``libdvdnav``libudfread``libbluray`,覆盖四种 Android ABI,并保留 16 KiB 页面兼容。
- **JNI 主标题代理**:新增原生 JNI 模块,自动选择 Blu-ray 主标题或 DVD 最长标题,再通过仅监听 `127.0.0.1`、带随机令牌的 HTTP Range 代理交给 mpv 播放。
- **失败回退**:上游不支持 Range、原盘解析失败或检测到加密时,在用户允许服务器转码的前提下自动回退到服务器媒体流。
- **内核路由统一**:新增共享播放内核能力模型和选择策略;原始 ISO 不再误交给 ExoPlayer,普通视频仍按用户首选内核起播。
- **自动容错切换**:ExoPlayer 遇到不支持的封装或解码器故障时,可保留进度并单次切换至 mpv;鉴权、网络和普通 I/O 错误不会触发无意义的内核循环。
- **安全退出与切片取消**:切集、切内核和退出播放器会中止尚未结束的 Range 探测、头尾预取及原生打开,并按安全顺序释放 mpv、代理和原盘源。
## Windows x64 0.18.0+37
### 手机版播放体验
- 本批次无代码变化,沿用 `v0.23.0` 的 Debug 安装包。
- Windows 端正在重构,预计 **2026 年 8 月 17 日**正式发布新版。
- 当前安装包未进行代码签名,SmartScreen 可能显示未知发布者提示。
- **默认内核设置**:播放器设置新增 ExoPlayer / mpv 默认播放内核选择;播放器内临时切换不会覆盖默认偏好。
- **Dolby Vision 软件回退**mpv 硬解循环新增 `DV-SW` 模式,通过 `gpu-next` 和软件解码为部分显示异常的 Dolby Vision / HDR 文件提供会话级诊断回退。
- **mpv 卡顿优化**:减少主线程 JNI 属性读取,改进状态缓存、轨道刷新与字幕切换调度,降低起播、拖动和切换字幕时的停顿。
- **播放进度上报修复**:严格保证 Start、Progress、Stopped 顺序,并在退出前捕获最终位置,避免快速暂停或销毁时向服务器回报错误进度。
- **首页过渡修复**:从当前精选背景图底缘提取环境色,使 Hero、渐隐区和下方内容共享同一背景,消除轮播与媒体分区之间的色带接缝。
## 兼容性与构建信息
### TV 弹幕与字幕
- Android 手机和 TVAndroid 8.1API 27)及以上。
- WindowsWindows 10 或更高版本,x64。
- 手机版构建命令:`./gradlew :app:assemblePreview`
- 手机版 Preview 签名证书 SHA-256`bbd12fc3757222334f11f22a238012a4745a4423ac07b9dd76b3e887691505c6`
- 源码提交:`f7fdc71bb1134973121118930995f1a7f2895941`
- 源码标签:`v0.24.0`
- 自动验证:`:app:assemblePreview``:app:testDebugUnitTest``:core:testDebugUnitTest``:data:testDebugUnitTest` 与官网 65 项 Node 测试均通过。
- **完整 DandanPlay 弹幕**:TV 播放器新增自动匹配、动漫搜索、剧集选择、本地弹幕、缓存与重新匹配,视频播放不再等待弹幕网络请求。
- **遥控器弹幕设置**:新增滚动 / 顶部 / 底部弹幕、字号、透明度、速度、显示区域、时间偏移、屏蔽词、重复合并、防重叠、热力图、简繁转换及 Canvas / SurfaceView 等设置。
- **双内核弹幕连续性**:暂停、倍速、跳转、切集以及 ExoPlayer / mpv 切换均跟随实际播放时钟,保留已匹配弹幕和设置。
- **MPV 字幕链路补齐**:同步手机版的 CJK 字体、编码回退和 ASS 兼容配置;外挂字幕等待真实轨道出现后再选择,手动切换立即生效。
- **原生字幕格式保留**:继续由 mpv/libass 渲染 ASS、PGS、VobSub 等格式,并改进服务器字幕索引到 mpv 轨道的精确映射。
- **播放结束判定修复**:替换文件、停止和错误事件不再被误判为自然播放完成,避免错误跳集或重复上报。
### 已知项
### 直链、网络与兼容性
当前随包 Baseline Profile 主要覆盖冷启动与登录页;已登录后的首页、详情页与播放器基准数据仍需后续在真实服务器环境中继续采集。
- **双端直链提速**:手机和 TV 统一通过带鉴权的稳定播放入口解析最终 CDN 地址,减少重复探测,并避免把服务端凭据带到外部 CDN。
- **短效链接刷新**:切换内核或重载播放器时可刷新过期的签名直链,降低长时间停留后起播失败。
- **子路径服务器修复**:修复 Emby / Jellyfin 部署在 `/emby` 等子路径时,服务端返回的根相对播放地址丢失前缀的问题。
- **日志脱敏与 UA 统一**:播放探测日志不再输出完整鉴权 URL、Token 或服务端错误正文,手机和 TV 使用统一 Entryway User-Agent。
- **更新源容错**:应用更新检查优先使用 Gitea Release,失败时回退 GitHub。
---
### 视觉与产品入口
# Entryway v0.23.0
- **跨端设计统一**:手机和 TV 统一语义颜色、排版、卡片、焦点环、进度色和空间层级;TV 搜索、媒体库、详情、播放器菜单等页面同步调整
- **TV 登录页精简**:扫码录入区域收敛为二维码与局域网扫码提示,减少无关说明。
- **双语产品官网**:新增响应式中英文官网、下载入口、无 JavaScript 兜底、SEO / 分享元数据、无障碍规则和 NAS 部署配置;本次同步更新双端版本与下载地址。
本批次为 Android 手机版弹幕曲线和全屏显示更新,采用 Debug 持续发布规则;Android TV 和 Windows 无代码变化,沿用已验证安装包。各端应用版本独立维护:Mobile `0.23.0`、TV `0.18.1`、Windows `0.18.0+37`
### 兼容性与验证说明
> 本批次是持续发布用的 **Debug 版本**,不是正式 Release 版本。正式版将在用户明确确认后单独构建和发布。
- 不包含 `libdvdcss``libaacs``libbdplus`,仅支持未加密原盘。
- 远程 ISO 的源站必须正确支持单段 HTTP Range;不支持时需开启服务器转码。
- 未提供 DVD / Blu-ray 类型元数据的通用 ISO 不会猜测盘型,将走服务器回退链路。
- 原盘模块已通过 Range/JNI/回退策略单元测试和双端 APK 构建;真实设备上的 DVD / Blu-ray ISO 端到端样本验证尚待完成,因此本版本仍将该能力标记为实验性。
## 版本信息
### APK
| 平台 | 应用版本 | 构建号 | 安装包 | SHA-256 |
| --- | --- | ---: | --- | --- |
| Android 手机版 | 0.23.0 | 44 | `entryway-debug-0.23.0.apk` | `3348b2b4de53e8bf3d14e5a154ee774cbc7db37cd5a9a57c0cfd8a47f31dd523` |
| Android TV 版 | 0.18.1 | 39 | `Entryway-tv-debug-0.18.1.apk`(沿用 `v0.22.0` | `f9a7ef9f71a92df4c0469e75c1e36863062631a9735da417b7b237d54b97e4ba` |
| Windows x64 | 0.18.0 | 37 | `Entryway_0.18.0+37_Windows_x64_Setup.exe`(沿用 `v0.22.0` | `b744a11a186350461dc6b4143df1fd5ee833bcc0ae1df6bff4339e1824333477` |
- 手机版:`entryway-debug-0.15.0.apk`
- TV 版:`Entryway-tv-debug-0.14.0.apk`
## Android 手机版 0.23.0
### 构建信息
### 弹幕曲线样式
- 手机版:`versionName 0.15.0``versionCode 34`
- TV 版:`versionName 0.14.0``versionCode 33`
- 弹幕设置新增“弹幕曲线样式”开关。
- 关闭时使用平滑曲线,适合观察整段视频的弹幕密度趋势。
- 开启时使用峰谷曲线,以更细的时间采样和折线表现突出弹幕密集时刻与剧情高潮。
## 手机版 v0.14.0 / TV 版 v0.13.2 - 2026-07-11
### 全屏弹幕显示
> 💬 **手机版弹幕功能正式上线** — 接入 DandanPlay 弹幕匹配、加载、显示和完整设置体系,同时改善 MPV 字幕渲染与切换体验。TV 版本次无代码变更,继续提供 v0.13.2
- 修复播放器隐藏控制栏进入全屏后,第一行弹幕被顶部区域遮挡的问题
- 控制栏显示时继续保留完整避让距离;控制栏隐藏时仅保留必要顶部安全区,减少画面上方空白。
### 手机版弹幕
## Android TV 0.18.1
- 支持按文件哈希与文件名自动匹配,也可搜索动漫、手动选择剧集或载入本地弹幕
- 完整设置集中到弹幕设置页,支持行数、字号、透明度、速度、显示区域、时间偏移、关键词屏蔽、重复合并、防重叠、热力图、简繁转换及 Canvas / SurfaceView 模式。
- 修复 SurfaceView 弹幕阻断播放器点击和手势的问题。
- 已匹配媒体复用持久化映射,候选详情并发获取,大体积 JSON 后台解析。
- 弹幕内容改用跟随播放器缓存上限的 LRU 缓存,仅超限时逐出,映射关系永久保留。
- 本批次无代码变化,沿用 `v0.22.0` 的 Debug 安装包
### 手机版 MPV 字幕
## Windows x64 0.18.0+37
- 修复 Android 字体族配置,补充 CJK 回退、编码识别与 ASS 兼容参数
- 字幕切换直接写入 `sid`,后台校验状态,减少切换时的界面卡顿
- 保留 MPV/libass 对 ASS 特效和 PGS、VobSub 位图字幕的原生支持。
- 本批次无代码变化,沿用 `v0.22.0` 的 Debug 安装包
- 安装包未进行代码签名,SmartScreen 可能显示未知发布者提示
### APK
## 兼容性
- 手机版:`entryway-debug-0.14.0.apk`
- TV 版(本次无变更):`Entryway-tv-debug-0.13.2.apk`
- Android 手机和 TVAndroid 8.1API 27)及以上。
- WindowsWindows 10 或更高版本,x64。
- Android 安装包使用项目 1.0 前的 Debug 变体和证书签名,Windows 安装包未签名。
### 构建信息
## 构建信息
- 手机版:`versionName 0.14.0``versionCode 33`
- TV 版:`versionName 0.13.2``versionCode 32`
## v0.8.2 - 2026-04-26
### 手机版更新
- **首页与媒体库视觉重构**:继续向 Hills 风格靠拢,优化首页精选轮播、我的媒体卡片、媒体目录标题入口和列表过渡效果,减少深浅主题切换时的突兀感
- **搜索页体验重做**:将搜索页从海报轮播改为更轻量的文字推荐入口,并限制搜索结果只展示电影和剧集,避免直接展示到单集
- **概览页逻辑修复**:媒体目录概览页恢复为展示电影/剧集层级,不再直接铺开所有最终单集;同时修复浅色主题下排序/筛选弹窗未选中项文字不可见的问题
- **点击热区优化**:首页与目录概览页的影视卡片点击范围扩展到标题区域,减少只点海报才能进入详情的误操作
- **详情页与主题细节修复**:修复剧集详情页分季海报底部异常灰色阴影,并统一部分页面在浅色/深色主题下的背景与文字对比
- **GitHub 版本检查**:设置页版本信息接入 `Entryway_Release` 最新发布检测,当前版本一致时显示“已是最新版”,发现手机版 APK 更新时显示下载按钮并调用系统下载器下载
### TV 版更新
- **新增 Entryway TV 正式模块**:引入独立 `tv-app`,包名为 `com.entryway.tv`,不再复用手机版布局外壳,借鉴 OpenEmby TV 界面并引入 Entryway 内核核心
- **TV 登录与服务器录入**:首次启动支持同局域网手机扫码录入服务器,成功添加后自动进入服务器,并保留服务器切换与新增入口
- **客厅端首页与详情体验**:迁移并优化 TV 首页、媒体库、概览页、详情页与遥控器焦点效果,补充 Logo、深色模式标签对比度、继续观看标题格式和媒体库封面展示
- **TV 播放器增强**:接入 Entryway 的 Exo 播放解析链路,并在不破坏 OpenEmby 播放器 UI 的前提下接入 `MpvPlaybackEngine` 作为第二内核,补齐左右键快进快退、进度条、暂停图标、顶部 OSD、菜单呼出、音轨/字幕/内核切换等体验
- **TV 搜索页重做**:新增遥控器全键盘搜索、二维码手机输入、服务器筛选与电影/剧集结果卡片展示,并修复焦点高亮、按钮裁切和浅色文字可读性问题
- **TV 首页加载优化与缓存兜底**:首页先展示轻量媒体库列表,再异步加载前几个库和完整库内容;完整刷新成功后写入本地缓存,网络异常时优先用缓存兜底
- **TV 品牌与更新检测**:应用名、Logo、UA、`X-Emby-Client` 与版本检查均切换为 Entryway TV,并指向 `Entryway_Release` 的 TV 版 APK
### APK
- 手机版:`entryway-debug-0.8.2.apk`
- TV 版:`Entryway-tv-debug-0.8.2.apk`
### 构建信息
- `versionName`: `0.8.2`
- `versionCode`: `25`
## v0.8.1 - 2026-04-23
### 首页与服务器详情页加载优化
- **媒体库两段式加载**:首页和服务器详情页先快速展示前 6 个媒体库,随后后台异步补齐完整媒体库列表,避免首屏等待过久或后续媒体库完全不显示
- **精选轮播提速**:精选轮播不再强制等待 Logo 与背景图全部解析完成;背景图可用后即展示内容,Logo 后续加载补齐
- **轮播兜底展示优化**:当条目没有 Logo 或 Logo 加载较慢时,使用片名文字兜底,减少空白骨架停留时间
- **图片预取降噪**:收紧首页图片预取并发和首批预取数量,降低进入首页时的网络与解码竞争,让关键内容优先加载
- **精选数据轻量化**:精选轮播请求数量从 10 条缩减为 6 条,减少随机推荐和首屏图片解析成本
### 播放与调试链路收敛
- **起播诊断写盘关闭**:默认关闭 debug 包中的播放诊断文件写入,避免起播阶段产生额外 I/O
- **既有播放修复保留**:延续 v0.8.0 的 NextEmby 稳定流入口、认证参数补齐、Exo 外挂字幕修复和字幕浮窗文案修正
### 构建信息
- `versionName`: `0.8.1`
- `versionCode`: `24`
## v0.8.0 - 2026-04-23
## ▶️ 播放链路与 NextEmby 兼容性增强
- **起播请求精简**:生产环境移除额外的 `getPlaybackInfoRaw()` 诊断请求,减少起播时无意义的接口往返
- **详情快照复用**:详情页、下载页和投屏链路优先复用已有 `BaseItemDto`,显著降低播放器兜底 `getItemById()` 的触发频率
- **Emby 稳定流入口**Emby / NextEmby 播放改为优先使用稳定的 `Videos/{id}/stream` 入口,并保留认证信息,避免被服务端识别为无效身份预加载
- **熔断快速止损**:识别 `请重新登录``禁止回源``防穿透` 等 NextEmby 熔断信号后立即停止放大重试,减少短时间重复请求
## 💬 外挂字幕与播放器可用性修复
- **Exo 外挂字幕修复**:外置字幕改为优先使用标准 `Videos/.../Subtitles/.../Stream.xxx` 地址,并对 `ass/ssa/subrip` 做更稳的格式请求策略
- **mpv 外挂字幕支持**:新增 mpv 运行时外挂字幕注入,补齐此前部分 `srt/sub/ass` 无法显示的问题
- **字幕入口统一鉴权**:Exo 与 mpv 的外挂字幕链路统一补足服务端可识别的鉴权参数,避免字幕流单独失败
## 🗂️ 详情页与目录体验优化
- **媒体目录排序修复**:首页和服务器卡片进入的详情页,季列表和剧集目录会跟随用户默认排序偏好,不再退回 Emby 全局默认顺序
- **播放器浮窗文案修正**:字幕切换浮窗现在正确显示“X 个字幕”,不再误用音轨数量文案
## 🛠️ 构建与环境稳定性
- **Gradle JDK 固定**:在项目级固定 `org.gradle.java.home`,修复 Gradle 偶发误用不完整 JRE 导致的 `jlink` 构建失败
- **调试包重新发布**:本次版本升级为 `0.8.0``versionCode` 提升至 `23`
## 🎨 UI 逻辑整体重构
- **多服务器架构**:首页(Home)改为动态服务器切换器,服务器详情页(Server Detail)使用静态头部,两者职责分离
- **私有服务器支持**:新增服务器访问控制,支持标记私有服务器,元数据(`isPrivate``displayName`)通过 `upsertSavedServer()` 持久化
- **导航栏优化**:非 Home/Detail 页面强制显示底部导航栏,修复 FAB 定位和标题在浅色/深色模式下的可见性问题
## 🔗 修复 302 重定向播放问题
- **Nextemby / Redia CDN 直连播放**:全面适配 Nextemby 反向代理的 302 重定向机制,实现 STRM 文件通过 CDN 加速的直连播放
- **Auth 认证修复**:将所有 API 请求的认证前缀从 `Emby` 统一为 `MediaBrowser`,匹配 Nextemby 的拦截要求
- **PlaybackInfo 改为 POST**:使用 POST 请求 + DeviceProfile 请求体获取播放信息,与官方客户端行为一致
- **取消 URL 预探测**:移除播放前的 URL 探测逻辑,直接将流媒体 URL 传递给 ExoPlayer,由播放器自行处理 302 重定向,与 NipaPlay 等成功客户端的实现方式对齐
- **身份验证参数**:在流媒体 URL 中携带 `UserId``MediaSourceId`,确保 Nextemby 能正确识别用户身份
## 🎬 修复 4K 高码率视频播放闪退问题
- **内存溢出修复**:修正 ExoPlayer 缓冲策略,将 `prioritizeTimeOverSizeThresholds``true`(时间优先)改为 `false`(大小优先),并设置 150MB 内存缓冲上限,防止 80Mbps+ 4K 视频因缓冲过大导致 OOM 崩溃
- **协程生命周期修复**:修复播放器界面位置更新协程在 ExoPlayer 释放后仍运行导致的 `CoroutinesInternalError` 崩溃
- **CDN 连接增强**:优化 HTTP 客户端配置,增加读取超时(60s)、启用连接失败自动重试、配置连接池(4连接/5分钟保活),提升大文件流媒体播放的连接稳定性
## 📋 其他改进
- 播放器位置更新频率从 100ms 调整为 250ms,降低 CPU 占用
- 优化服务器列表管理逻辑,支持服务器显示名称自定义
- 源码提交:`8d6778b42b7a5f351921248d3a3debde99142aad`
- 源码标签:`v0.23.0`
- 自动验证:`:app:assembleDebug`、官网静态页 65 项测试
Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB