我正在使用AVPlayer播放HTTP Live Streaming视频。

播放器有什么方法可以访问缓存的数据以将其保存到本地?

最佳答案

TLDR;这不是不可能的,但是结果很可能不会那么好。

请记住,HTTP视频流实际上包含多个带宽流。这些中的每一个都被分成较小的MPEG传输流块。

为了播放这些流,AVPlayer通常选择可用带宽流之一,开始预加载并很快也播放。现在,AVPlayer开始提高标准,并开始从更高带宽的流中下载块。 AVPlayer将再次提高标准,直到达到最高可用带宽。一旦AVPlayer识别出在其队列中保留一定的可播放长度时发现问题,该过程将被逆转。因此,如果网络吞吐量降低,则选择较低的带宽流。没有指定确切的实现细节,但这大致就是这样的。

现在想象您将在本地存储/缓存该数据。您会混合使用各种带宽的TS块-没有什么可以开箱即用地播放。另外,由于这些天在移动设备上进行文件系统访问非常昂贵,因此您将在此过程中增加额外的负担。

总的来说,我认为这不是完全不可能的,但一点也不微不足道。我读过一些关于在这个问题上尝试文件系统管道的人,但是他们从来没有使它起作用。

09-04 14:01
查看更多