我做了以下内容:重新加载密钥时状态AVKeyValueStatusFailed
- 创建一个新的
AVAsset
与给定的URL。该URL指向远程Web服务器上的视频。 - 尝试通过调用
loadValuesAsynchronouslyForKeys:completionHandler:
- 初始请求失败,我注意到,请求失败致电
statusOfValueForKey:error:
- 加载
tracks
属性,因为没有互联网连接的存在 - 然后我等待连接,重新出现(使用一些可达性代码)。一旦它发生,我再次拨打
loadValuesAsynchronouslyForKeys:completionHandler:
。
以下是问题出现的地方。我会想象,AVAsset
继续并尝试重新加载轨道属性,因为它以前失败。但是,这似乎并没有发生。 statusOfValueForKey:error:
仍然会返回AVKeyValueStatusFailed
,尽管有效的互联网连接可用且视频可播放。
有没有办法重置这个给定属性的状态并尝试另一个负载?有其他解决方法吗?
只是一种可能性,你试过'cancelLoading'后失败了吗? – Peres
你在检查每个键吗?每个键都有自己的状态,并随机出现(不是真的,但这是它如何感觉时间上的明智),而不是全部在同一时间。视频流的第一条规则是它比它看起来更奇怪 – Michael