2013-10-15 6 views
6

iOSカメラアプリの開発にGPUIImageライブラリを使用しています。アプリは2〜3分後に中断されたときに時々、Xcodeはメソッド内の行を指して、私のアプリのクラッシュを与える:OpenGLで不思議なアプリがクラッシュする

- (void)presentBufferForDisplay; 
{ 
    [self.context presentRenderbuffer:GL_RENDERBUFFER]; 
} 

おそらくこのクラッシュの理由かもしれませんか?私は本当に長いカメラを設定しており、コード自体はGPUImageContextクラスにあります。私はここで間違っているかもしれませんか?

+0

Xcodeは必ずしもクラッシュの原因となる行を指しているとは限りません。たとえば、アプリケーションがクラッシュしたときには、それが間違っていなくても、通常はメインスレッドを指しています。だから、エラーは多分あなたのコードをレンダリングから来ている。 – BlueSpud

答えて

9

アプリケーションがバックグラウンドで実行中(一時停止中)であれば、OpenGL ESにはまったくアクセスできません。 GPUImageは、すべての目的でOpenGL ESを使用します。アプリケーションがGPUImage(ビデオのフィルタリング、画像の処理)で行っているすべての作業が、アプリケーションがバックグラウンドへの移行を完了する前に完了していることを確認する必要があります。

UIApplicationWillResignActiveNotificationをリッスンするか、バックグラウンドに移行するための関連するデリゲートコールバックを記入してください(カメラ入力の-pauseCameraCaptureメソッドを使用してカメラキャプチャを一時停止するか、処理が完了するまで待ちます)。私は、GPUImageシリアルディスパッチキューへの同期ディスパッチがこれを担当すると信じています)。

これに関する関連の説明は、GitHubの問題ページ:https://github.com/BradLarson/GPUImage/issues/197およびその他の関連する問題に記載されています。

関連する問題