在iOS中截取UIView的屏幕截图

时间:2012-02-26 21:53:30

标签: ios cocoa-touch uiview

我正在运行iOS 4.3&试图拍摄正在播放电影的UIView的截图。 问题是截图(在模拟器中)结果只是一个黑色背景&不是我希望的电影形象。我的代码如下,任何想法可能是什么?提前谢谢:)

- (void) takeScreenshot;
{

    UIGraphicsBeginImageContextWithOptions(self.frame.size, NO, 0.0);
    [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    UIImageView *movieImage = [[UIImageView alloc] initWithImage:screenshot];
    [self addSubview:movieImage];

}

1 个答案:

答案 0 :(得分:2)

我最终找到了解决这个问题的方法 - 正如上面提到的joerick,因为电影正在使用OpenGL层来绘制视频,所以无法截取(使用renderInContext)。

然而,有一种方法可以拍摄电影的缩略图(如下所示为当前播放时间):

UIImage *image = [moviePlayer thumbnailImageAtTime:moviePlayer.currentPlaybackTime timeOption:MPMovieTimeOptionNearestKeyFrame];  

希望这可以帮助某人:)