【问题标题】:tvOS - Best way to manage downloaded videos and images while app is runningtvOS - 在应用程序运行时管理下载的视频和图像的最佳方式
【发布时间】:2015-10-20 01:40:12
【问题描述】:

我了解到 tvOS 没有持久的本地存储。任何存储的数据或任何下载的数据都将随时被删除。

那么,在应用运行时跟踪下载的图像和视频的最佳方法是什么?我打算制作一个基本上是图像和视频幻灯片的应用程序。图片/视频将在幻灯片放映期间在后台下载。

图像/视频的数量可能会变大,所以当我尝试显示视频时,视频可能已被删除。

【问题讨论】:

    标签: xcode swift tvos apple-tv


    【解决方案1】:

    Apple TV 上的应用没有永久性本地存储。这意味着为新 Apple TV 开发的每个应用程序都必须能够将数据存储在 iCloud 中并以提供出色客户体验的方式检索数据。

    使用 NSUserDefaults 只能存储 1mb。

    我认为你最好的选择是使用 iCloud。

    来源:https://developer.apple.com/library/prerelease/tvos/documentation/General/Conceptual/AppleTV_PG/

    【讨论】:

    • 我希望幻灯片“流畅”。假设我想展示 10 个视频。我将展示第一个下载的视频并在后台下载其他视频。接下来将显示完成下载的视频。播放完 10 个视频后,我想循环播放,所以我尝试再次播放第一个视频。但我的理解是第一个视频可能不再可用。如果视频不可用,则必须“暂停”幻灯片才能重新下载。我想我必须继续检查下一个视频是否可用,如果不重新下载?想知道是否有这样做的好方法。
    • 那你最好使用流媒体。请记住,Apple tv 将始终连接到互联网。编辑:您可以将 URL 传递给 av 播放器。您不必将视频作为资产
    【解决方案2】:

    我的应用程序有相同的要求,我设法通过在 .CachesDirectory 中创建自己的持久性缓存来解决它。我将下载的视频和图像,以及核心数据数据库文件直接存储在其中。你只需要确保你的应用程序可以处理偶尔被iOS“清除”,并优雅地处理它。

    我准备在 github 上开源它,但是 beta 版本在以下目录中可用。

    https://bitbucket.org/satoshinakajima/swipebeta

    在您的 Xcode 中打开示例项目,并查看“网络”组中的文件,例如 SwipeAssetManager.swift 和 SwipeConnection.swift,它们是持久缓存实现。您可能几乎可以按原样重复使用它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      • 2014-10-19
      • 2014-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多