2012-05-16 12 views
12

Có cách nào khác ngoài phương pháp thu nhỏ để chụp ảnh màn hình của video không? Nếu có thì xin vui lòng cho tôi biết nếu không thì xin vui lòng cho tôi biết làm thế nào để thay đổi kích thước một hình ảnh thu nhỏ với cùng một độ phân giải? tôi đã nhận được một vấn đề trong khi chụp ảnh chụp màn hình của video.i đã sử dụng này: -Có cách nào khác ngoài phương pháp thu nhỏ để chụp ảnh màn hình video trong Iphone không?

How to take a screenshot from an video playing through MPMediaPlayerController in iPhone?

Sau này tôi đã sử dụng kết hợp của một hình ảnh mà tôi nhận được Resolution problem

đây chất lượng hình ảnh này là vấn đề lớn của tôi.

Tôi muốn điều này

Required Output

Tôi muốn chỉ video và bản vẽ thể hiện trong ảnh chụp màn hình ở trên với cùng resultion. Xin hãy giúp Cảm ơn :)

Trả lời

6

Có một cách khác với phương pháp hình thu nhỏ mà tôi có thể lấy ảnh chụp màn hình của video. !!!

Cách là thế này: -

- (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; 
} 

Nhưng vẫn vấn đề của tôi là cùng tôi đang vẽ trên video tôi không thể có được ảnh chụp màn hình video với vẽ lớp phủ, do đó cho rằng tôi đã sử dụng kết hợp các hình ảnh.

Cảm ơn :)

2

Hãy thử mã sau đây.

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]; 
2

Điều này sẽ cung cấp cho bạn ảnh chụp màn hình trình phát video của bạn tại thời điểm bạn muốn. Và đó là phương pháp chuẩn để thu nhỏ hình thu nhỏ của trình phát có tùy chọn thời gian.

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)];