ビデオファイルを読んで処理しています。そのためのコードは、この質問のコードに基づいています。
AVURLAsset * asset = [AVURLAsset URLAssetWithURL:url options:nil];
[asset loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:@"tracks"] completionHandler:
^{
dispatch_async(dispatch_get_main_queue(),
^{
AVAssetTrack * videoTrack = nil;
NSArray * tracks = [asset tracksWithMediaType:AVMediaTypeVideo];
if ([tracks count] == 1)
{
//some code here
[movieReader startReading];
while ([movieReader status] == AVAssetReaderStatusReading)
{
// reading the video code here
}
}
});
});
フレームの処理の進行状況を示す各フレームを処理するときに、UIを更新する必要があります。whileループ内のUIにボタンを挿入しましたが、UIは、ビデオ処理全体が完了したときにのみ更新されます。実際、完了ハンドラブロックで実行されるUI更新は、処理全体の後でのみ実行されます。それを行う方法について何か提案はありますか?