ネットワーク接続を介して一連の画像を受信していますが、最大30FPSまでできるだけ速く表示したいと考えています。UIViewオブジェクトを派生させ(drawRectをオーバーライドできるように)、と呼ばれるUIImageプロパティを公開しました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
}