[[AVPlayer alloc] initWithURL:_URL];
创建资产:
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:self.URLoptions:@{AVURLAssetPreferPreciseDurationAndTimingKey : @(YES)}];
异步加载可播放键:
NSArray *keys = @[@"playable"];[asset loadValuesAsynchronouslyForKeys:keys completionHandler:^{ dispatch_async(dispatch_get_main_queue(),^{ for (Nsstring *key in keys) { NSError *error; AVkeyvalueStatus status = [asset statusOfValueForKey:key error:&error]; if (status == AVkeyvalueStatusFailed) { NSLog(@"Failed to load asset key %@ error %@",key,[error localizedDescription]); [self fail]; return; } } if (asset.isPlayable) { [self.player replaceCurrentItemWithPlayerItem:self.playerItem]; } else { [self fail]; } });}];
问题是,当设备没有互联网连接或高丢包时,永远不会调用completionHandler(即使在等待几分钟后),因此我不知道何时向用户显示加载视频失败的消息.
我的问题是:
>我错过了什么/有没有更好的方法来处理这个?
>我应该滚动自己的超时逻辑,还是应该永远不会异步加载值:当可达性认为网络无法访问时.
>有关AVPlayer和网络故障的最佳做法是什么?
以上是内存溢出为你收集整理的ios – AVPlayer / AVPlayerItem如何通知我的应用程序无法访问网络故障?全部内容,希望文章能够帮你解决ios – AVPlayer / AVPlayerItem如何通知我的应用程序无法访问网络故障?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)