2010-11-26 11 views
5

मैं वर्तमान में एक एवीप्लेयर का उपयोग कर रहा हूं, साथ ही कुछ वीडियो वापस चलाने के लिए एवीप्लेयरलेयर के साथ। वीडियो वापस चलाते समय, मैंने वीडियो के दौरान एक सेकंड के हर 30 वें समय के अपडेट के लिए पंजीकरण किया है। इसका उपयोग वीडियो में उस बिंदु पर त्वरण के ग्राफ को आकर्षित करने के लिए किया जाता है, और इसे वीडियो के साथ अद्यतन किया जाता है। ग्राफ वीडियो से सीएमटाइम का उपयोग कर रहा है, इसलिए यदि मैं वीडियो के एक अलग हिस्से में जाता हूं, तो ग्राफ तुरंत उस बिंदु को वीडियो में बिना किसी अतिरिक्त काम के दर्शाता है।AVPlayerLayer - व्हील रीप्रोग्रामिंग?

कोई भी, जहां तक ​​मुझे पता है, अगर मैं मीडियाप्लेयर फ्रेमवर्क की पेशकश के समान इंटरफेस प्राप्त करना चाहता हूं, तो मुझे खुद ऐसा करना होगा।

मैं क्या सोच रहा हूं, क्या मेरे एवीप्लेयर को मीडियाप्लेयर ढांचे के साथ उपयोग करने का कोई तरीका है? (ऐसा नहीं है कि मैं देख सकता हूं।) या, मीडियाप्लेयर ढांचे के साथ वृद्धिशील समय अपडेट के लिए पंजीकरण करने का कोई तरीका है।

मेरे कोड, अगर कोई रुचि है, इस प्रकार है:

[moviePlayer addPeriodicTimeObserverForInterval: CMTimeMake(1, 30) queue: dispatch_queue_create("eventQueue", NULL) usingBlock: ^(CMTime time) { 
loopCount = (int)(CMTimeGetSeconds(time) * 30); 
if(loopCount < [dataPointArray count]) { 
    dispatch_sync(dispatch_get_main_queue(), ^{ 
    [graphLayer setNeedsDisplay]; 
    }); 
} 
}]; 

धन्यवाद!

उत्तर

0

यदि आप MPMoviePlayer द्वारा प्रदर्शित विंडो क्रोम के बारे में बात कर रहे हैं तो मुझे डर है कि आप इस यूआई को स्वयं बनाने के लिए देख रहे हैं।

AFAIK मीडियाप्लेयर ढांचे का उपयोग करके आपको आवश्यक समय व्यवहार को प्राप्त करने का कोई तरीका नहीं है, जो कि "कुछ मीडिया चलाएं" ढांचा बहुत सरल है। आप AVFoundation का उपयोग करके सही काम कर रहे हैं।

आपको यूआई बनाने के लिए आपको कौन सी चीजें चाहिए। मेरा सुझाव सामान्य लेआउट बनाने के लिए एक एक्सआईबी फ़ाइल के साथ शुरू करना होगा; एक बटन के साथ शीर्ष पर टूलबार, एक बड़ा दृश्य जो कस्टम प्लेबैक व्यू (आपके AVPlayerLayer का उपयोग करके) और आपके नियंत्रण को रखने के लिए एक अलग दृश्य का प्रतिनिधित्व करता है।

यदि आप MPMoviePlayer UI को अनुकरण करना चाहते हैं तो आपको प्लेबैक नियंत्रण और टूलबार को स्वचालित रूप से दिखाने/छिपाने के लिए कुछ कस्टम नियंत्रक कोड लिखना होगा।

+0

वोआ। यह जवाब प्रश्न से लगभग एक साल बाद है, और अभी भी स्वीकार कर लिया गया है! वाहवाही। – Almo

0

आप शुरुआती बिंदु के रूप में https://bitbucket.org/brentsimmons/ngmovieplayer का उपयोग कर सकते हैं (यदि यह आपके द्वारा पूछे जाने पर मौजूद था)।

परियोजना पृष्ठ से: "MPMoviePlayerViewController के व्यवहार की बहुत Replicates - लेकिन AVFoundation के उपयोग करता है।"

0

आप AVSynchronizedLayer कक्षा के लिए देखना चाहते हैं। मुझे नहीं लगता कि आधिकारिक प्रोग्रामिंग गाइड में बहुत कुछ है। आप यहां और वहां जानकारी के बिट्स पा सकते हैं: subfurther, Otter Software

O'Really प्रोग्रामिंग आईओएस 4 (या 5) वहाँ भी कैसे एक वर्ग चाल बताने के लिए/एनीमेशन के साथ सिंक में एक रेखा के साथ बंद करो पर एक संक्षिप्त संदर्भ है में

। डब्ल्यूडब्ल्यूडीसी 2011 सत्र Working with Media in AV Foundation के दौरान एक और डेमो (बहुत सारे कोड नहीं) दिखाया गया है।

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