ExoPlayer具有不错的功能,可以下载视频供以后脱机使用。它还提供CacheEvictor,用于在磁盘空间不足时选择行为。但是,我想为用户提供甚至在开始下载之前就清理一些空间的可能性,或者有机会选择质量较差的产品以减少空间消耗。
由于我们在谈论自适应流,而不是单个mp4文件,因此了解所需的磁盘空间似乎并非易事。我可以提供合理准确的估算,但即使这样我也无法提出。自然,它必须在用户选择要下载的比特率之后且在实际下载之前可用。 Download
类具有contentLength
变量,但似乎为零(在自适应流上?)。 DownloadRequest
使用streamKeys
作为选定流的索引,但是我没有找到可以使用它们的地方。从我们自己的元数据中,我可以找到以秒为单位的流的长度,所以我想我正在寻找三种选择:
我认为最有可能使用的是
。有任何想法或知识吗?
答案 0 :(得分:0)
正如我在问题中指出的那样,使用长度和比特率可以计算出合理的估计值。获取长度应该是微不足道的,并且可能是特定于实现的,为了获得以下选定的比特率(或帮助选择比特率),以下类和方法调用将非常有用(不包括参数和详细信息):
DownloadHelper.getMappedTrackInfo().getRenderedType()
DownloadHelper.getMappedTrackInfo().getRenderedType()
DownloadHelper.getMappedTrackInfo().getTrackGroups().get().getFormat().bitrate