我想用慢动作在iOS设备上显示video。 我的视图包含一个video(约2秒长)和一个滑块。 用户可以逐个移动滑块并逐步(向前和向后)通过电影。 MPMoviePlayerController缺乏逐帧逐帧的能力。 我读了关于MVAssetReader ,但我没有具体的想法如何使用这个。 我没有固定的帧率,所以它应该从video的元数据中取出这些信息。 我真的需要展示每一帧。 有人能给我一个线索吗?
我试图编辑现有的电影与顶部的附加效果,因此我需要能够扫描所有电影帧,获得他们作为UIImage,应用效果,然后或者更新该帧或写入到新的电影。 我发现有人build议使用AVAssetImageGenerator。 下面是我最后编辑的样品,我如何做到这一点: -(void)processMovie:(NSString*)moviePath { NSURL* url = [NSURL fileURLWithPath:moviePath]; AVURLAsset *asset=[[AVURLAsset alloc] initWithURL:url options:nil]; float movieTimeInSeconds = CMTimeGetSeconds([movie duration]); AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset]; generator.requestedTimeToleranceBefore = generator.requestedTimeToleranceAfter = kCMTimeZero; generator.appliesPreferredTrackTransform=TRUE; [asset release]; // building array of time with steps as 1/10th of second NSMutableArray* arr = [[[NSMutableArray alloc] init] retain]; for(int i=0; i<movieTimeInSeconds*10; […]
我生成一个UIWebView到我的viewDidLoad方法,具有一个小尺寸(让我们说像50×70)。 然后我把它放入一个超级UIView。 我想使其内容适合webView框架。 要做到这一点,我写道: oneView = [[UIWebView alloc] initWithFrame:CGRectMake(x, y, W, H)]; oneView.backgroundColor = [UIColor whiteColor]; oneView.autoresizingMask = UIViewAutoresizingFlexibleWidth; oneView.scalesPageToFit = YES; oneView.autoresizesSubviews = YES; [self.view addSubview:oneView]; [oneView loadRequest:/*some request*/]; 但是这样做,网页不会调整到UIWebView的框架。 它似乎被缩放到其他的东西,小于超视图的框架,比webview的更广泛。 如果我将webview框架大小设置为整个超级视图的大小,那就没问题。 我如何强制网页内容(真正的www内容),以适应“减less”UIWebView的框架?