2015-09-10 9 views

उत्तर

16

यहाँ link है।

लाइव तस्वीरें

लाइव तस्वीरें है आईओएस 9 की एक नई सुविधा है कि उपयोगकर्ताओं को कब्जा करने के लिए और पारंपरिक फ़ोटो से अमीर संदर्भ के साथ उनके पसंदीदा क्षणों relive अनुमति देता है: अन्यथा, यहाँ पाठ है। जब उपयोगकर्ता शटर बटन दबाता है, तो कैमरा ऐप नियमित फ़ोटो के साथ ऑडियो और अतिरिक्त फ़्रेम सहित फ़ोटो के साथ और बाद में अधिक सामग्री को कैप्चर करता है। इन तस्वीरों के माध्यम से ब्राउज़ करते समय, उपयोगकर्ता उनके साथ बातचीत कर सकते हैं और सभी कैप्चर की गई सामग्री को वापस चला सकते हैं, जिससे फ़ोटो जीवन में आती हैं।

आईओएस 9.1 एपीआई प्रस्तुत करता है जो ऐप्स को लाइव फ़ोटो के प्लेबैक को शामिल करने के साथ-साथ साझा करने के लिए डेटा निर्यात करने की अनुमति देता है। तस्वीरें ढांचे में नई समर्थन PHImageManager वस्तु है, जो कि एक लाइव फोटो शामिल सभी डेटा का प्रतिनिधित्व करने के लिए किया जाता है से एक PHLivePhoto वस्तु लाने के लिए नहीं है। लाइव फोटो की सामग्री प्रदर्शित करने के लिए आप PHLivePhotoView ऑब्जेक्ट (फ़ोटोयूआई फ्रेमवर्क में परिभाषित ) का उपयोग कर सकते हैं। PHLivePhotoView दृश्य छवि प्रदर्शित का ख्याल रखता है, सभी उपयोगकर्ता संपर्क से निपटने, और वापस सामग्री चलाने के लिए दृश्य उपचार लागू करने।

आप साझा करने के उद्देश्यों के लिए PHLivePhoto ऑब्जेक्ट के डेटा तक पहुंचने के लिए PHAssetResource का भी उपयोग कर सकते हैं। आप PHImageManager या UIImagePickerController का उपयोग करके उपयोगकर्ता की फोटो लाइब्रेरी में एक परिसंपत्ति के लिए एक PHLivePhoto वस्तु अनुरोध कर सकते हैं। यदि आपके पास साझाकरण एक्सटेंशन है, तो आप को NSItemProvider का उपयोग करके PHLivePhoto ऑब्जेक्ट प्राप्त कर सकते हैं। शेयर के प्राप्त करने वाले पक्ष पर, आप मूल रूप से प्रेषक द्वारा निर्यात की गई फ़ाइलों के सेट से PHLivePhoto ऑब्जेक्ट को फिर से बना सकते हैं। प्रदर्शित लाइव तस्वीरें

यह याद रखना महत्वपूर्ण है कि एक लाइव फोटो अभी भी एक तस्वीर है महत्वपूर्ण है के लिए

दिशानिर्देश। यदि आपको में एक लाइव फोटो प्रदर्शित करना है जो PHLivePhotoView का समर्थन नहीं करता है, तो इसे की अनुशंसा की जाती है जिसे आप इसे नियमित फ़ोटो के रूप में प्रस्तुत करते हैं।

अलग से अतिरिक्त फ्रेम और एक लाइव फोटो के ऑडियो प्रदर्शित न करें। यह महत्वपूर्ण है कि लाइव फोटो की सामग्री में लगातार तरीके से प्रस्तुत की जाए जो सभी दृश्यों में समान दृश्य उपचार और इंटरैक्शन मॉडल का उपयोग करती है। PHLivePhotoBadgeOptionsOverContent में तस्वीर के ऊपरी-बाएं कोने:

यह है कि आप बिल्ला PHLivePhotoView वर्ग विधि livePhotoBadgeImageWithOptions द्वारा प्रदान रखकर एक लाइव फोटो के रूप में एक तस्वीर की पहचान अनुशंसा की जाती है।

ध्यान दें कि दृश्य प्रभाव प्रदान करने के लिए कोई समर्थन नहीं है उपयोगकर्ताओं को अनुभव है क्योंकि वे फ़ोटो ऐप में फ़ोटो के माध्यम से स्वाइप करते हैं।साझा करने के लिए

दिशानिर्देश लाइव तस्वीरें

एक लाइव फोटो के डेटा एक PHAssetResource वस्तु में फ़ाइलों का एक सेट के रूप में निर्यात किया जाता है। फ़ाइलों का सेट एक इकाई के रूप में संरक्षित किया जाना चाहिए जब आप उन्हें किसी सर्वर पर अपलोड करते हैं। जब आप रिसीवर पक्ष पर इन फ़ाइलों के साथ PHLivePhoto का पुनर्निर्माण करते हैं, फ़ाइलों को सत्यापित किया जाता है; लोडिंग विफल हो जाती है अगर फ़ाइलें से समान संपत्ति नहीं आती हैं।

यदि आपका ऐप उपयोगकर्ताओं को साझा करने से पहले किसी फ़ोटो में प्रभाव या समायोजन लागू करने देता है, तो लाइव फ़ोटो के सभी फ़्रेम पर समान समायोजन लागू करना सुनिश्चित करें। वैकल्पिक रूप से, यदि आप लाइव फोटो की संपूर्ण सामग्री को समायोजित करने का समर्थन नहीं करते हैं, तो इसे नियमित फ़ोटो के रूप में साझा करें और उपयोगकर्ता को उचित संकेत दिखाएं।

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

3

प्रलेखन के बाहर, लाइव फोटो 2 संसाधन, एक छवि और एक mov (क्विकटाइम मूवी फ़ाइल) से बना है। इसलिए लाइव फोटो प्रकार के रैपर द्वारा जुड़े प्रत्येक लाइव फोटो में 2 'वास्तविक' फ़ाइलें होती हैं।

1

लाइव फोटो वास्तव में दो फाइलें हैं। मूल जेपीईजी छवि और पूर्ण एचडी वीडियो।

37

एक लाइव फोटो में दो संसाधन हैं। वे एक संपत्ति पहचानकर्ता (एक स्ट्रिंग के रूप में एक यूयूआईडी) के साथ एक साथ बंधे हैं।

  1. एक जेपीईजी; के लिए [17 : assetIdentifier] (17 ऐप्पल मेकर नोट एसेट पहचानकर्ता कुंजी) के साथ मेटाडेटा प्रविष्टि होनी चाहिए।
  2. एक क्विकटाइम एमओवी उचित फ्रेमरेट (12-15 एफपीएस) और आकार (1080 पी) पर H.264 के साथ एन्कोड किया गया। इस एमओवी में होना चाहिए:
    • ["com.apple.quicktime.content.identifier" : assetIdentifier] के लिए शीर्ष-स्तरीय क्विकटाइम मेटाडेटा प्रविष्टि होना चाहिए। यदि AVAsset का उपयोग कर आप asset.metadataForFormat(AVMetadataFormatQuickTimeMetadata)
    • ["com.apple.quicktime.still-image-time" : 0xFF] के साथ टाइम मेटाडाटा ट्रैक प्राप्त कर सकते हैं; वास्तविक मेटाटाटा आइटम के लिए प्रस्तुति टाइमस्टैम्प तक वास्तविक अभी भी छवि समय मेल खाता है। पेलोड केवल एक 0xFF बाइट (उर्फ -1) लगता है और इसे अनदेखा किया जा सकता है। यदि AVAssetReader का उपयोग कर आप इस समय प्राप्त करने के लिए CMSampleBufferGetOutputPresentationTimeStamp का उपयोग कर सकते हैं।

assetIdentifier क्या दो आइटम एक साथ बांध व समयबद्ध मेटाडाटा ट्रैक क्या प्रणाली है जहाँ अभी भी छवि फिल्म समय में बैठता है बताता है।

+0

ऐसी फ़ाइलों लेखन का एक कार्यान्वयन यहां पाया जा सकता है: https: // GitHub।com/genadyo/LivePhotoDemo – jtbandes

+0

क्या यह अभी भी आईओएस 11 पर है, जब वह एचआईआईसी फाइलें बना रहा है, या फिल्म भाग भाग के रूप में उसी फ़ाइल में लपेटा गया है। – jl6

1

वर्दी प्रकार पहचानकर्ता (यूटीआई) प्रारूप के लिए kUTTypeLivePhoto/com.apple.live-photo

@available(OSX 10.12, *) 
public let kUTTypeLivePhoto: CFString 

/* 
* 
* kUTTypeLivePhoto 
* 
* Live Photo 
* 
* UTI: com.apple.live-photo 
* 
* 
*/ 
+0

'kUTTypeLivePhoto' क्या अनुरूप है? 'UTTypeCopyDeclaration (kUTTypeLivePhoto) 'कहता है कि यह किसी के अनुरूप नहीं है। यह थोड़ा अजीब लगता है। –

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