2014-09-06 200 views
1

我正在使用GPUImage庫開發iOS相機應用程序。iOS應用程序崩潰與[GPUImageContext presentBufferForDisplay]

我發現GPUImageContext有時會崩潰。 我注意到它通過Crashlytics Crash報告, 和應用程序崩潰在GPUImageContext.m行196,方法。

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

我確認下面的問題,但我支持下面的情況。
Mysterious app crash with OpenGL

有沒有人提出這次事故的原因? 我收到崩潰報告,大多數崩潰(90%)出現在iPod中。

+0

解決這個問題?我有同樣的問題。 – 2015-08-10 09:47:12

+0

我無法解決這個問題,所以我使用AVFoundation API來避免崩潰。 – 2015-08-10 09:52:01

+1

我得到了答案,我們必須停止應用程序在後臺進行電影處理。 – 2015-08-10 13:29:40

回答

3

當您的應用程序在後臺運行(暫停)時,您根本無法訪問OpenGL ES。 GPUImage使用OpenGL ES處理它所做的一切。您必須確保應用程序完成向後臺轉換之前所做的所有GPUImage工作(過濾視頻,處理圖像)。

您需要偵聽UIApplicationWillResignActiveNotification或填寫相關代表回調以轉換到背景,並在那裏暫停任何相機捕捉(通過相機輸入上的-pauseCameraCapture方法)或等待任何處理完成(我相信一個到GPUImage串行調度隊列的同步調度將解決這個問題)。

有關此問題的相關討論可以在此處的GitHub問題頁面上找到:https://github.com/BradLarson/GPUImage/issues/197以及幾個相關問題。