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
This commit is contained in:
Developer
2026-03-10 20:04:48 +08:00
parent 4dbb3cb3d6
commit 5bb6a3cd68
8 changed files with 453 additions and 113 deletions

11
package-lock.json generated
View File

@@ -23,6 +23,7 @@
"react-native": "0.83.2",
"react-native-safe-area-context": "~5.6.2",
"react-native-screens": "~4.23.0",
"react-native-video": "^6.19.0",
"react-native-web": "^0.21.0",
"react-native-webview": "13.16.0",
"zustand": "^5.0.11"
@@ -7756,6 +7757,16 @@
"react-native": "*"
}
},
"node_modules/react-native-video": {
"version": "6.19.0",
"resolved": "https://registry.npmjs.org/react-native-video/-/react-native-video-6.19.0.tgz",
"integrity": "sha512-JVojWIxwuH5C3RjVrF4UyuweuOH/Guq/W2xeN9zugePXZI8Xn/j6/oU94gCWHaFzkR/HGeJpqMq+l9aEHSnpIQ==",
"license": "MIT",
"peerDependencies": {
"react": "*",
"react-native": "*"
}
},
"node_modules/react-native-web": {
"version": "0.21.2",
"resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.21.2.tgz",