के साथ कैमरा स्विच पर फ्रीज करता है मैंने वीडियो को कैप्चर और सहेजने के लिए एक सुविधा के साथ एक ऐप बनाया है। मैंने इसके लिए AVFoundation का उपयोग किया है और Apple's AVCam मेरी मार्गदर्शिका रही है।वीडियो AVFoundation
मुझे लगता है मैं यह स्पष्ट कर सकते हैं आशा:
सब कुछ ठीक काम करता है जब तक मैं videoViewController कि पहली बार के लिए AVCamCaptureManager संभालती रिलीज (कि AVCamViewController होगा AVCam में)। उसके बाद जब मैं इसे फिर से बनाउंगा, तो कैमरा स्विच के बाद वीडियो फ्रीज हो जाएगा। यहां तक कि पुनः चलाने से भी मदद नहीं मिलेगी, न ही साफ हो जाएगी, या डिवाइस रीसेट हो जाएगा। (कभी-कभी चीजों में से एक मदद करता है, लेकिन यह एक नियम नहीं है)।
स्मृति को सहेजने के लिए आवश्यक नहीं होने पर मैं VideoViewController को रिलीज़ करता हूं।
कोड के लिए कैमरा स्विच करने मूल रूप से AVCam में रूप में ही है:,
NSError *error;
AVCaptureDeviceInput *newVideoInput;
AVCaptureDevicePosition position = currentVideoInput.device.position;
if (position == AVCaptureDevicePositionBack)
newVideoInput = [[AVCaptureDeviceInput alloc] initWithDevice:frontFacingCamera error:&error];
else if (position == AVCaptureDevicePositionFront)
newVideoInput = [[AVCaptureDeviceInput alloc] initWithDevice:backFacingCamera error:&error];
if (newVideoInput != nil) {
[session beginConfiguration];
[session removeInput:currentVideoInput];
if ([session canAddInput:newVideoInput]) {
[session addInput:newVideoInput];
[self setVideoInput:newVideoInput];
} else {
[session addInput:currentVideoInput];
}
[session commitConfiguration];
[newVideoInput release];
} else if (error) {
NSLog(@"%@",[error localizedDescription]);
}
कोड जिसके साथ मैं videoView खारिज
[self.videoViewController.view removeFromSuperview];
self.videoViewController = nil;
मेरे वर्तमान "वैकल्पिक हल" बस यह हो छोड़ने के लिए है भी अगर मुझे इसकी ज़रूरत नहीं है।
क्या कोई यह समझा सकता है कि यह क्यों हो रहा है और इसे कैसे हल किया जाए।
संपादित करें: हल
डब्ल्यू डायसन के रूप में अपने जवाब में कहा मैं बहुत तरह मेरे videoViewController छोड़ने से पहले सत्र बंद कर दिया जाना चाहिए था:
[[[self.videoViewController captureManager] session] stopRunning];
[self.videoViewController.view removeFromSuperview];
self.videoViewController = nil;
डब्ल्यू डायसन धन्यवाद।
नहीं, कोई त्रुटि लॉग नहीं है। आपकी क्या सलाह है? मैंने एवीकैम में देखा है (हाँ, मैंने 1.2 का उपयोग किया) और इसे लागू किया - कैप्चर मैनेजर: didFailWithError :, लेकिन अभी भी कोई त्रुटि लॉग नहीं है। ऐप कैमरे के चारों ओर केंद्रित नहीं है। कैमरा एक साइड चीज है और शायद कुछ भी इसका इस्तेमाल नहीं किया जा सकता है। मैंने एवीकैम को दोबारा जांच लिया है। केवल अंतर यह है कि, AVCam में कैमरा हमेशा मौजूद होता है, मैं ऊपर बताए गए कारणों से इसे खारिज करना चाहता हूं। – Reggian
मेरी अद्यतन टिप्पणी देखें –
बात यह है कि, आपकी परियोजना और एवीकैम प्रोजेक्ट में किए गए परिवर्तनों को देखे बिना, यह मुश्किल है। साथ ही, विश्लेषक चलाएं और देखें कि यह कुछ भी पकड़ता है या नहीं। –