Files
JKVideo/CHANGELOG.md
Developer 3f82646496 init
2026-03-26 12:15:40 +08:00

120 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Changelog
所有重要更新都记录在此文件中。
格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/)。
---
## [1.0.15] - 2026-03-26
### 新增
- **UP主主页**:视频详情页点击 UP 主名称可进入创作者主页(`/creator/[mid]`),展示头像、简介、粉丝数、投稿数及视频列表(分页加载)
- **缓存管理**:设置页新增「存储」区块,实时显示缓存大小,支持一键清除 expo-image 磁盘/内存缓存及通用缓存目录
### 优化
- **性能**:封面图全面改用 `expo-image`(内存/磁盘两级缓存,`recyclingKey` 复用 UI 树节点FlatList 开启 `removeClippedSubviews``buvid3` 改为懒初始化,首屏加载快约 30ms
- **搜索体验**搜索结果列表高亮命中词HTML 标签过滤);空态增加图标+文案;防抖 300ms 减少无效请求
- **深色模式**:修补设置页遗漏的硬编码颜色,外观/流量切换按钮、退出登录按钮全部跟随主题
- **登录安全**SESSDATA 迁移至 `expo-secure-store` 加密存储Web 降级 AsyncStorage
### 修复
- **登录后头像不更新**:将 `getUserInfo()` 移入 `authStore.login()`,延迟 1s 后台执行,避免触发新会话并发风控,登录完成后头像立即刷新
- **getFollowedLiveRooms 登录后返回空**`login()` 内同步调用 `getUserInfo` 导致 `FollowedLiveStrip` 并发请求被平台风控拦截;改为 `setTimeout(1000)` 非阻塞后台拉取修复
- **getUploaderVideos 无数据**`/x/space/wbi/arc/search` 需要 WBI 签名,补全 `getWbiKeys()` + `signWbi()` 调用
- **getFollowedLiveRooms 字段兼容**:新增 `code !== 0` 校验及 `list ?? rooms ?? []` 兼容不同 API 版本返回结构
---
## [1.0.13] - 2026-03-25
### 修复
- **小窗 PanResponder 闭包过期**`useRef(PanResponder.create(...))` 捕获初始 `roomId=0` / `bvid=""`,导致点击小窗跳转到错误页面;改用 `storeRef` 模式保持最新值
- **直播小窗进入详情无限 loading**`useLiveDetail` 使用 `cancelled` 闭包标志effect cleanup 后 fetch 被静默丢弃;改用 `latestRoomId` ref 比对替代 cancelled 模式
- **进入播放器页面小窗不关闭**:视频/直播详情页进入时通过 `useLayoutEffect` + `getState().clearLive()` 同步清除小窗,避免双播和资源竞争
- **BigVideoCard 与直播小窗冲突**:首页 BigVideoCard 自动播放与直播小窗竞争解码器资源;小窗活跃时跳过 Video 渲染,仅显示封面图
- **退出全屏视频暂停**互斥渲染后竖屏播放器重新挂载react-native-video seek 后不自动恢复播放;`onLoad` 中强制 `paused` 状态切换触发播放
### 优化
- **视频播放器单实例**:竖屏/全屏互斥渲染(`{!fullscreen && ...}` / `{fullscreen && ...}`),不再同时挂载两个 Video 解码器,减半 GPU/内存占用
- **onProgress 节流**`progressUpdateInterval` 从 250ms 调为 500ms回调内增加 450ms 节流和 seeking 跳过,减少重渲染
- **移除调试日志**:清理 NativeVideoPlayer 中遗留的 `console.log`
- **下载页 UI 优化**:下载管理页交互和暗黑主题适配
---
## [1.0.12] - 2026-03-25
### 新增
- **UP主信息**:视频详情页博主名称下方展示粉丝数和视频数(`getUploaderStat``/x/web-interface/card`
- **视频相关推荐**:详情页推荐列表改为基于当前视频(`getVideoRelated``/x/web-interface/archive/related`),不再与首页 feed 共用
### 修复
- **直播全屏退出暂停**:全屏改用 `position:absolute` 覆盖Video 组件始终在同一棵 React 树中,不再因 Modal 切换导致重建暂停;退出全屏时直播自动暂停
- **直播画质选中**`changeQuality` 强制用请求的 `qn` 覆盖服务端协商值,画质面板高亮与用户选择一致
- **直播画质过滤**:过滤 `qn > 10000` 的选项(杜比/4K最高仅展示原画
- **推荐视频导航**:点击推荐列表改用 `router.replace`,避免详情页无限堆叠
### 优化
- **直播画质面板**:改为居中 Modal 弹出框
- **视频详情 Tab**:按钮向左靠齐,移除均分宽度
- **评论排序按钮**:统一为实心背景风格(`#f0f0f0``#00AEEC`),与直播分区 Tab 一致
- **设置页按钮**:外观/流量选项按钮统一为实心背景风格
## [1.0.11] - 2026-03-24
### 新增
- **暗黑模式**:全局主题系统(`utils/theme.ts`),支持亮色 / 暗色一键切换,覆盖所有页面和组件
- **节流模式**:设置页新增流量节省开关,开启后使用低画质封面、首页视频不自动播放、视频默认 360p 画质
- **本地二维码生成**:登录二维码改用 `react-native-qrcode-svg` 本地渲染,移除对 `api.qrserver.com` 的外部依赖,提升可靠性
### 修复
- **SeasonSection 背景色**:合集组件背景色与父容器不一致,现跟随主题色 (`theme.card`) 正确显示
- **推荐列表 Loading 状态**:空列表加载中未显示 spinner`ListEmptyComponent` 条件逻辑反转)
- **合集滚动定位偏移**`getItemLayout` offset 计算未计入卡片间距(`gap: 10`),导致 `scrollToIndex` 定位不准
- **推荐视频卡片双边框**:相邻推荐视频卡片之间出现双分割线
## [1.0.0] — 2026-03-20
### 首个正式版本
#### 视频播放
- DASH 完整播放DASH 接口 → `buildDashMpdUri()` 生成本地 MPD → ExoPlayer 原生解码
- 支持多清晰度切换360P / 480P / 720P / 1080P / 1080P+ / 4K
- BigVideoCard 首页内联 DASH 静音自动播放,支持水平手势快进、进度条/缓冲条
- 全局迷你播放器MiniPlayer切换页面后底部浮层续播
- WebView 降级方案NativeVideoPlayer兼容 Expo Go 环境
#### 直播
- 直播 Tab 顶部显示关注主播在线状态
- 双列直播卡片网格 + 横向分区筛选
- 热门列表中穿插直播推荐卡片
- LivePlayer 支持 HLS 多画质切换
- 直播弹幕 WebSocket 实时接收,舰长标记 + 礼物计数
#### 弹幕系统
- 视频弹幕XML 全量拉取 + 时间轴同步 drip 渲染
- DanmakuOverlay 飘屏覆盖层5 车道滚动)
- DanmakuList 支持实时直播模式(保留最近 500 条)
#### 搜索 & 内容
- 视频关键词搜索 + 分页加载
- 视频详情:简介 / 评论 / 弹幕 三 Tab
- 推荐视频流(无限滚动)
- 评论列表(热评 / 最新排序切换)
#### 账号 & 设置
- 扫码登录(二维码 + 2s 轮询 + SESSDATA 自动提取)
- 登录态持久化AsyncStorage
- 封面图清晰度设置(高清 / 普通,节省流量)
#### 下载 & 分享
- 多清晰度视频后台下载
- 下载管理页(播放、删除已下载视频)
- 局域网 HTTP 服务器,生成 QR 码分享,同 Wi-Fi 设备扫码直接播放
#### 跨平台
- Android、iOS、Web 三端支持
- Expo Go 扫码快速运行UI 预览模式)
- Dev Build 完整功能DASH 原生播放)