我有一个正在使用 MPMoviePlayerViewController 播放的视频,我想在每 1 秒后捕获一次屏幕截图,因为我想对捕获的图像上存在的个人执行一些操作。
我正在使用以下代码来捕获屏幕截图----
CGRect contectRect = CGRectMake(0, 0, 1024,768);
UIGraphicsBeginImageContext(CGSizeMake(1024,768));
[_player.moviePlayer.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
NSLog(@"view size %f %f",viewImage.size.width,viewImage.size.height);
UIGraphicsGetImageFromCurrentImageContext();
CGImageRef imageRef1 = CGImageCreateWithImageInRect([viewImage CGImage], contectRect);
UIImage *image = [UIImage imageWithCGImage:imageRef1 scale:1.0orientation:viewImage.imageOrientation];
但在这我总是得到一个黑色的图像。
我知道还有另一种从视频中获取图像的方法,即跟随,但我不想使用这些图像,因为这些图像不符合我的要求。
AVAsset *asset = [AVAsset assetWithURL:[NSURL URLWithString:path]];
AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc]initWithAsset:asset];
CMTime time = CMTimeMake(1, 1);
UIImage *thumbnail = [UIImage imageWithCGImage:[imageGenerator copyCGImageAtTime:time actualTime:NULL error:NULL]];
[UIImagePNGRepresentation(thumbnail) writeToFile:imgName atomically:YES];