在iOS中截取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];

}

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

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

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

希望这有助于某人:)

点赞