Опитвам се да възпроизвеждам видео с новия AVPlayerViewController, въведен в XCode 6.
За да възпроизвеждам видео, направих тази настройка.
Използване на локален mp4 файл за възпроизвеждане на видео
Разширен AVPlayerViewController
Код за настройка на плейъра:
-(void)setupPlayer
{
NSString* filePath = [[NSBundle mainBundle] pathForResource:@"exodus_trailer" ofType:@"mp4"];
NSLog(@"File Path : %@",filePath);
AVAsset *avAsset = [AVAsset assetWithURL:[NSURL URLWithString:filePath]];
AVPlayerItem *avPlayerItem =[[AVPlayerItem alloc]initWithAsset:avAsset];
self.player = [[AVPlayer alloc]initWithPlayerItem:avPlayerItem];
[self.player addObserver:self forKeyPath:@"status" options:0 context:nil];
[self.player play];
}
Бравене с KVO:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if (object == self.player && [keyPath isEqualToString:@"status"])
{
if (self.player.status == AVPlayerStatusFailed)
{
NSLog(@"AVPlayer Failed");
}
else if (self.player.status == AVPlayerStatusReadyToPlay)
{
NSLog(@"AVPlayerStatusReadyToPlay");
[self.player play];
}
else if (self.player.status == AVPlayerItemStatusUnknown)
{
NSLog(@"AVPlayer Unknown");
}
}
}
Проблем:
Журналът на KVO отпечатва AVPlayerStatusReadyToPlay и пътят на файла изглежда ок. Преди изгледът поне показваше плейър с всички контроли по подразбиране, но сега без никакви промени започна да показва логото на Quick time без никакъв контрол. Какво означава показването на това лого? какво правя грешно тук?
Екранна снимка: