mpl*_*ert 5 avfoundation ios avasset
我正在做以下事情:
AVAsset使用给定的URL 创建新的.该URL指向远程Web服务器上的视频.tracks通过调用加载属性loadValuesAsynchronouslyForKeys:completionHandler:statusOfValueForKey:error:loadValuesAsynchronouslyForKeys:completionHandler:再次打电话.这是问题开始的地方.我想这AVAsset会继续并试图重新加载track属性,因为它之前失败了.但是,这似乎不会发生.statusOfValueForKey:error:仍然会返回AVKeyValueStatusFailed,虽然有可用的互联网连接,视频可播放.
有没有办法重置此给定属性的状态并尝试另一个加载?还有另一种解决方法吗?
loadValuesAsynchronouslyForKeys:completionHandler:您是否分派回主线程?如果您准备重试时再次调用此方法(或类似的方法),会发生什么情况。
- (void)setContentURL:(NSURL *)contentURL
{
if (_contentURL != contentURL) {
_contentURL = contentURL;
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:_contentURL options:nil];
NSArray *requestedKeys = [NSArray arrayWithObjects:ISIVideoPlayerControllerTracksKey, ISIVideoPlayerControllerPlayableKey, nil];
[asset loadValuesAsynchronouslyForKeys:requestedKeys completionHandler: ^{
dispatch_async(dispatch_get_main_queue(), ^{
[self prepareToPlayAsset:asset withKeys:requestedKeys];
});
}];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2962 次 |
| 最近记录: |