#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 без звуковой дорожки, просто чтобы посмотреть, связано ли это с форматом.