Подтвердить что ты не робот

Есть ли способ, отличный от метода эскизов, сделать снимок экрана с видео в Iphone?

Есть ли способ, отличный от метода эскизов, сделать снимок экрана для видео? Если да, то, пожалуйста, скажите мне, если нет, то скажите, пожалуйста, как изменить размер миниатюры с той же резолюцией? У меня возникла проблема при съемке снимка видео. Я использовал это: -

Как сделать снимок экрана из видео, воспроизводимого через MPMediaPlayerController в iPhone?

После этого я использовал слияние образа, с помощью которого я получаю этот Resolution problem

здесь качество изображения - моя большая проблема.

Я хочу этого

Required Output

Я хочу только видео и рисунок, показанные на скриншоте с таким же результатом. Пожалуйста, помогите Спасибо:)

4b9b3361

Ответ 1

Существует способ, отличный от метода миниатюр, которым я могу получить снимок экрана.!!!

Как это выглядит: -

- (UIImage *)imageFromVideoURL 
{
// result 
UIImage *image = nil;

// AVAssetImageGenerator
AVAsset *asset = [[AVURLAsset alloc] initWithURL:appDelegate.videoURL options:nil];; 
AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
imageGenerator.appliesPreferredTrackTransform = YES;

// calc midpoint time of video
Float64 durationSeconds = CMTimeGetSeconds([asset duration]);
CMTime midpoint = CMTimeMakeWithSeconds(durationSeconds/2.0, 600); 

// get the image from 
NSError *error = nil; 
CMTime actualTime;
CGImageRef halfWayImage = [imageGenerator copyCGImageAtTime:midpoint actualTime:&actualTime error:&error];

if (halfWayImage != NULL) 
{
    // cgimage to uiimage
    image = [[UIImage alloc] initWithCGImage:halfWayImage];
    [dic setValue:image forKey:kImage];
    NSLog(@"Values of dictonary==>%@", dic);
    NSLog(@"Videos Are:%@",appDelegate.videoURLArray);
    CGImageRelease(halfWayImage);
}
return image;
}

Но все-таки моя проблема такая же, как и на графике, я не могу получить скриншот с рисунком, поэтому для этого я хочу использовать слияние изображений.

Спасибо:)

Ответ 2

Попробуйте использовать следующий код.

    moviePlayer = [[MPMoviePlayerController alloc] init];
    containerView =[[UIView alloc]initWithFrame:CGRectMake(40,130, 240,219)];
    [moviePlayer setContentURL:[NSURL fileURLWithPath:moviePath]];
    [[moviePlayer view] setFrame:CGRectMake(0, 0, containerView.frame.size.width, containerView.frame.size.height)];  // frame must match parent view
    [self.view addSubview:containerView];
    [containerView addSubview: [moviePlayer view]];
    [moviePlayer setFullscreen:YES animated:YES];

Ответ 3

Это даст вам снимок экрана вашего видеопроигрывателя в нужное вам время.   И это стандартный метод, чтобы получить миниатюру игрока с опцией времени.

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
UIImage *thumbnail = [player thumbnailImageAtTime:60.0 timeOption:MPMovieTimeOptionNearestKeyFrame];


UIImageView *imagV=[[UIImageView alloc]initWithImage:thumbnail];
[imagV setFrame:CGRectMake(self.view.center.x, self.view.center.y, 200.0, 200.0)];