我遇到的问题是从视频加载20张图片需要太长时间.我想要获得的缩略图越多,我就越需要等待.我使用的方法是generateCGImagesAsynchronouslyForTimes.有谁知道为什么我有这个问题?
AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
generator.appliesPreferredTrackTransform = YES;
generator.requestedTimeToleranceAfter = kCMTimeZero;
generator.requestedTimeToleranceBefore = kCMTimeZero;
CGSize maxSize = CGSizeMake(320, 180);
generator.maximumSize = maxSize;
AVAssetImageGeneratorCompletionHandler handler = ^(CMTime requestedTime, CGImageRef im, CMTime actualTime, AVAssetImageGeneratorResult result, NSError *error){
if (result != AVAssetImageGeneratorSucceeded) {
NSLog(@"couldn't generate thumbnail, error:%@", error);
}
UIImage *frameImage = [UIImage imageWithCGImage:im];
dispatch_async(dispatch_get_main_queue(), ^{
[_frameImageView setImage:frameImage];
});
};
[generator generateCGImagesAsynchronouslyForTimes:timeArray completionHandler:handler];
Run Code Online (Sandbox Code Playgroud) 如何AVPlayerLayer在方法中显示精确视频的帧seekToTime.
现在[AVPlayer seekToTime:CMTimeMakeWithSeconds(CMTimeGetSeconds(A, B))],AVPlayerLayer仅在每1秒更改一次显示帧,例如1.50-2.50-3.50.我希望它以4.45秒的速度显示帧.可能吗?
我了解keyPaths的基本概念,但不了解其用例。如果您已经知道实例的类型,则可以轻松访问其属性。如果您不这样做,那么协议已经支持只读,读写属性。有人可以向我解释我所缺少的吗?除了keyPath或keypath比协议更好时,我们无法使用协议做任何事情?
我在ARC下的内存管理方面遇到了一些问题.当我在我的应用程序中使用popViewController时,它们都没有释放内存,有时候不会调用viewcontroller的dealloc.即使在调用dealloc时,内存仍然没有被释放.所以我问什么会占用内存甚至viewController的dealloc方法被调用?什么会导致dealloc不被称为?很少有动画,代表?还要别的吗?
memory-management objective-c dealloc ios automatic-ref-counting