Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e02b2fbaa7 | ||
|
|
a74eefa394 | ||
|
|
49e08e3e24 | ||
|
|
47dafdf839 | ||
|
|
394db69387 | ||
|
|
e92af5d83d | ||
|
|
78f6683ff1 | ||
|
|
eac5511e86 |
@@ -1,101 +1,106 @@
|
||||
<p align="center">
|
||||
<p align="center">
|
||||
<img src="entryway_logo.png" alt="Entryway Logo" width="120">
|
||||
</p>
|
||||
|
||||
<p align="center"><strong>Entryway</strong></p>
|
||||
<p align="center">澶氭湇鍔″櫒鑱氬悎绠$悊鐨?Android 濯掍綋瀹㈡埛绔紝鏀寔 Jellyfin 鍜?Emby銆?/p>
|
||||
<p align="center">A multi-server aggregation Android media client for Jellyfin & Emby.</p>
|
||||
<p align="center">多服务器聚合管理的跨平台媒体客户端,支持 Jellyfin 和 Emby。</p>
|
||||
<p align="center">A multi-server aggregation media client for Jellyfin & Emby — Android, Android TV & Windows.</p>
|
||||
<p align="center"><a href="https://www.yamby.cn">官方网站 | 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/Platform-Android%20%7C%20Android_TV%20%7C%20Windows-3DDC84?style=flat-square" alt="Platform">
|
||||
<img src="https://img.shields.io/badge/Server-Jellyfin%20%7C%20Emby-AA0000?style=flat-square" alt="Server">
|
||||
<img src="https://img.shields.io/badge/License-MIT-blue?style=flat-square" alt="License">
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
## 鏈€鏂扮増鏈?| Latest Release
|
||||
## 最新版本 | Latest Release
|
||||
|
||||
- **鎵嬫満鐗?v0.17.0**锛氬畬鏁村寮瑰箷 API 绠$悊銆佺獎灞忓竷灞€淇涓庢寜鏈嶅姟闅旂鐨勫尮閰嶅拰缂撳瓨
|
||||
- **TV 鐗?v0.16.0**锛氱Щ妞嶅寮瑰箷 API銆侀噸鎺掗仴鎺у櫒寮圭獥骞朵慨澶嶅脊骞曠┛閫忚彍鍗曚笌鐒︾偣闂
|
||||
- **Windows v0.16.0**:首页横向滚动箭头、查看全部入口、下载页返回按钮
|
||||
- **鎵嬫満鐗?APK**锛歔`entryway-debug-0.17.0.apk`](https://github.com/JackYucongjia/Entryway_Release/releases/download/v0.17.0/entryway-debug-0.17.0.apk)
|
||||
- **TV 鐗?APK**锛歔`Entryway-tv-debug-0.16.0.apk`](https://github.com/JackYucongjia/Entryway_Release/releases/download/v0.17.0/Entryway-tv-debug-0.16.0.apk)
|
||||
- **Windows x64**锛歔`Entryway_0.14.0+33_Windows_x64_Setup.exe`](https://github.com/JackYucongjia/Entryway_Release/releases/download/v0.17.0/Entryway_0.14.0%2B33_Windows_x64_Setup.exe)
|
||||
- **鍙樻洿鏃ュ織**锛歔`RELEASE_NOTES.md`](RELEASE_NOTES.md)
|
||||
**全局标签 `v0.21.1`**(各端应用版本独立;本批次为 Debug 持续发布)
|
||||
|
||||
## 姒傝堪 | Overview
|
||||
| 平台 | 应用版本 | 构建号 | 下载 |
|
||||
| --- | --- | --- | --- |
|
||||
| Android 手机版 | 0.21.1 | 42 | [`entryway-debug-0.21.1.apk`](https://gitea.yamby.cn/yusheng/Entryway_Release/releases/download/v0.21.1/entryway-debug-0.21.1.apk) |
|
||||
| Android TV 版 | 0.18.0 | 38 | [`Entryway-tv-debug-0.18.0.apk`](https://gitea.yamby.cn/yusheng/Entryway_Release/releases/download/v0.21.1/Entryway-tv-debug-0.18.0.apk) |
|
||||
| Windows x64 | 0.18.0 | 37 | [`Entryway_0.18.0+37_Windows_x64_Setup.exe`](https://gitea.yamby.cn/yusheng/Entryway_Release/releases/download/v0.21.1/Entryway_0.18.0+37_Windows_x64_Setup.exe) |
|
||||
|
||||
**Entryway** 鏄竴涓潰鍚戣嚜寤哄獟浣撴湇鍔″櫒鐢ㄦ埛鐨?Android 瀹㈡埛绔紝鏍稿績璁捐鐞嗗康鏄?**澶氭湇鍔″櫒鑱氬悎**鈥斺€斿湪涓€涓粺涓€鐨勭晫闈腑绠$悊鍜屾祻瑙堜綘鎵€鏈夌殑 Jellyfin / Emby 鏈嶅姟鍣ㄣ€?
|
||||
> Android 手机版与 TV 版沿用 1.0 前的调试证书签名约定,Windows 安装包未签名;首次运行可能触发系统安全提示,需手动确认。
|
||||
>
|
||||
> ⚠️ v0.19.0 的手机安装包误用了正式发布证书,无法覆盖安装。0.18.x 及更早版本可直接覆盖安装 0.20.0;若已安装 v0.19.0,需先卸载再安装。
|
||||
|
||||
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.
|
||||
- **变更日志**:[`RELEASE_NOTES.md`](RELEASE_NOTES.md)
|
||||
- **全部版本**:[Gitea Releases](https://gitea.yamby.cn/yusheng/Entryway_Release/releases) | [GitHub Releases](https://github.com/JackYucongjia/Entryway_Release/releases)
|
||||
|
||||
## 鏍稿績鐗规€?| Features
|
||||
## 概述 | Overview
|
||||
|
||||
### 馃枼锔?澶氭湇鍔″櫒绠$悊
|
||||
- 娣诲姞澶氫釜 Jellyfin / Emby 鏈嶅姟鍣紝涓€閿揩閫熷垏鎹?
|
||||
- 鏈嶅姟鍣ㄥ崱鐗囨樉绀虹敤鎴峰ご鍍忋€佺敤鎴峰悕銆佹湇鍔″櫒鍦板潃
|
||||
- 闀挎寜鑿滃崟锛氶噸鏂扮櫥褰曘€佹湇鍔″櫒绾胯矾銆佷慨鏀瑰浘鏍囥€佷慨鏀瑰娉ㄣ€佽涓虹瀵嗐€佷慨鏀瑰瘑鐮併€佺紪杈戙€佸垹闄?
|
||||
- 婧㈠嚭鑿滃崟锛氭悳绱€佹帓搴忥紙榛樿/鍚嶇О/鏈€杩戜娇鐢級銆佺綉鏍?鍒楄〃甯冨眬鍒囨崲銆佹樉绀洪€夐」
|
||||
- 绉佸瘑鏈嶅姟鍣細鏍囪鍚庨粯璁ら殣钘忥紝闇€鎵嬪姩寮€鍚樉绀?
|
||||
**Entryway** 是一个面向自建媒体服务器用户的跨平台客户端,覆盖 **Android 手机**、**Android TV** 和 **Windows** 三端。核心设计理念是 **多服务器聚合**——在一个统一的界面中管理和浏览你所有的 Jellyfin / Emby 服务器。
|
||||
|
||||
### 馃彔 棣栭〉鍗虫湇鍔″櫒
|
||||
- 棣栭〉鐩存帴灞曠ず褰撳墠娲昏穬鏈嶅姟鍣ㄧ殑濯掍綋搴撳唴瀹?
|
||||
- 宸︿笂瑙掓樉绀哄綋鍓嶆湇鍔″櫒鍚嶏紝鐐瑰嚮鍗冲彲鍒囨崲鍒板叾浠栭潪绉佸瘑鏈嶅姟鍣?
|
||||
- 鏀寔绮鹃€夎疆鎾紙Featured Carousel锛夊拰鏃犺疆鎾袱绉嶆ā寮?
|
||||
Entryway is a cross-platform client for self-hosted media server users, available on **Android Mobile**, **Android TV**, and **Windows**. Its core philosophy is **multi-server aggregation** — managing and browsing all your Jellyfin / Emby servers from a single, unified interface.
|
||||
|
||||
### 馃幀 鍙屽紩鎿庢挱鏀惧櫒
|
||||
- **ExoPlayer 寮曟搸**锛氶粯璁ゆ挱鏀惧紩鎿庯紝鍩轰簬 Media3 + Jellyfin FFmpeg 鎵╁睍
|
||||
- **mpv 寮曟搸**锛氬鐢ㄩ珮鍏煎鎬у紩鎿庯紝鍩轰簬 libmpv锛屾敮鎸佹洿澶氱紪瑙g爜鏍煎紡
|
||||
- 鎾斁澶辫触鏃惰嚜鍔ㄦ彁渚涘紩鎿庡垏鎹㈠缓璁紝鏀寔鎵嬪姩涓€閿垏鎹?
|
||||
- 鍒囨崲寮曟搸鏃惰嚜鍔ㄤ繚鎸佹挱鏀捐繘搴?
|
||||
- 缁熶竴 User-Agent锛歚Entryway/{version} (android; {api})`
|
||||
**官网**:[www.yamby.cn](https://www.yamby.cn)
|
||||
|
||||
### 鈴?鎾斁鎺у埗
|
||||
- **鍊嶉€熸挱鏀?*锛?.1x ~ 5.0x 婊戝姩鏉?+ 蹇€熼璁撅紙0.5x / 1.0x / 1.5x / 2.0x / 3.0x锛?
|
||||
- **闀挎寜蹇€熷€嶉€?*锛氶暱鎸夊睆骞曡繘鍏ユ墜鍔ㄧ煭鏃堕棿楂橀€熸挱鏀?
|
||||
- **鎵嬪娍鎺у埗**锛氬乏鍙虫粦鍔ㄥ揩杩涘揩閫€銆佸乏渚т笂涓嬫粦鍔ㄨ皟浜害銆佸彸渚т笂涓嬫粦鍔ㄨ皟闊抽噺
|
||||
- **鐢婚潰姣斾緥**锛氬惊鐜垏鎹㈤€傚簲/濉厖/16:9/4:3 绛夋瘮渚嬫ā寮?
|
||||
- **閿佸睆**锛氶攣瀹氭帶鍒剁晫闈紝闃叉璇Е
|
||||
- **鍓ч泦瀵艰埅**锛氫笂涓€闆?涓嬩竴闆嗭紝鎾斁鍒楄〃锛堜粎鍓ч泦锛?
|
||||
## 核心特性 | Features
|
||||
|
||||
### 馃敡 mpv 寮曟搸涓撳睘
|
||||
- **瑙g爜妯″紡鍒囨崲**锛歋W锛堣蒋瑙o級/ HW锛堢‖瑙o級/ HW+锛堢‖瑙?鎷疯礉锛変竴閿惊鐜垏鎹?
|
||||
- 瀛椾綋鑷姩鍔犺浇锛屾敮鎸佸瓧骞曟覆鏌?
|
||||
### 🖥️ 多服务器管理
|
||||
- 添加多个 Jellyfin / Emby 服务器,一键快速切换
|
||||
- 服务器卡片显示用户头像、用户名、服务器地址
|
||||
- 私密服务器:标记后默认隐藏,需手动开启显示
|
||||
- 冷启动离线恢复:服务器不可用时不清除账号
|
||||
|
||||
### 馃攰 楂樼骇闊抽
|
||||
- Apple Spatial Audio 绌洪棿闊抽妫€娴嬩笌鍚敤
|
||||
- HDR / Dolby Vision 鑳藉姏妫€娴嬩笌鑷姩閫傞厤
|
||||
### 🎬 双引擎播放器(Android)
|
||||
- **ExoPlayer**:默认引擎,基于 Media3 + FFmpeg 扩展
|
||||
- **mpv**:高兼容性引擎,含 libdvdread/libdvdnav/libbluray
|
||||
- 自动容错切换,保留播放进度
|
||||
- 解码模式:SW / HW / HW+ / DV-SW
|
||||
|
||||
### 馃帹 鍏ㄥ眬涓婚绯荤粺
|
||||
- 鏀寔 **璺熼殢绯荤粺** / **娴呰壊** / **娣辫壊** 涓夌涓婚妯″紡
|
||||
- 鍩轰簬 Material 3 鍔ㄦ€侀厤鑹叉柟妗?
|
||||
### 💬 多弹幕服务
|
||||
- 弹弹Play 官方、LogVar 弹幕 API、其他弹弹Play 兼容服务
|
||||
- 按优先级有序故障回退,数据源严格隔离
|
||||
- 自动匹配、手动搜索、本地弹幕、LRU 缓存
|
||||
- 三端支持(手机 / TV / Windows)
|
||||
|
||||
### 馃寪 瀹屾暣鍥介檯鍖?
|
||||
- 鐣岄潰鏀寔涓枃锛堢畝浣?绻佷綋锛夊拰鑻辨枃
|
||||
- 50+ 褰辫绫诲瀷鍚嶇О瀹㈡埛绔炕璇?
|
||||
- 鏍规嵁绯荤粺璇█鑷姩鍒囨崲
|
||||
### 💿 实验性 DVD / Blu-ray ISO
|
||||
- 未加密原盘本地与远程播放
|
||||
- 不支持时自动回退服务器转码
|
||||
|
||||
### 馃摜 绂荤嚎涓嬭浇
|
||||
- 闃熷垪鍖栦笅杞界鐞嗭紝鏀寔鏆傚仠/鎭㈠/鍙栨秷
|
||||
- 瀛e害/鍓ч泦鎵归噺涓嬭浇锛屼笅杞藉墠鏄剧ず瀛樺偍绌洪棿棰勪及
|
||||
- 鏃犵綉缁滄椂鑷姩鍒囨崲鍒扮绾垮唴瀹规ā寮?
|
||||
### 📺 Android TV
|
||||
- 遥控器全键盘搜索、二维码手机输入
|
||||
- 完整弹幕、扫码录入服务器、首页缓存兜底
|
||||
|
||||
## 鎶€鏈爤 | Tech Stack
|
||||
### 🪟 Windows
|
||||
- Flutter + MediaKit (libmpv) + Rust 弹幕引擎
|
||||
- 多服务器、收藏、详情、跨服搜索、离线下载
|
||||
- Chromecast/DLNA 投屏、Inno Setup 安装器
|
||||
|
||||
| 绫诲埆 | 鎶€鏈?|
|
||||
|------|------|
|
||||
| **璇█** | 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 |
|
||||
### 🎨 设计与国际化
|
||||
- 空间化 / 玻璃态视觉语言,Material 3 动态配色
|
||||
- 完整中文(简体/繁体)和英文本地化
|
||||
|
||||
## 璐$尞 | Contributing
|
||||
### 📥 离线下载
|
||||
- 队列化管理,批量下载,存储空间预估
|
||||
- 无网络时自动切换离线内容模式
|
||||
|
||||
娆㈣繋鎻愪氦 Issue 鍜?Pull Request銆傝緝澶х殑鍔熻兘寮€鍙戝缓璁厛寮€ Issue 璁ㄨ鑼冨洿銆?
|
||||
## 平台要求 | Requirements
|
||||
|
||||
| 平台 | 最低要求 |
|
||||
| --- | --- |
|
||||
| Android 手机版 | Android 8.1 (API 27) |
|
||||
| Android TV 版 | Android 8.1 (API 27) |
|
||||
| Windows | Windows 10 x64 |
|
||||
|
||||
## 更新检测 | Update Check
|
||||
|
||||
客户端内置更新检测,优先从 Gitea 获取最新版本,连接失败时自动降级到 GitHub。
|
||||
|
||||
## 源码仓库 | Source Code
|
||||
|
||||
- **GitHub**:[github.com/JackYucongjia/Entryway](https://github.com/JackYucongjia/Entryway)
|
||||
- **Gitea**:[gitea.yamby.cn/yusheng/Entryway](https://gitea.yamby.cn/yusheng/Entryway)
|
||||
|
||||
## 许可证 | License
|
||||
|
||||
本项目基于 MIT 许可证开源。
|
||||
|
||||
手机端弹幕实现参考了 MIT 许可的 [AimesSoft/NipaPlay-Reload](https://github.com/AimesSoft/NipaPlay-Reload)。
|
||||
Windows 客户端基于 NipaPlay-Reload `v1.10.13` 构建,保留上游 MIT 许可。
|
||||
|
||||
+30
-22
@@ -1,34 +1,42 @@
|
||||
# Entryway Mobile 0.18.0 / TV 0.16.1 / Windows 0.16.0+35
|
||||
# Entryway v0.21.1
|
||||
|
||||
本批次仅 Windows 端有代码更新,Android 手机版和 TV 版沿用 v0.18.0 已验证安装包。Android 为 1.0 前的 debug 构建。
|
||||
本批次仅包含 Android 手机版 Bugfix,采用 Debug 持续发布规则;Android TV 和 Windows 没有代码变更,沿用 `v0.21.0` 已验证安装包。各端应用版本独立维护:Mobile `0.21.1`、TV `0.18.0`、Windows `0.18.0+37`。
|
||||
|
||||
## 版本与校验
|
||||
> 本批次是持续发布用的 **Debug 版本**,不是正式 Release 版本。正式版将在用户明确确认后单独构建和发布。
|
||||
|
||||
| 平台 | 应用版本 | 构建号 | 文件名 | SHA-256 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| Android Mobile | 0.18.0 | 37 | entryway-debug-0.18.0.apk | `0157c126c61d79767952ed995414eb5d8a1239bb2013a2406996468356c7b820` |
|
||||
| Android TV | 0.16.1 | 36 | Entryway-tv-debug-0.16.1.apk | `09d2a29d65f37cfc62c85b4fb0a7ce9a8386fac9712fb4653b0cec2f7ad69e9f` |
|
||||
| Windows x64 | 0.16.0 | 35 | Entryway_0.16.0+35_Windows_x64_Setup.exe | `4f4652d5773b383291e0469c2e5a03f03cc0b25a707ebe34b02653fd958f3a14` |
|
||||
## 版本信息
|
||||
|
||||
> Android 为 debug 构建(1.0 前约定),Windows 安装包未签名;首次运行可能触发系统安全提示,需手动确认。
|
||||
| 平台 | 应用版本 | 构建号 | 安装包 | SHA-256 |
|
||||
| --- | --- | ---: | --- | --- |
|
||||
| Android 手机版 | 0.21.1 | 42 | `entryway-debug-0.21.1.apk` | `90dea56a72e1b686858bcb3109d3f22ef6e348be54348290bc40ef2913771418` |
|
||||
| Android TV 版 | 0.18.0 | 38 | `Entryway-tv-debug-0.18.0.apk`(沿用 `v0.21.0`) | `0f51f2030f558d950262ed143551a91bb30e8f4a877ce0f9eb4632beb0cbca86` |
|
||||
| Windows x64 | 0.18.0 | 37 | `Entryway_0.18.0+37_Windows_x64_Setup.exe`(沿用 `v0.21.0`) | `b744a11a186350461dc6b4143df1fd5ee833bcc0ae1df6bff4339e1824333477` |
|
||||
|
||||
## Android Mobile 0.18.0
|
||||
## Android 手机版 0.21.1
|
||||
|
||||
本批次无变化,沿用 v0.18.0 的 0.18.0。
|
||||
- 修复剧集切集时 Hero 和整剧简介被重复刷新的问题。
|
||||
- 修复分集胶囊与单集卡片的联动滚动定位。
|
||||
- 压缩版本、音轨、字幕及季选择弹窗的间距与高度。
|
||||
- 统一弹窗半透明毛玻璃样式,移除双层圆角描边造成的视觉重叠。
|
||||
|
||||
## Android TV 0.16.1
|
||||
## Android TV 版 0.18.0
|
||||
|
||||
本批次无变化,沿用 v0.18.0 的 0.16.1。
|
||||
- 本批次无代码变化,沿用 `v0.21.0` 的 `0.18.0` Debug 安装包。
|
||||
|
||||
## Windows 0.16.0
|
||||
## Windows x64 0.18.0+37
|
||||
|
||||
- 首页所有横向媒体行新增浮动左右滚动箭头,鼠标悬停时显示,点击可平滑横向浏览。
|
||||
- "继续观看"和"我的媒体"分区新增"查看全部"入口。
|
||||
- "我的媒体"查看全部改为库目录选择页,先选库再看内容。
|
||||
- 子媒体库行最大条目数从 12 提升至 24,最大化窗口时可展示更多内容。
|
||||
- 修复离线下载页面进入后无法退出的问题(新增返回按钮)。
|
||||
- 本批次无代码变化,沿用 `v0.21.0` 的 `0.18.0+37` 安装包。
|
||||
|
||||
## 已知问题
|
||||
- 安装包未进行代码签名,SmartScreen 可能显示未知发布者提示。
|
||||
|
||||
- 图形字幕(PGS/VOBSUB)在 ExoPlayer 下颜色不可调,属播放器框架限制,可切换 mpv 内核。
|
||||
- Windows 安装包未签名。
|
||||
## 兼容性
|
||||
|
||||
- Android 手机和 TV:Android 8.1(API 27)及以上。
|
||||
- Windows:Windows 10 或更高版本,x64。
|
||||
- Android 安装包使用项目 1.0 前的 Debug 变体和证书签名,Windows 安装包未签名。
|
||||
|
||||
## 构建信息
|
||||
|
||||
- 源码提交:`35df354d`
|
||||
- 修复提交:`154f6e45`
|
||||
- 源码标签:`v0.21.1`
|
||||
|
||||
Reference in New Issue
Block a user