我正在尝试在视频流应用程序中实现本地视频缓存。
我正在使用:
我已经设法从头开始下载,将原始URL替换为本地URL,然后继续从本地文件播放(按预期工作)-甚至使用部分文件(只要我从0)。
主要问题 是搜索功能。如果用户想开始观看,例如120s-下载仍将从0B开始。我已经在Fetch API中实现了 Range标头,如下所示:
"Range": "bytes: {oneSecondInBytes * whereYouWantToStartWatchingInSeconds}-{fileSizeInBytes}"
以克服此问题。现在,下载从所需的字节开始,并且仅下载视频文件的所需部分。
下载正常,但是视频播放抛出Unrecognized media format
错误。还尝试在开头(0-10000B)处为标头添加一些字节-尝试识别视频文件,没有运气。
所以我想知道是否可以使用rn-fetch-blob实现部分视频文件下载,并能够使用react-native-video播放文件(不是从文件开头开始) ,稍后还将其他片段添加到文件中(直到整个下载完成)。我怎么能说服react-native-video我的部分下载确实是正确的mp4文件?
更新
我已经弄乱HTTP GET标头一段时间了,但实际上到达了某个地方。不是完整的解决方案,但可能会帮助某人:
"Content-Type": "video/mp4",
"Range": `bytes=0-1000, 45111150-`,
"Accept-Ranges": "bytes",
"Content-Length": "89024062"
^^这些是我的测试标头。必须为Range添加两个值。第一个只是下载文件的第一部分以获取标题并识别文件类型。第二个是从“寻找点”开始的。视频现在可以播放并且可以识别文件类型了。