从块中获取的数据播放视频
问题描述:
我最近开始使用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];
}
答
从Apple阅读Document。
当初始玩家时,并不意味着玩家已准备好玩。您应该观察玩家的status
,直到您获得AVPlayerStatusReadyToPlay
状态。
从您的代码中,您初始化播放器并直接开始播放视频。你应该通过下面的代码观察玩家的状态。
[player addObserver:self forKeyPath:@"status" options:0 context:&PlayerStatusContext];