Commit Graph

79 Commits

Author SHA1 Message Date
Developer
85ceec8b58 feat: add danmaku overlay + time tracking to NativeVideoPlayer 2026-03-10 22:50:48 +08:00
Developer
d1b66541d2 feat: add DanmakuOverlay component 2026-03-10 22:48:09 +08:00
Developer
44b4910135 feat: add DanmakuList component 2026-03-10 22:47:11 +08:00
Developer
d2e259e9f4 feat: add getDanmaku API function 2026-03-10 22:46:29 +08:00
Developer
bfeae44bf9 feat: add danmaku XML parser and color util 2026-03-10 22:44:24 +08:00
Developer
8572f30e16 feat: add DanmakuItem type 2026-03-10 22:43:16 +08:00
Developer
e5568b6b6b chore: install expo-screen-orientation, set orientation to default 2026-03-10 22:42:29 +08:00
Developer
3ec6433e14 chore: add .worktrees to .gitignore 2026-03-10 22:38:58 +08:00
Developer
ee213347c7 feat: unified player controls with heatmap progress + thumbnail preview
- VideoPlayer: 移除 onProgress/seekTo props,新增 bvid/cid 向下透传
- [bvid].tsx: 删除 HeatProgressBar 及 currentTime/duration/seekCmd state
- HeatProgressBar.tsx: 删除(逻辑已合并进 NativeVideoPlayer)
- 计划文档已保存到 docs/superpowers/plans/
2026-03-10 21:48:23 +08:00
Developer
6023ec55ae feat: rewrite NativeVideoPlayer with unified custom controls overlay 2026-03-10 21:46:19 +08:00
Developer
1efeba2d9e docs: add player UI redesign spec 2026-03-10 21:40:02 +08:00
Developer
836b2ceb28 fix: 末行单卡片居中 + 卡片高度不一致
- columnWrapperStyle justifyContent 改为 flex-start,末行单卡片靠左
- title 固定 height: 32px(2行 × lineHeight 16),
  使每张卡片 info 区高度相同,消除高度不一致
2026-03-10 21:14:24 +08:00
Developer
621fbebc08 fix: 下拉刷新 spinner 被顶部导航栏遮挡
改用 RefreshControl 并设置 progressViewOffset = insets.top + NAV_H,
将刷新指示器下移到导航栏以下,使其可见。
2026-03-10 21:10:01 +08:00
Developer
9ceb3b0d94 fix: 加载更多完成后页面抖动/导航栏弹出
ListFooterComponent 在 loading 结束时从 ActivityIndicator 变为 null,
content 高度骤降触发虚假 scroll event,diffClamp 误判为上滑把导航栏顶出。
改为 footer 保持固定高度 48px,仅切换 spinner 的显隐,消除高度变化。
2026-03-10 21:07:40 +08:00
Developer
f2b4c404c3 fix: filter out ad/live/invalid cards from recommend feed
推荐流中混入广告、直播等特殊条目,缺少 pic/duration/bvid 字段,
导致页面出现空白卡片。过滤掉不满足条件的条目。
2026-03-10 20:50:44 +08:00
Developer
4d71f39ee9 fix: proxy B站图片 CDN 解决 web 端防盗链图片不显示问题
- dev-proxy.js 新增 /bilibili-img 路由,代理 *.hdslb.com 并注入正确 Referer
- utils/imageUrl.ts 新增 proxyImageUrl(),web 端将图片 URL 转为本地代理地址
- VideoCard / CommentItem / MiniPlayer / [bvid] 对所有 B站图片应用 proxyImageUrl
2026-03-10 20:47:14 +08:00
Developer
4c72ff3cdd 视频清晰度 2026-03-10 20:21:22 +08:00
Developer
03d7d3c5c3 fix: quality switch not updating video playback
- Use qn-specific MPD filename (bili_dash_{qn}.mpd) so each quality
  produces a distinct URI that triggers react-native-video to reload
- Add key={resolvedUrl} on <Video> to force remount on source change
2026-03-10 20:18:47 +08:00
Developer
35371cebff fix: switch DASH delivery from data: URI to local MPD file via expo-file-system
data: URI scheme for DASH manifests is unreliable in ExoPlayer.
Write MPD XML to FileSystem.cacheDirectory/bili_dash.mpd and pass
file:// URI to react-native-video instead. URL resolution is now
async via useEffect+state in NativeVideoPlayer.
2026-03-10 20:16:01 +08:00
Developer
911eeb9052 fix: use snake_case field names matching Bilibili DASH API response
B站 API 实际返回 segment_base.initialization / index_range
而非 segmentBase.Initialization / indexRange,修正类型定义和 MPD 生成逻辑。
segment_base 设为可选,缺失时不生成 SegmentBase 元素(ExoPlayer fallback)。
2026-03-10 20:09:50 +08:00
Developer
5bb6a3cd68 feat: unlock 1080P+ on Android via DASH streaming
- getPlayUrl uses fnval=16 (DASH) on Android, keeping fnval=0/html5 for iOS/web
- New utils/dash.ts builds a valid DASH MPD from Bilibili's segmentBase ranges
  and returns it as a data: URI for ExoPlayer consumption
- NativeVideoPlayer selects DASH path (type='mpd') or durl fallback automatically
- Extend PlayUrlResponse types with DashVideoItem/DashAudioItem/DashSegmentBase
2026-03-10 20:04:48 +08:00
Developer
4dbb3cb3d6 1 2026-03-10 19:22:38 +08:00
Developer
cf20b016ff 1 2026-03-10 19:04:18 +08:00
Developer
18eebfb0d2 1 2026-03-10 17:25:18 +08:00
Developer
c9c62d3e48 1 2026-03-06 14:52:28 +08:00
Developer
9b7e728c9d 1 2026-03-06 12:58:41 +08:00
Developer
b09c3731f9 chore: add dev server config and update tsconfig
- Add .claude/launch.json for Expo Dev Server (port 8081)
- Update tsconfig.json with expo-router typedRoutes include paths
2026-03-05 18:09:44 +08:00
Developer
a0e53bd073 feat: add all source files - services, store, hooks, components, screens 2026-03-05 18:02:54 +08:00
Developer
bbe0df6ed2 chore: init expo typescript project with all dependencies 2026-03-05 17:55:47 +08:00