这是一个非常奇怪的错误 .

我有一个tableView与每个单元格使用 AVPlayer 从远程服务器流式传输视频(想想类似Vine的时间轴) . 因此,当我滚动时,重新使用的单元格会使用新视频重新配置其播放器 .

问题是:如果我来回滚动非常快,将相同的视频输入和输出屏幕,AVPlayer发送的请求最终会发生变化,包括HTTP标头 If-None-MatchIf-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,它也不会再玩了,我必须杀死并重新启动应用程序 .

在这一点上,我很无能为力 . 知道这里发生了什么吗?防止播放器在其连接中包含这些标头会修复它,但它不会暴露其请求序列化器 .