Commit Graph

5 Commits

Author SHA1 Message Date
Developer
46796d3d6d 杜比HDR 2026-03-19 16:38:18 +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