如果这个问题听起来很愚蠢,我很抱歉。 我有一个由另一个项目生成的图像数组,我想尽可能快地将它们显示在屏幕上,将它们组装成animation。 我应该如何做到这一点,以达到帧率至less高于30FPS? 我是iOS开发新手,我不知道从哪里开始。 我应该看看核心animation或OpenGL或Quartz2D或其他? 有人可以指点我一个方向吗? 非常感谢! 真的很感谢帮助。
我试图找出如何通过AVPlayer检索video帧率。 AVPlayerItem有一个速率variables,但它只返回一个介于0和2之间的值(通常在播放时为1)。 任何人有一个想法如何获得video帧率? 干杯
在WWDC 2012 Session 506中,他们在应用程序中的UILabel上显示每秒帧数,而无需使用附加到乐器的Core Animation分析器。 我想这样做是为了方便,也让我的团队的其他成员监视FPS,因为他们在真实世界的场景中使用应用程序。 不幸的是,会议506不包含在WWDC '12示例代码中。 有谁知道如何做到这一点? 我知道Cocos2D在CCDirector有这个function,但是他们的方法似乎是专门针对Cocos2D渲染的。 它没有必要是公开的API,因为我不会把这个代码发送给客户。
由于我们正在以programmatically进行讨论,因此乐器不在考虑之列。 提前列出一些参考资料: 计算iphone应用程序的fps(每秒帧数) iOS屏幕上显示FPS(无仪器) iOS界面以什么帧率运行animation? 1.使用CADisplayLink 根据文件, 持续时间属性提供了帧之间的时间量。 您可以在您的应用程序中使用此值来计算显示的帧速率… 所以在我的演示项目中,我将一个displayLink添加到mainRunLoop for UITrackingRunLoopMode: self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(screenDidUpdated)]; [self.displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:UITrackingRunLoopMode]; 并使用duration来计算FPS。 但是出于我的预期, duration总是0.016667(〜FPS 60),不pipetableView是否顺利滚动。 我如何使tableView滞后是添加一行- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath : NSData *data = [NSData dataWithContentsOfURL:url]; 然后我转向displayLink.timestamp ,它工作。 2.观察drawRect: 我的第二个想法是观察drawRect:我认为当tableView滚动时,它的drawRect:将被逐帧调用,然后我可以根据drawRect: callings之间的时间差来计算FPS。 但它失败了,导致drawRect:只被调用一次(而单元格多次)。 这种方法类似于Using CADisplayLink ,但也许我select了错误的位置/方法(如drawRect: Using CADisplayLink来观察,我推荐的方法是观察? 问题: 仪器如何精确测量FPS? 文件是using duration to calculate FPS错误的吗? […]
我在写一个iOS游戏,使用SpriteKit。 在游戏过程中,显然是随机的,帧速率将从60 FPS下降到40 FPS(总是40)。 我正在iPhone 6上运行这个版本。在编译发布和debugging的时候,这个bug是存在的。 我通常在屏幕上一次有30个左右的节点(有时候比较less),其中大部分节点都有物理实体,但是除了5个以外,其他的都是dynamic设置为NO 。 上述的物理实体不会相互碰撞,但是它们会与玩家节点发生碰撞。 玩家节点没有快速移动,而且一次只能触摸5个左右的节点。 当玩家节点与其他一些物理实体接触时,其dynamic属性被设置为YES 。 也许值得一提的是,我有一些UIView和UIImageView覆盖SKView的顶部,充当HUD。 这让我觉得这不是一个特别强烈的模拟。 我已经通过我的- update:方法,行动,联系侦听器等,没有发现任何可能造成这一点。 我在乐器(时间分析器)中度过了最后几天,希望能对这件事情有所了解,但是我还没有发现任何可以跳出来的东西。 不过,我承认对仪器来说还是比较新的。 现在,我没有办法重现错误。 我只是玩游戏,希望能遇到它。 有时会在场景加载(相当less见)时发生,只是在正常的游戏过程中,或者根本不存在。 如果我暂停游戏(暂停视图和场景),并恢复它,则帧速率会恢复。 有时帧速率会在几秒钟后恢复正常。 我完全不知道该怎么做。 任何帮助将非常感激。 提前致谢。
我正在开发一个应用程序,需要尽可能多地捕捉framebuffer。 我已经想出了如何强制iPhone以60 fps捕捉,但是 – (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection 方法每秒仅调用15次,这意味着iPhone会将捕捉输出降级到15 fps。 有没有人遇到这样的问题? 有没有可能增加捕捉帧率? 更新我的代码: camera = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; if([camera isTorchModeSupported:AVCaptureTorchModeOn]) { [camera lockForConfiguration:nil]; camera.torchMode=AVCaptureTorchModeOn; [camera unlockForConfiguration]; } [self configureCameraForHighestFrameRate:camera]; // Create a AVCaptureInput with the camera device NSError *error=nil; AVCaptureInput* cameraInput = [[AVCaptureDeviceInput alloc] initWithDevice:camera error:&error]; if (cameraInput == nil) { NSLog(@"Error to create camera […]
我想要在iOS6中的video的所有帧到NSArray 。 我使用这个代码: -(void) getAllImagesFromVideo { imagesArray = [[NSMutableArray alloc] init]; times = [[NSMutableArray alloc] init]; for (Float64 i = 0; i < 15; i += 0.033) // For 25 fps in 15 sec of Video { CMTime time = CMTimeMakeWithSeconds(i, 60); [times addObject:[NSValue valueWithCMTime:time]]; } [imageGenerator generateCGImagesAsynchronouslyForTimes:times completionHandler:^(CMTime requestedTime, CGImageRef image, CMTime actualTime, AVAssetImageGeneratorResult […]