Я хочу отобразить видеоминиатюру видео с URL-адреса в моем uiimageview для iphone

Можно ли получить первый кадр изображения видео и отобразить его в uiimageview . Мое видео сохраняется на сервере. мне нужно вызвать URL, чтобы воспроизвести видео


person manuthaliath    schedule 31.07.2013    source источник


Ответы (3)


Пример:

NSURL *videoURl = [NSURL fileURLWithPath:videoPath];
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURl options:nil];
AVAssetImageGenerator *generate = [[AVAssetImageGenerator alloc] initWithAsset:asset];
generate.appliesPreferredTrackTransform = YES;
NSError *err = NULL;
CMTime time = CMTimeMake(1, 60);
CGImageRef imgRef = [generate copyCGImageAtTime:time actualTime:NULL error:&err];

UIImage *img = [[UIImage alloc] initWithCGImage:imgRef];
[YourImageView setImage:img];

Надеюсь, поможет..

person lakesh    schedule 31.07.2013
comment
в вопросе прямо говорится, что видео находится на сервере (удаленном). Таким образом, fileURLWithPath, которые используются для URL-адреса файловой системы, неверны - person Heavy_Bullets; 24.08.2013
comment
Привет, лакеш, На самом деле, когда я прокручиваю представление таблицы, представление таблицы зависает, и через некоторое время они прокручиваются..... - person Gurpreet; 13.02.2014
comment
@Gurpreet Мой взгляд застревает, когда я использую такой метод. - person Arpit B Parekh; 17.03.2017
comment
stackoverflow.com/questions/37343358/ это сработало для меня. Просто мне нужно вызвать метод через какой-то промежуток времени, чтобы пользовательский интерфейс не зависал. - person Arpit B Parekh; 17.03.2017

Я использую этот метод, чтобы сделать то же самое

/**
 *  This method retunrs a thumbnail of a Video file
 */

+ (UIImage *)generateThumbnailIconForVideoFileWith:(NSURL *)contentURL WithSize:(CGSize)size
{
    UIImage *theImage = nil;
    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:contentURL options:nil];
    AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
    generator.maximumSize=size;
    generator.appliesPreferredTrackTransform = YES;
    NSError *err = NULL;
    CMTime time = CMTimeMake(100,100); //change whatever you want here.
    CGImageRef imgRef = [generator copyCGImageAtTime:time actualTime:NULL error:&err];
    theImage = [[UIImage alloc] initWithCGImage:imgRef] ;
    CGImageRelease(imgRef);
    return theImage;
}
person Satheesh    schedule 31.07.2013

Вы можете сделать это, используя MPMoviePlayerController, как показано ниже.

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:yourVideoURL];
UIImage *videoThumbnail = [player thumbnailImageAtTime:1.0 timeOption:MPMovieTimeOptionNearestKeyFrame];
[player stop];

Также см. другой ответ с AVURLAsset по этой ссылке получение -thumbnail-from-a-video-url-or-data-in-iphone-sdk

person Paras Joshi    schedule 31.07.2013