1

AVCaptureVideoPreviewLayerのインスタンスは、メイン スレッドがブロックされている間でも、ビデオ キャプチャ ストリームからコンテンツを更新し続けます。のカスタム サブクラスを使用して、この動作を一般的に複製することは可能CALayerですか? つまり、生の画像データが与えられた場合、メイン スレッドがブロックされている間に画面に表示されるものを更新できますか?

4

2 に答える 2

3

メイン スレッドがブロックされている場合、ビュー内の何も更新できません。UIKit 全体がシングルスレッドであり、メイン イベント ループで実行されます。ビデオ キャプチャは、画面バッファーに直接描画されるため特殊なケースですが、自分で複製することはできません。

さらに、メイン スレッドで実行時間の長いタスクを実行すると、iOS はアプリがクラッシュしたと見なし、とにかく数秒後にアプリを強制終了します。

代わりに、バックグラウンド スレッドで他のタスクを実行してみませんか? それが標準的なやり方です。

于 2012-02-03T20:37:54.910 に答える