带有rn-fetch-blob的mp4文件的部分下载,react-native-video引发无法识别的错误

时间:2019-05-05 18:02:58

标签: javascript react-native caching react-native-fetch-blob react-native-video

我正在尝试在视频流应用程序中实现本地视频缓存。

我正在使用:

  • 反应性本地视频以播放视频
  • rn-fetch-blob 用于下载文件

我已经设法从头开始下载,将原始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添加两个值。第一个只是下载文件的第一部分以获取标题并识别文件类型。第二个是从“寻找点”开始的。视频现在可以播放并且可以识别文件类型了。

0 个答案:

没有答案