2012-07-27 21 views
8

मैं के माध्यम से अपने UIView में एक वीडियो प्रदर्शित करने के लिए AVFoundation का उपयोग कर रहा हूं। मैं AVCaptureSessionPresetPhoto प्रीसेट के साथ वीडियो से अभी भी छवि को कैप्चर करने के लिए AVStillImageOutput के - कैप्चरस्टिल इमेजएसिंक्रोनस फ्रॉमकनेक्शन : का उपयोग करता हूं।मैं एक तस्वीर कैप्चर करने के ठीक समय पर वीडियो को कैसे रोकूं?

मैं वीडियो - captureStillImageAsynchronouslyFromConnection पूरा होने के पहले ही उल्लेख किया ब्लॉक में उपयोग करते हुए AVCaptureSession के - stopRunning ठंड कर रहा हूँ। हालांकि, यह बहुत देर हो चुकी है और अभी भी छवि चल रही है, जबकि वीडियो चल रहा है, इसलिए फ्रीज एक या दो बाद में है। जब मैं छवि प्रदर्शित करता हूं तो एक कूद है।

फोटो लेने के ठीक उसी समय मैं वीडियो को कैसे फ्रीज कर सकता हूं?

+0

क्या आप अपने समापन ब्लॉक में पहली कार्रवाई के रूप में '-स्टॉपरिंग' प्रदर्शन करते हैं? उस ब्लॉक में अन्य परिचालनों में काफी समय लग सकता है, इसलिए आप चाहते हैं कि वहां होने वाली पहली चीज़ बनें। –

+0

स्टॉप राइजिंग सबसे पहला एक्शन – user1130254

+0

है क्या आप मुख्य थ्रेड या पृष्ठभूमि थ्रेड पर अपने वीडियो फ्रेम को कैप्चर कर रहे हैं? –

उत्तर

1

लगभग एक साल बाद ... आपका दृष्टिकोण सभी गलत है। इस वीडियो को सटीक पल में रोकने की कोशिश करने के बजाय कि छवि कैप्चर की गई है क्यों आप वीडियो को रोक नहीं देते हैं और फिर उस रोके हुए छवि को कैप्चर करते हैं। किसी उपयोगकर्ता को यह कोई फर्क नहीं पड़ता, एक डेवलपर को आपको सटीक सटीकता के बारे में चिंता करने की ज़रूरत नहीं है।

मेरे विचार को दोहराने के लिए, यदि आप एक वीडियो रोकते हैं और सफेद दृश्य फ़्लैश करते हैं और एक क्लिक खेलते हैं तो उपयोगकर्ता सोचेंगे कि आपने उस फ्रेम को अभी तक कब्जा कर लिया है चाहे आप हों या नहीं। असल में, आप इसे सहेजने के बिना किसी छवि को कैप्चर करने के समान वीडियो को रोकने पर विचार कर सकते हैं।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^