この質問は次の拡張です: iOS アプリからスクリーンショットを撮る - ディスプレイ レコーダーをエミュレートする (内部のクエリ)
バックグラウンドからスクリーンショットを撮るには 2 つの方法があります -
iOS サーフェスからイメージを作成して保存する- 非常に高速でキャプチャします (約 0.2 ~ 0.3 秒 / 12 ~ 15 のスクリーンショット) 。
次のコードは、createScreenIOSurface API を使用して同じジョブを実行します。
IOSurfaceRef surface = [UIWindow createScreenIOSurface]; UIImage *surfaceImage = [[UIImage alloc] _initWithIOSurface:表面の向き:UIImageOrientationUp]; CFRelease(表面); UIImageSaveToPhotosAlbum(surfaceImage, self, nil, nil);
ただし、キャプチャ レートは非常に低く、約 0.5 ~ 0.7 秒/スクリーンショットです。
それで、アプローチ1で直面した問題の解決策はありますか?
アプローチ 2 のパフォーマンスを向上させる方法はありますか?