我正在构建由streaming
(默认iOS播放器)处理在线AV Player
的应用程序。
我想为HD
流添加按钮,如何实现?
最佳答案
我发现的解决方案是确保基础AVAsset
准备好将基本信息(例如持续时间)返回给AVPlayer。 AVAsset有一个loadValuesAsynchronouslyForKeys:
方法,它很方便:
AVAsset *asset = [AVAsset assetWithURL:self.mediaURL];
[asset loadValuesAsynchronouslyForKeys:@[@"duration"] completionHandler:^{
AVPlayerItem *newItem = [[AVPlayerItem alloc] initWithAsset:asset];
[self.avPlayer replaceCurrentItemWithPlayerItem:newItem];
}];
在我的情况下,URL是网络资源,replaceCurrentItemWithPlayerItem:实际上将阻塞几秒钟,等待此信息下载。