我最近开始使用AVPlayer将视频添加到ios应用程序。但是现在我必须以块(HLS)获取视频数据而不是将所有数据放在一起,但我无法理解这种播放概念之间的区别以块的形式获得的数据或完全获得的全部数据如下所示。我已经尝试了解这个事情,并在互联网上查找示例,但得到了与我已经实现的相同的东西。请提供您的建议和指导,以帮助我移动提前谢谢!
-(void)playVideo:(NSURL*)videoURL
{
AVPlayerItem* playerItem = [AVPlayerItem playerItemWithURL:videoURL];
AVPlayer* playVideo = [[AVPlayer alloc] initWithPlayerItem:playerItem];
_playerViewController = [[AVPlayerViewController alloc] init];
_playerViewController.player = playVideo;
_playerViewController.view.frame = self.view.bounds;
[self.view addSubview:_playerViewController.view];
[playVideo play];
}
答案 0 :(得分:0)
从Apple阅读此Document。
当你开始玩家时,并不意味着玩家已经准备好玩了。您应该观察玩家status
,直到获得AVPlayerStatusReadyToPlay
身份。
从您的代码中,您启动播放器并直接开始播放视频。您应该通过以下代码观察玩家的状态。
[player addObserver:self forKeyPath:@"status" options:0 context:&PlayerStatusContext];