Tôi có một số NSURL có chứa video và tôi muốn quay một khung của video đó mười lần mỗi giây. Và tôi có mã sẽ chụp một hình ảnh của máy nghe nhạc của tôi, nhưng tôi gặp khó khăn khi thiết lập nó để chụp 10 khung hình mỗi giây. Tôi đang cố gắng một cái gì đó như thế này, nhưng nó quay trở lại cùng một khung hình ban đầu của video, số lần chính xác? Dưới đây là những gì tôi có:iOS Chụp nhiều ảnh chụp màn hình
AVAsset *asset = [AVAsset assetWithURL:videoUrl];
CMTime vidLength = asset.duration;
float seconds = CMTimeGetSeconds(vidLength);
int frameCount = 0;
for (float i = 0; i < seconds;) {
AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc]initWithAsset:asset];
CMTime time = CMTimeMake(i, 10);
CGImageRef imageRef = [imageGenerator copyCGImageAtTime:time actualTime:NULL error:NULL];
UIImage *thumbnail = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
NSString* filename = [NSString stringWithFormat:@"Documents/frame_%d.png", frameCount];
NSString* pngPath = [NSHomeDirectory() stringByAppendingPathComponent:filename];
[UIImagePNGRepresentation(thumbnail) writeToFile: pngPath atomically: YES];
frameCount++;
i = i + 0.1;
}
Nhưng thay vì nhận được khung tại thời điểm hiện tại i của đoạn video, tôi chỉ nhận được khung ban đầu?
Làm cách nào để có được khung hình của video 10 lần một giây?
Thanks for the help :)
Câu hỏi tương tự sử dụng Swift http://stackoverflow.com/questions/32286320/grab-frames-from-video-using-swift/32297251 – arpo