Как загрузить несколько локальных файлов с AVFoundation - PullRequest
0 голосов
/ 21 февраля 2011

Я хочу использовать AVFoundation для загрузки и воспроизведения файлов фильмов. Первая проблема, с которой я столкнулся - это попытка загрузить несколько локальных файлов. Код, который я нашел, позволяет мне загрузить только один. Если я вызываю метод ниже, он выходит с исключением:

Завершение работы приложения из-за невыполненного исключения «NSRangeException», причина: «Невозможно удалить наблюдателя для ключевого пути« currentItem.nonForcedSubtitleDisplayEnabled », поскольку оно не зарегистрировано в качестве наблюдателя».

Спасибо за любой совет

- (IBAction)loadAssetFromFile:(NSString*)fileName withExtension:(NSString*)extension {</p> <pre><code>NSURL *fileURL = [[NSBundle mainBundle] URLForResource:fileName withExtension:extension]; AVURLAsset *asset = [AVURLAsset URLAssetWithURL:fileURL options:nil]; NSString *tracksKey = @"tracks"; [asset loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:tracksKey] completionHandler: ^{ // Completion handler block. NSError *error = nil; AVKeyValueStatus status = [asset statusOfValueForKey:tracksKey error:&error]; if (status == AVKeyValueStatusLoaded) { self.playerItem = [AVPlayerItem playerItemWithAsset:asset]; [playerItem addObserver:self forKeyPath:@"status" options:0 context:&ItemStatusContext]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerItemDidReachEnd:) name:AVPlayerItemDidPlayToEndTimeNotification object:playerItem]; self.player = [AVPlayer playerWithPlayerItem:playerItem]; [playerView setPlayer:player]; } else { // Deal with the error appropriately. NSLog(@"The asset's tracks were not loaded:\n%@", [error localizedDescription]); } }];

}

1 Ответ

0 голосов
/ 24 февраля 2011

ой, я понял это сам, проверьте мой ответ на этот вопрос: MPMoviePlayerController переключение фильмов вызывает белую вспышку

...