我有一个正在使用 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];
最佳答案
您可以尝试捕捉视频的缩略图。并尝试设置它。
关于ios - 捕获正在运行的视频的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19658362/