我正在构建应用程序,其中streaming
(默认iOS播放器)处理在线AV Player
。
我想为HD
流媒体添加按钮,我该如何实现?
答案 0 :(得分:0)
我找到的解决方案是确保底层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:实际上会阻塞几秒钟等待此信息下载。