2012-07-03 10 views
6

मैंने पाया है कि एसडीके डिजिटल ज़ूम इन या आउट का समर्थन नहीं करता है, आपको इसे अप्रत्यक्ष रूप से करना होगा। स्टैक ओवरफ्लो पर जिस तरह से मैंने पाया, AVCaputureVideoPreviewLayer रिकॉर्डिंग करते समय बदलता है, और आउटपुट वीडियो में इसी तरह के ट्रांसफॉर्म पोस्टप्रोसेस को करता है (मेरा वर्तमान विचार AVMutableVideoCompositionLayerInstruction's रैंप फ़ंक्शन को बदलता है।)।आईओएस डिजिटल ज़ूम। कुशलता से कैसे कार्यान्वित करें?

समस्या यह है कि आप उपयोगकर्ता की ज़ूम गतिविधि के सभी निरंतर पाठ्यक्रम को कैसे रिकॉर्ड कर सकते हैं, जो मुझे लगता है कि बहुत जटिल ज़ूम में एक गंभीर हो सकता है और व्यवहार को ज़ूम आउट कर सकता है मेरा मतलब है, उदाहरण के लिए, मैं उपयोगकर्ता के लिए एक स्लाइडर डिज़ाइन करता हूं ज़ूम को नियंत्रित करें, उपयोगकर्ता धीरे-धीरे 4x में स्लाइडर ज़ूम रख सकता है (पिछले 3 सेकंड कहें) और, स्लाइडर को रिलीज़ किए बिना, जल्दी से 2 एक्स तक ज़ूम आउट करें (अंतिम 0.5 सेकंड कहें), मुझे टाइमलाइन के अनुसार ये सभी परिवर्तन रिकॉर्ड करना होगा।

मुझे वास्तव में यह रिकॉर्ड कॉम्प्लेक्स लगता है, इसके अलावा आपको यह भी गारंटी देना होगा कि वीडियो रिकॉर्डिंग प्रक्रिया के सुचारू प्रदर्शन को बनाए रखने के लिए बहुत अधिक संसाधनों की लागत नहीं है! या डिजिटल ज़ूम के कार्यान्वयन का कोई अन्य तरीका? किसी भी सहायक के लिए आभारी!

उत्तर

1

प्रतिनिधि में फ़्रेम में हेरफेर करने के लिए रिकॉर्डिंग और ज़ूमवेल्यू का उपयोग करते समय आप AVCaputureVideoPreviewLayer को बदल सकते हैं। वीडियो के फ्रेम को संसाधित करने के लिए प्रतिनिधि विधि captureOutput:didOutputSampleBuffer:fromConnection: का उपयोग किया जा सकता है। AVFoundation दस्तावेज़ AVFoundation documentation, मीडिया कैप्चर> वीडियो की प्रोसेसिंग फ्रेम्स देखें।