我正在通过网络连接接收一系列图像,并希望以最快的速度显示它们,最高 30 FPS。我派生了一个 UIView 对象(因此我可以覆盖 drawRect)并公开了一个名为cameraImage
. 帧数据按需要尽快到达,但实际绘制到屏幕需要太多时间(由于 setNeedsDisplay 的滞后),这既会在视频中造成滞后,也会减慢与其他控件的交互。有什么更好的方法来做到这一点?我虽然使用 OpenGL,但我看到的唯一示例不是用于将静态图像绘制到屏幕上,而是用于向某些旋转多边形添加纹理。
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGRect screenBounds = [[UIScreen mainScreen] bounds];
[self.cameraImage drawInRect:screenBounds];
// Drawing code
//CGContextDrawImage(context, screenBounds, [self.cameraImage CGImage]); // Doesn't help
}