我正在使用AVPlayer查看存储在亚马逊CloudFront上的视频 - 使用了Live HTTP协议,播放列表和细分受众群存储在S3上并使用CloudFront进行托管。
播放几段视频后,我开始从AVPlayer项目获取AVPlayerItemStatusUnknown的状态
AVPlayer.currentItem.status == AVPlayerItemStatusUnknown
当选择新的视频播放列表时,此状态仍然存在 - 我在设置新的播放列表网址之前尝试取消分配AVPlayer,并且在我终止应用程序之前,AVPlayerItemStatusUnknown状态仍然存在。
两个问题。是否有人使用Amazaon CloudFront来托管遇到相同问题的视频?有没有人知道一个工作,所以我可以恢复AVPlayer的状态,以防止用户不得不终止该应用程序,以查看更多的视频?
非常感谢,
//亚伦
答案 0 :(得分:0)
对于流媒体,这看起来像是一种正常行为。你为'status'属性添加一个观察者吗?当状态更改为AVPlayerItemStatusReadyToPlay时,您应该开始播放。
[item addObserver:self forKeyPath:@"status" options:0 context:nil];
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"status"]) {
AVPlayerItem *item = (AVPlayerItem *)object;
if (item.status == AVPlayerItemStatusReadyToPlay) {
//Ready
}
}
}
答案 1 :(得分:0)
我发现了问题。简短的回答是它是一个过度保留的AVPlayer,顺便说一句,仪器工具没有注意到使用泄漏模板。抱歉误报。
//亚伦