2011-12-09 20 views
9

एनएसआईएनवालिडअर्ग्यूमेंट एक्सेप्शन * + [AVCaptureStillImageOutput jpegStillImageNSDataReresentation:] - NULL नमूना बफर।AVCaptureStillImageOutput jpegStillImageNSDataRepresentation एक नमूना बफर के साथ अपवाद फेंक देता है क्यों?

ऐसा लगता है कि यदि आप एक पंक्ति में बहुत अधिक (बहुत तेज़) फ़ोटो लेते हैं।

+0

ही समस्या मुझे आश्चर्य है कि अगर यह धागा संबंधित है हो रही है। – ribeto

उत्तर

9

खैर यह दस्तावेज में कहते हैं:

इस विधि एक NSInvalidArgumentException फेंकता है तो jpegSampleBuffer शून्य या JPEG प्रारूप में नहीं है।

तो इसका शायद यह अर्थ है कि जेपीईजी प्रोसेसर द्वारा अपेक्षित डेटा अभी तक बफर में नहीं है (यदि आप चित्रों को बहुत तेज़ी से लेते हैं)।

तो या तो आप अपने imageSampleBufferNULL के लिए या क्या मैंने किया था की जाँच: मैं एक अगर बयान की जाँच में पूरी बात लिपटे: CMSampleBufferIsValid(imageSampleBuffer), लेकिन वास्तव में यह है कि अगर इस की रक्षा के लिए सही तरीका क्या है पता नहीं है। दस्तावेज़ीकरण थोड़ा सा स्पैस है।

+0

इस पर कोई अपडेट? – MobileMon

4

हमेशा की तरह, त्रुटि की जांच करें।

[self.stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection 
                completionHandler: ^(CMSampleBufferRef imageSampleBuffer, NSError *error) 
{ 
    if (!error) { 

इसके अलावा बस बैठाना, यहाँ (IBAction)didTakePhoto

if (self.captureSession.isRunning) { 
    [self captureNow]; 
     //Custom capture method. 
} 
संबंधित मुद्दे