2013-04-07 8 views
5

मैं एक ऐप बना रहा हूं जहां मुझे एक दृश्य का स्क्रीनशॉट लेने की आवश्यकता है जिसका उपक्रम कैमरा सत्र (AVFoundation सत्र) हैं।एक यूआईवीव का एक स्क्रीनशॉट लें जहां इसके सबव्यू कैमरे सत्र हैं

enter image description here

मैं निजी विधि की कोशिश की है UIGetScreenImage() और:

CGRect rect = [self.containerView bounds]; 
UIGraphicsBeginImageContextWithOptions(rect.size,YES,0.0f); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
[self.containerView.layer renderInContext:context]; 
UIImage *capturedImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
प्रभावी रूप से मुझे एक UIImage हो जाता है कौन सा विचारों के साथ, केवल कि कैमरे सत्र काले हैं

: मैं इस कोड की कोशिश की है पूरी तरह से काम करता है, लेकिन जैसा कि ऐप्पल इसकी अनुमति नहीं देता है, मैं इसका उपयोग नहीं कर सकता। मैंने Apple's docs में भी एक की कोशिश की है लेकिन यह वही है। मैंने परतों का उपयोग करके AVFoundation सत्र में समस्या का पता लगाया है। इसे कैसे प्राप्त किया जा सकता है? ऐप में दो विचारों वाला एक कंटेनर दृश्य है जो कैमरा सत्र बंद कर दिया गया है।

+0

मुझे कुछ समय पहले भी यह समस्या थी। मुद्दा यह था कि कैमरा पूर्वावलोकन परत (साथ ही कुछ कस्टम प्रतिपादन परतें) OpenGL का उपयोग कर रहे हैं। जिस विधि का आप उपयोग कर रहे हैं वह जीएल समर्थित परतों के साथ काम नहीं करता है जैसा कि मुझे याद है। मैं चारों ओर पूछूंगा और देख सकता हूं कि यह वास्तव में सच है या नहीं। –

+0

@SteveMcFarlin आपको इस मुद्दे को हल करने का कोई तरीका ढूंढ गया है, मुझे एक ही समस्या का सामना करना पड़ रहा है http://stackoverflow.com/questions/41239254/take-screenshot-during-video-call-screenshot-for-uiview-with-camera -शन-सब – Chlebta

+0

क्या आपको समाधान मिल गए? – Chlebta

उत्तर

2

तो आईओएस 7 का उपयोग कर, यह काफी सरल है और आप एक UIViewController से कुछ इस तरह कर सकता है: iOS: what's the fastest, most performant way to make a screenshot programatically?

iOS 6 और पूर्ववर्ती के लिएः

UIView *snapshotView = [self.view snapshotViewAfterScreenUpdates:YES]; 

तुम भी एक विधवा से इस लिंक का उपयोग कर सकते हैं , मैं केवल निम्नलिखित एप्पल तकनीकी क्यू & एक मिल सकता है: How do I take a screenshot of my app that contains both UIKit and Camera elements?

  1. कब्जा अपने कैमरे को देखने की सामग्री। (Explained here)
  2. उस कैप्चर किए गए कैमरे की सामग्री को ग्राफिक्स संदर्भ में स्वयं खींचें जिसे आप अपने UIKit तत्वों को प्रस्तुत कर रहे हैं। (जैसा कि आपने अपने कोड में किया था)
+0

मैं उलझन में हूं क्योंकि यह समाधान काम नहीं कर रहा है लेकिन इसे चुना गया है। मैंने इस विधि के सभी प्रकार की विविधताओं को आजमाया है लेकिन कोई भाग्य नहीं है। यह अभी भी काला है। क्या यह वास्तव में काम करता था? – Vlad

+0

@Vlad मैंने कोशिश की है और यह काम नहीं करता है, क्या आपको कोई समाधान मिला? – Chlebta

0

मैं भी वर्तमान में इस समस्या का हल ढूंढ रहा हूं!

मैं इस समय वर्तमान में बाहर कर रहा हूँ तो मैं परीक्षण नहीं कर सकते कि मैं क्या पाया है, लेकिन इन कड़ियों पर एक नज़र डालें:

Screenshots-A Legal Way To Get Screenshots की तरह अपने सही रास्ते पर लगता है - यहाँ Example Project है (और here प्रारंभिक पोस्ट है)

जब मैं इसे काम करने के लिए प्रबंधित करता हूं तो मैं निश्चित रूप से इस उत्तर को अपडेट कर दूंगा!

+0

मैंने उन पदों को भी देखा है, लेकिन मैं इसे लागू करने में सक्षम नहीं था:/ – pmerino

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