2013-10-15 5 views
6

के साथ रहस्यमय ऐप क्रैश IOS कैमरा ऐप विकसित करने के लिए GPUIImage लाइब्रेरी का उपयोग कर रहा हूं। कभी कभी, जब एप्लिकेशन 2-3 मिनट के बाद निलंबित कर दिया है Xcode मुझे एप्लिकेशन पर एक दुर्घटना देता है, विधि में लाइनों की ओर इशारा करते:ओपनजीएल

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

क्या संभवतः इस दुर्घटना के कारण हो सकता है? मुझे वास्तव में एक लंबा कैमरा सेट अप मिला है और कोड स्वयं GPUImageContext कक्षा में है। मैं यहाँ क्या गलत कर रहा हूँ?

+0

एक्सकोड हमेशा उस रेखा को इंगित नहीं करता है जो दुर्घटना का कारण बनता है। उदाहरण के लिए, जब कोई ऐप दुर्घटनाग्रस्त हो जाता है, तो यह सामान्य रूप से मुझे मुख्य धागे पर इंगित करता है, भले ही यह गलती न हो। तो त्रुटि शायद आपके कोड को प्रस्तुत करने से आ रही है। – BlueSpud

उत्तर

9

आप जब अपने आवेदन पृष्ठभूमि में चल रहा सब पर OpenGL ES उपयोग नहीं कर सकते (निलंबित)। GPUImage यह सब कुछ के लिए ओपनजीएल ES का उपयोग करता है। आपको यह सुनिश्चित करना होगा कि आपका एप्लिकेशन GPUImage (वीडियो फ़िल्टर करना, एक छवि को प्रोसेस करना) के साथ कर रहा है, आपके एप्लिकेशन को पृष्ठभूमि में इसके संक्रमण को पूरा करने से पहले किया जाता है।

आप या किसी प्रसंस्करण समाप्त होने की प्रतीक्षा (UIApplicationWillResignActiveNotification के लिए सुनने के लिए पृष्ठभूमि के लिए संक्रमण के लिए संबंधित प्रतिनिधि कॉलबैक सूचित करें, और वहाँ किसी भी कैमरे पर कब्जा (अपने कैमरे इनपुट पर -pauseCameraCapture विधि के माध्यम से) रोक सकते हैं या जरूरत मेरा मानना ​​है कि GPUImage धारावाहिक प्रेषण कतार में एक तुल्यकालिक प्रेषण इस का ख्याल रखेगा)। https://github.com/BradLarson/GPUImage/issues/197 और कई संबंधित मुद्दों में:

इस के लिए संबंधित चर्चा यहाँ GitHub मुद्दों पृष्ठ पर पाया जा सकता है।