我正在使用AVPlayer播放HTTP Live Streaming视频。
有没有办法访问播放器缓存的数据并将其保存到本地?
我正在使用AVPlayer播放HTTP Live Streaming视频。
有没有办法访问播放器缓存的数据并将其保存到本地?
简而言之,这并非不可能,但结果很可能不会太好。
请注意,HTTP视频流实际上包含多个带宽流。每个流都分为较小的MPEG传输流块。
要播放这些流,AVPlayer通常会选择其中一个可用的带宽流,并开始预加载和播放。现在,AVPlayer开始提高要求,并开始从更高的带宽流下载块。AVPlayer会再次提高要求,直到到达最高可用带宽。一旦AVPlayer识别出在其队列中保持某个可播放长度的预加载存在问题,该过程将被反转。因此,在网络吞吐量降低的情况下,会选择更低的带宽流。虽然没有明确说明确切的实现细节,但大致上就是这样工作的。
现在想象一下,如果您在本地存储/缓存这些数据。您将获取各种带宽TS块混合-无法直接播放。此外,由于移动设备上的文件系统访问相当昂贵,因此还会对此过程产生额外的负载。
总体而言,我认为这并非完全不可能,但并不容易。我曾经阅读过有人尝试在这个问题上使用文件系统管道,但他们从未让它起作用。