iPhone用の動画編集アプリを作っています。
ユーザーがビデオ編集を設定してからレンダリングを開始すると、明らかに時間がかかります。ユーザーがホーム ボタンを押すと、アプリケーションは最小化されますが、レンダリングは続行さapplicationDidEnterBackground:
れ、レンダリング プロセスが終了しない限り呼び出されません。
iPhone用の動画編集アプリを作っています。
ユーザーがビデオ編集を設定してからレンダリングを開始すると、明らかに時間がかかります。ユーザーがホーム ボタンを押すと、アプリケーションは最小化されますが、レンダリングは続行さapplicationDidEnterBackground:
れ、レンダリング プロセスが終了しない限り呼び出されません。
レンダリングを実行するコードを投稿できますか?
完了するのに時間がかかるブロッキング呼び出しであり、メインの実行ループで実行している場合は、実行ループが詰まっています。レンダリングコードはapplicationDidEnterBackground
、呼び出される前に終了する必要があります。これに時間がかかりすぎると、iOSは代わりにアプリケーションを強制終了します。また、UIがフリーズしますが、これは絶対に望ましくありません。
最も可能性の高い解決策は、レンダリングコードをバックグラウンドスレッドに移動することですが、実際には何をしているかによって異なります。