【问题标题】:Preload video files from network for AVQueuePlayer/AVPlayer为 AVQueuePlayer/AVPlayer 从网络预加载视频文件
【发布时间】:2014-03-13 22:39:19
【问题描述】:
我有一个或一组 URL,每个都指向一个 mp4 视频文件。
我为这些视频文件(如 Instagram 视频)提供了类似新闻源的时间线。用户可以上下滚动浏览每个视频。为了使视频加载更快,我想在用户向下滚动到它们之前预加载接下来的几个视频文件。当用户实际滚动到这些文件时,它将开始播放而无需再次从网络下载。
文件将在 AVQueuePlayer 中播放。
有没有办法做到这一点?谢谢大家!
【问题讨论】:
标签:
ios
iphone
avfoundation
avplayer
avasset
【解决方案1】:
我不知道有什么方法可以让 AVQueuePlayer 提前缓冲。
您可以在 AVPlayer 和网络之间创建代理。这将允许您跟踪 AVPlayer 已加载的内容,因此您可以预测性地下载和缓存即将到来的媒体文件,以便在 AVPlayer 请求它们时准备好它们。最干净的方法是注册一个自定义的 NSURLProtocol(注意这在 iOS 模拟器中不起作用)。您还可以在设备上运行服务器,例如 CocoaHTTPServer。