2010-09-01 12 views
9

मैंने सुना है कि आईपैड ऐप से सामग्री को बाहरी डिस्प्ले में आउटपुट करना संभव है, लेकिन ऐप को इसके लिए तैयार रहना होगा और गंभीर सीमाएं हैं। कोई संकेतक?बाहरी प्रदर्शन के लिए आउटपुट आईपैड सामग्री

और यह भी आईफोन के लिए किया जा सकता है? क्या यह वही है?

+0

ये प्रश्न संबंधित हैं, और उनके उत्तर मदद कर सकते हैं: [बाहरी मॉनीटर से आईपैड कनेक्ट करना] (http://stackoverflow.com/questions/2798534/connecting-ipad-to-external-monitor) और [आईपैड वीजीए कनेक्टर - अपने आवेदन में मिरर स्क्रीन?] (Http://stackoverflow.com/questions/2662201/ipad-vga-connector-mirror- स्क्रीन-in-own- अनुप्रयोग) –

उत्तर

11

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

मैं अपने class on iTunes U के आईपैड सत्र के लिए वीडियो में ऐसा करने का तरीका दिखाता हूं, जिसके लिए पाठ्यक्रम नोट here देखे जा सकते हैं।

मैट जेममेल ने हाल ही में इस पर बहुत अच्छा लेखन भी किया है, जिसे आप here पढ़ सकते हैं।

11

यह सुविधा लागू करने के लिए महत्वपूर्ण UISCreen वर्ग में निहित है:

http://developer.apple.com/iphone/library/documentation/uikit/reference/UIScreen_Class/Reference/UIScreen.html#//apple_ref/occ/clm/UIScreen/screens

असल में, अपने अनुप्रयोग UIScreen का उपयोग बाहरी डिस्प्ले स्क्रीन तक पहुँच प्राप्त है और फिर एक के लिए स्क्रीन के रूप में सेट करने के लिए होगा नया UIWindow (आपके ऐप में दो UIWindows होंगे)। ऐप फिर नए UIWindow पर एक व्यू कंट्रोलर जोड़ सकता है जो दूसरी स्क्रीन का प्रतिनिधित्व करता है और आप जाते हैं।

UIWindow *externalWindow.screen = [[[UIScreen screens] lastObject] retain]; 
[externalWindow addSubview:externalViewController.view]; 

यह बहुत आसान है, लेकिन यह काम करने के लिए थोड़ा प्रयोग करेगा। यह डिवाइस पर आपके ऐप को डीबग करने के लिए बट में दर्द है, क्योंकि 30-पिन कनेक्टर को डिस्प्ले से कनेक्ट करने की आवश्यकता होगी, इसलिए डिबगिंग के लिए भी इसका उपयोग नहीं किया जा सकता है। शायद डीबग + बाहरी डिस्प्ले की इजाजत देने के लिए केबल के माध्यम से एक पास है, लेकिन मुझे देखने का मौका नहीं मिला है।

सीमाएं: आप, उत्पादन वीडियो-गुणवत्ता बिट दरों में सक्षम होना चाहिए सेब के रूप में अपने आवेदन के कुछ ही साथ इस लक्ष्य को हासिल करने में सक्षम हो गया है। जिसके अनुसार, बाहरी प्रदर्शन, उपकरण द्वारा समर्थित स्क्रीन रिज़ॉल्यूशन तक ही सीमित रहेगा तो चीजें अपने 108 ":-) एलसीडी

प्लेटफार्म पर कुरकुरा नहीं लग रही हो सकता है: यह सब iPads पर और iPhones पर काम करना चाहिए 4.0+ चल रहा है। आपको विशेष केबल की आवश्यकता होगी जो मुझे लगता है कि आईफोन और आईपैड ($ 30-40) के लिए अद्वितीय है।

+0

+1 बहुत विस्तृत उत्तर के लिए +1। धन्यवाद। – hpique

+0

नई एचडीएमआई केबल आपको एक ही समय में डीबग और आउटपुट करने देगी और आईपैड और आईफोन दोनों के साथ काम करेगी। – respectTheCode

+0

@AndrewLitte: 'UIWindow * बाहरी Window.screen = [[[यूआईस्क्रीन स्क्रीन] lastObject] कैसे बनाए रखा है; वैध कोड? –

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