【问题标题】:Detect required disk space for ExoPlayer offline download检测 ExoPlayer 离线下载所需的磁盘空间
【发布时间】:2019-10-10 13:26:23
【问题描述】:

ExoPlayer 具有很好的下载视频供以后离线使用的功能。它还提供了 CacheEvictor,用于在磁盘空间不足时选择行为。但是,我想为用户提供在开始下载之前清理一些空间的可能性,或者选择质量较差以减少空间消耗的机会。

由于我们讨论的是自适应流,而不是单个 mp4 文件,因此了解所需的磁盘空间似乎并非易事。我对一个相当准确的估计很好,但即使这样我也想不出来。自然,它必须在用户选择要下载的比特率之后和实际下载之前可用。 Download 类有 contentLength 变量,但它似乎为零(在自适应流上?)。 DownloadRequeststreamKeys 作为选定流的索引,但我还没有找到可以使用它们的任何地方。从我们自己的元数据中,我可以以秒为单位找出流的长度,所以我想我正在寻找三种替代方案:

  • 一种获取开始下载的估计字节数的方法,
  • 一种获取与选定 streamKeys 或相关的所有流的选定比特率的方法
  • 一种让 ExoPlayer 本身在空间不足时不开始下载的方法

我认为中间的最有可能可用。有什么想法或知识吗?

【问题讨论】:

    标签: android exoplayer offline-caching exoplayer2.x


    【解决方案1】:

    正如我在问题中指出的那样,通过长度和比特率可以计算出合理的估计值。获取长度应该是微不足道的,并且可能是特定于实现的,对于获取选定的比特率(或帮助选择比特率),以下类和方法调用将很有用(不包括参数和细节):

    DownloadHelper.getMappedTrackInfo().getRenderedType() 
    DownloadHelper.getMappedTrackInfo().getRenderedType() 
    DownloadHelper.getMappedTrackInfo().getTrackGroups().get().getFormat().bitrate 
    

    【讨论】:

      猜你喜欢
      • 2022-08-05
      • 2016-12-17
      • 2012-02-01
      • 1970-01-01
      • 2021-07-10
      • 2012-01-23
      • 2014-10-06
      • 2020-07-12
      • 1970-01-01
      相关资源
      最近更新 更多