【发布时间】:2019-10-10 13:26:23
【问题描述】:
ExoPlayer 具有很好的下载视频供以后离线使用的功能。它还提供了 CacheEvictor,用于在磁盘空间不足时选择行为。但是,我想为用户提供在开始下载之前清理一些空间的可能性,或者选择质量较差以减少空间消耗的机会。
由于我们讨论的是自适应流,而不是单个 mp4 文件,因此了解所需的磁盘空间似乎并非易事。我对一个相当准确的估计很好,但即使这样我也想不出来。自然,它必须在用户选择要下载的比特率之后和实际下载之前可用。 Download 类有 contentLength 变量,但它似乎为零(在自适应流上?)。 DownloadRequest 有 streamKeys 作为选定流的索引,但我还没有找到可以使用它们的任何地方。从我们自己的元数据中,我可以以秒为单位找出流的长度,所以我想我正在寻找三种替代方案:
- 一种获取开始下载的估计字节数的方法,
- 一种获取与选定 streamKeys 或相关的所有流的选定比特率的方法
- 一种让 ExoPlayer 本身在空间不足时不开始下载的方法
我认为中间的最有可能可用。有什么想法或知识吗?
【问题讨论】:
标签: android exoplayer offline-caching exoplayer2.x