我正在使用AVPlayer来传输音频 . 在开始播放URL之前,我打电话
[self.currentlyLoadingAsset loadValuesAsynchronouslyForKeys:@[@"playable", @"duration"] completionHandler:^{
[self evaluateAssetStatusForEpisode:episode asset:self.currentlyLoadingAsset];
}];
只有当completionHandler执行时,我才会重新评估该项目,看它是否已准备就绪 .
但对于一个用户来说,completionHandler突然没有开火 . 他不能从网络传输音频(但仍然可以播放下载的曲目) . 记录
AVKeyValueStatus status = [asset statusOfValueForKey:@"playable" error:&error];
,我发现状态是连续的AVKeyValueStatusLoading . 它永远不会更新,但AVKeyValueStatusLoading永远不会返回错误 .
我已经尝试将 loadValuesAsynchronouslyForKeys
放在主线程上,删除 duration
键,并使 currentlyLoadingAsset
属性以确保它不会被释放 .