📈 GH Trending Explorer 🎲 Surprise me

← all repos

wokaotianshi123 / guoapp3

git clone https://github.com/wokaotianshi123/guoapp3.git v1.4.2 · 2d ago

duanjushijie、quanjushijie

—
stars, 24h
—
stars, 7 days
+114
stars, 30 days · #2,018
114
★ total
23
forks · 0 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageDart
License—
Created2026-09-30 (20d ago)
Last pushtoday
Watchers0
OwnerUser

Links

README excerpt
# 短剧视界 / 全剧视界
自编译版加入 韩小圈,鬼片,A123(青空已下线移除)
Flutter 多端独立短剧应用,原名“短剧库 APP”。站源请求、解析、下载和播放均在设备上完成,不依赖旧项目或自建服务。当前源码版本:**1.4.2+94(未验证开发快照)**。
本轮(1.4.2+94)修复 Android 电视端与 macOS / Windows 桌面端「搜索焦点跳不出搜索框」。根因两层:一是 `SearchInput` 的 `RawAutocomplete` 在联想下拉打开时把上下方向键映射为选项高亮导航且夹在 0..N-1,永远无法越界跳出输入框;二是裸 `TextField`(下载页、观看记录 / 追剧页搜索)在桌面与电视端被 `DefaultTextEditingShortcuts` 的「上下移光标到相邻行」动作吞掉方向键——单行框里移动无效却返回 handled,焦点原地卡死。修复:① 参考 guoappxian 项目移植 `RemoteTextInput`(`lib/remote_widgets.dart`),以后代 `Focus.onKeyEvent` 在文本框祖先层抢先处理方向键——上 / 下键 `focusInDirection` 移出搜索框、返回 / Esc 先尝试向下再向上移出并收起输入法、电视端确认键 `requestKeyboard()` 重新唤起输入法;生效范围为电视模式与 macOS / Windows / Linux 桌面(Android 手机不受影响),并加「输入法组字中(composing 非空)放行方向键给软键盘选词」的保护;接入 `downloads_screen.dart` 与 `saved_library.dart` 两处裸搜索框。② 重写 `lib/search_input.dart` 的按键逻辑:在自己持有的 `FocusNode.onKeyEvent` 上(焦点冒泡第一站,早于 RawAutocomplete 上层 Shortcuts;EditableText 内部 Focus 不传 onKeyEvent、且外部节点不会被 `_usingExternalFocus` 分支覆盖,均已对照 Flutter 3.32 源码确认)接管方向键——联想打开时上下键驱动自维护的 `_nav` 高亮(`ValueListenableBuilder` 渲染选中项,替代 `AutocompleteHighlightedOption`),到达列表上 / 下边界后再越界时改为 `focusInDirection` 移出输入框;联想关闭时方向键直接移出;下拉打开时回车 / select 提交高亮项、Esc / goBack 先收起联想;同样带 composing 组字放行。电视与桌面、手机触屏共用同一组件,手机无键盘时节点回调不触发、行为不变。
验证:本机无 flutter / dart CLI,`flutter analyze` 与构建交由 GitHub Actions;焦点移出与联想导航的实际手感待 Android TV、macOS、Windows 真机 / 设备验收;按约定本轮为未验证开发快照。
上一轮(1.4.2+93)修复本地 Web 服务器版直播「点播放列表后一直加载、无画面」。根因:秀果(xiuguo,pingtai 协议)频道实际下发的是 **.flv** 直播流(`http://.../cx_*.flv?wsSecret=...`,已探测官方接口确认),而 Web 端只接了 hls.js(m3u8)与原生 `video.src`;且 `livePlayRoute` 的 `isHls` 判定误用「代理 URL 前缀」而非「真实媒体后缀」,把 `.flv` 也送进 hls.js——hls.js 无法解析 FLV,流虽被代理取到却永不解码 → 一直加载无画面。修复:① 新增 `native/server/web/flv.min.js`(flv.js 1.6.2,`index.html` 在 hls.min.js 后引入),`livePlayRoute` 按 URL 真实后缀分发——`.flv` 走 flv.js(`createPlayer + attachMediaElement + load`)、`.m3u8` 走 hls.js、其余走原生 `video.src`,解码器统一挂到 ArtPlayer 的 video 元素;`liveStopDecoder` 在换台/停播/离页时销毁 flv.js 与 hls.js 实例。② ArtPlayer 与 video 默认**静音开播**(浏览器只允许静音自动播放,未静音会被拦、ArtPlayer 转圈不消失),用户可用 ArtPlayer 控件开声。
上一轮(1.4.2+92)修复:Android 端切换 xigua 播放器「有声无画」。根因定位(对照源项目 guoappzhi):xigua 在 Android 走自定义平台视图 `duanju/video_surface`,其原生半边 `android/app/src/main/kotlin/com/duanju/duanju_app/VideoSurfaceHost.kt`(注册 `onAddView` 工厂、经 `MediaKitAndroidHelper.newGlobalObjectRef` 回传 wid 给 Dart)移植时漏掉了,故 mpv `vo:gpu+wid` 渲染目标接不上。修复:补齐 `VideoSurfaceHost.kt`、在 `MainActivity.configureFlutterEngine` 加 `flutterEngine.plugins.add(VideoSurfacePlugin())`,并把 `lib/xigua/android_video_surface.dart` 的 `androidSurfaceViewSupported` 恢复为 `!kIsWeb && Platform.isAndroid`(重加 `dart:io`)以启用硬件 SurfaceView;Dart 侧原有 `onUnavailable → _fallbackToTextureOutput` 兜底保留,原生 surface 异常时自动退回 texture。
上一轮(1.4.2+91)两项:本地 Web 服务器版直播模块改造(播放器换 ArtPlayer + 界面重排 + 取消线路源)与全端直播播放消除 mpv「非可寻址」提示。
1. 本地 Web 服务器版直播模块(`native/server/web/artplayer.js`、`index.html`、`app.js`、`app.css`)。一、播放器换成 ArtPlayer v5.4.0:新增 `artplayer.js`(自带 UI 与样式、自注入 CSS,无需外链),`index.html` 在 `hls.min.js` 之后引入;`liveEnsureArtplayer` 在舞台容器 `#live-artplayer` 上建 `new Artplayer({ isLive: