任何人可以帮助我在这? 我想从一个视频通过MPMediaPlayerController打得到一个屏幕截图。 什么到目前为止,我已经试过是: -
-(void)viewDidLoad
{
NSURL *tempFilePathURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"LMFao" ofType:@"mp4"]];
player = [[MPMoviePlayerController alloc] initWithContentURL:tempFilePathURL];
[player setControlStyle:MPMovieControlStyleFullscreen];
//Place it in subview, else it won’t work
player.view.frame = CGRectMake(0, 0, 320, 400);
[self.view addSubview:player.view];
}
-(IBAction)screenshot
{
CGRect rect = [player.view bounds];
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[player.view.layer renderInContext:context];
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
imgView = [[UIImageView alloc] initWithFrame:CGRectMake(150, 150, 100, 100)];
[imgView setImage:image];
imgView.layer.borderWidth = 2.0;
[self.view addSubview:imgView];
}
而我现在已经有这样的: -
现在的情况是我的球员的按钮越来越捕捉屏幕截图,但使用这种背景下方法来捕获我的形象,因为我有我的视频叠加自己的视频图像没有getting.I'm,使用缩略图的方法我不能捕获视频与叠加,但我想视频的图像与叠加。
编辑:我要的是让这两个视频截图和绘图叠加,如图此图像中
但是,即时得到是一个方法我只拿到了视频在我的截图该方法缩略图法,我就在那做的缩略这是由的MPMoviePlayerController并通过第二种方法即时得到仅覆盖不是在马截图视频给不叠加,即方法方面method.i'm越来越rect.Now的方面,我认为这个解决方案可能是文结合这两种images.So帮我给予的建议是合并的图像将我还是不行???
请help.Thanks :)
U可以合并来自这两个影像way.Please有从下面的代码的样子..
- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
MaskView=[[UIView alloc] init];
UIImageView *image1=[[UIImageView alloc]init];
UIImageView *image2=[[UIImageView alloc]init];
MaskView.frame=CGRectMake(0, 0,500,500);
image1.frame=CGRectMake(0,0,160, 160);
image2.frame=CGRectMake(60,54,40,40);
image1.image=image;
image2.image=maskImage;
[MaskView addSubview:image1];
[MaskView addSubview:image2];
UIGraphicsBeginImageContext(CGSizeMake(160,160));
[MaskView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *finishedPic = UIGraphicsGetImageFromCurrentImageContext();
return finishedPic;
}
你只需要调用一个方法,你mpmovieplayer对象:
- (UIImage *)thumbnailImageAtTime:(NSTimeInterval)playbackTime timeOption:(MPMovieTimeOption)option
此方法将返回一个UIImage对象。 你所要做的仅仅是:
UIImage *thumbnail = [player thumbnailImageAtTime:1.0 timeOption:MPMovieTimeOptionNearestKeyFrame];
更多细节看的MPMoviePlayerController
希望这可以帮助
编辑:在你的方法,你可以先再隐藏显示控件后的玩家的控制,比拍摄图像。 你可以实现这一目标用controlStyle
的MPMoviePlayerController的财产。
不知道这是你在找什么,但它是我的理解。 如果您正在寻找不同的让我知道。
这可能有助于
- (UIImage *)thumbnailImageAtTime:(NSTimeInterval)playbackTime timeOption:(MPMovieTimeOption)option
获取thumbnailImage在给定的时间和规模上的形象。
文章来源: How to take a screenshot from an video playing through MPMediaPlayerController in iPhone?