SWIFT:获取视频更快下载的提示?

问题描述 投票:1回答:1

我有一个iOS应用,该应用通过类似于Instagram / TikTok的供稿从Firebase(Cloud Firestore)下载视频。但是,在用户滚动到视频之前,我无法立即获得视频。任何提示将超级有帮助。 TikTok是如何做到的?他们是否在加载时将一大堆视频保存到后台文件中?

我当前的VideoDownloadManager:

  1. 检查视频是否已经加载到临时缓存或本地文件中,如果不是:
  2. 下载视频URL(查看Firebase的downloadURL)
  3. 返回视频网址以供立即使用(在仍播放之前缓冲有些延迟)
  4. 以临时方式存储视频网址缓存(以防用户滚动并向后滚动)
  5. 开始将视频写入文件并在完成时从临时缓存中删除视频

通过当前设置,视频在下载后可以高效播放。但是,如果尚未下载视频,并且用户滚动到该视频,则上述(#1/2)的完成和缓冲播放所需的时间过长。我已经在使用OperationQueues并将当前视频优先于其他任何背景视频-但这还不够快。

TikTok视频几乎总是在用户滚动时提供。什么秘密?

感谢您的帮助!

ios swift firebase video firebase-storage
1个回答
-1
投票

您实际上无法执行任何代码来加快从Cloud Storage的下载。问题在于云存储不是视频流平台,而是对象存储平台。经过优化,可以一次上传和下载对象。

[其他看上去下载视频速度更快的应用可能正在使用某些特殊的视频流技术,并且可能还会在视频开始以最适合客户端应用的速度开始流之前渲染一个小的缩略图。 Cloud Storage不会为您做这些事情。您应该研究针对视频流进行了优化的服务。 (对于软件和服务的建议不在堆栈溢出的主题之列。)

© www.soinside.com 2019 - 2024. All rights reserved.