这是一个非常奇怪的错误 .
我有一个tableView与每个单元格使用 AVPlayer
从远程服务器流式传输视频(想想类似Vine的时间轴) . 因此,当我滚动时,重新使用的单元格会使用新视频重新配置其播放器 .
问题是:如果我来回滚动非常快,将相同的视频输入和输出屏幕,AVPlayer发送的请求最终会发生变化,包括HTTP标头 If-None-Match
和 If-Modified-Since
,其余部分不存在 . 时间 . 它系统地使服务器返回 304 Not Modified
响应 .
这不是_I33723_的playerItem,它将其状态更改为 AVPlayerItemStatusFailed
(有趣的是,AVPlayer的状态仍为 AVPlayerStatusReadyToPlay
) . 错误是 AVErrorUnknown
( - 11800),其中包含OSStatus -12983(未在任何地方记录,并且整个iOS SDK中没有 Headers ) .
那个's when it gets weird: whatever I do next, the AVPlayer and its playerItem are irrevocably burnt. Even if I reconfigure them with another asset, they' ll只返回这个状态并显示一个黑框 . Weirder仍然:即使我初始化另一个AVPlayer,AVPlayerItem和AVAsset,它也不会再玩了,我必须杀死并重新启动应用程序 .
在这一点上,我很无能为力 . 知道这里发生了什么吗?防止播放器在其连接中包含这些标头会修复它,但它不会暴露其请求序列化器 .