Ошибка AVAssetImageGenerator iOS 4.2.1?

#iphone #objective-c #ios

#iPhone #objective-c #iOS

Вопрос:

Я пытаюсь сгенерировать изображение из видео mp4, но на iPhone iOS 4.2.1 это не удастся из-за этой ошибки

Ошибка Domain=AVFoundationErrorDomain Code =-11800 «Не удалось завершить операцию. (Ошибка AVFoundationErrorDomain -11800.)» userInfo=0x140c00 {NSUnderlyingError=0x13e520 «Не удалось завершить операцию. (Ошибка OSStatus -12911.)»}

Он отлично работает на iOS 4.3.1 и simulator 4.2 / 4.1.

 NSString *path = [[NSBundle mainBundle] pathForResource:@"evil" ofType:@"mp4"];
NSURL *url = [NSURL fileURLWithPath:path];
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil];

AVAssetImageGenerator *imageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:asset];
NSError *error = nil;
CGImageRef image = [imageGenerator copyCGImageAtTime:asset.duration actualTime:nil error:amp;error];
if(image == nil) {
    NSLog(@"%@", error);
}
  

Ответ №1:

Источник очень короткий? У нас возникла проблема с созданием эскизов, когда интервал между ключевыми кадрами фильма был длиннее, чем сам фильм — похоже, проблема в том, AVAssetImageGenerator что для создания изображения в файле должно присутствовать как минимум 2 ключевых кадра.

Ответ №2:

Вы проверили, существует ли файл и находит ли его ваша программа? Иногда файлы существуют в пакете вашего проекта, но не в вашей папке. вы можете попробовать скопировать файл в свою папку еще раз (перезаписать его), а затем снова перетащить его в свою папку ресурсов в xcode. У меня это сработало с аналогичной проблемой.

Комментарии:

1. Это и моя первая мысль, но видео действительно воспроизводится, когда я загружаю через AVURLAsset и назначаю его AVPlayer. Ошибка, похоже, связана с генератором изображений. Я также попробовал .mov и mp4 без звуковой дорожки, просто чтобы посмотреть, связано ли это с форматом.