Я пытаюсь воспроизвести видео с помощью нового 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 без какого-либо управления. Что означает показ этого логотипа? что я здесь делаю неправильно?
Скриншот: