2011-10-12 3 views
7

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

एकमात्र चीज जो मैं सोच सकता हूं वह है कि मुझे प्रत्येक ऑडियो फ़ाइल के साथ मेटाडेटा बनाने की आवश्यकता होगी, ताकि मैं ऑडियो फ़ाइल के साथ चलने वाला टाइमर शुरू कर सकूं। या शायद आईओएस में ऑडियो प्लेयर अपने चलने वाले टाइमर का पर्दाफाश कर सकता है और मैं कुछ बिंदुओं पर बदलने के लिए हाइलाइट किए गए शब्द को ट्रिगर कर सकता हूं?

कोई विचार यह करने का सबसे अच्छा तरीका है? मुझे लगता है कि यह प्रोसेसर पर कर लगा सकता है अगर मुझे शब्द बदलना चाहिए तो मुझे हर सेकेंड की जांच करनी पड़ी, लेकिन मुझे नहीं पता कि मैं इसे अन्यथा कैसे ट्रिगर कर सकता हूं।

+0

क्या आप कराओके के लिए MIDI प्रारूप का उपयोग कर रहे हैं? या आप एमपी 3 की तरह कुछ इस्तेमाल कर रहे हैं? –

उत्तर

-1

मैं मेटाडाटा विकल्प के साथ जाऊंगा, क्योंकि मुझे नहीं पता कि गायक शब्दों को कब बदलता है, यह जानना कितना आसान होगा। (यानी screamo, sting, आदि)

ध्यान दें कि आप वास्तव में मुख्य धागे पर एक फ़ंक्शन शेड्यूल कर सकते हैं; आपको यह जांचना नहीं है कि शब्द बदल गया है या नहीं। आप उपयोग कर सकते हैं:

[self performSelector:@selector(changeWord) withObject:self afterDelay:metaData.nextChangeTime] 

मैं स्मृति मुद्दों के रूप में पूरी तरह से कुछ नहीं कर रहा हूँ, लेकिन मैं इसे मेरे एप्लिकेशन में वापस दर्ज की मिडी फ़ाइलों को खेलने के लिए इस्तेमाल करते हैं। मैं बस मेटाडेटा के आधार पर परिवर्तन वर्ड फ़ंक्शन शेड्यूल करता हूं।

मेटाडेटा बनाने के लिए, मुझे यकीन नहीं है कि आप ब्रूट फोर्स के अलावा अन्य विधि का उपयोग कैसे कर सकते हैं। कुछ prewritten मेटाडेटा होना चाहिए; आखिरकार, अन्य कराओके ऐप्स भी हैं।

5

मुझे पता नहीं सबसे अच्छा जवाब नहीं है, लेकिन कोर एनीमेशन का उपयोग कर डब्ल्यूडब्ल्यूडीसी 2011 वीडियो में से एक में एक समान समाधान पर चर्चा की गई।

(WWDC 2011 के लिए iTunes यू पर वीडियो 421 होना चाहिए) वीडियो कोर एनिमेशन अनिवार्य नामित का पता लगाएं। उदाहरण लगभग 2 9 मिनट का होना चाहिए। असल में परिदृश्य यह था कि गीत पर बजाए गए गीतों पर एक गेंद उछाल रही थी। परियोजना एक दिलचस्प विचार का उपयोग करके शब्दों पर समय और स्थिति को एनिमेट करने के तरीके के बारे में बात करती है ...

हालांकि यह डिजाइन करने के लिए थोड़ा सा होगा, एक एनएसटीमर के साथ एक परियोजना को लागू करेगा और आपका गीत एक ही समय में शुरू होगा । प्रोजेक्ट को कार्यान्वित करें ताकि हर बार जब आप स्क्रीन पर दबाएंगे, आखिरी बार अंतराल से ऑफसेट को एनएसएमयूटेबलसाइरे में डाला जाता है, जिसे तब फ़ाइल में लिखा जाता है। अब, प्रोजेक्ट चलाएं और प्रत्येक शब्द गाए जाने पर दबाकर शब्दों के लिए टाइमस्टैम्प बनाएं। (यह मानता है कि आप पहले ही जानते हैं कि आप पहले से कौन से गाने लागू करने जा रहे हैं और गायन की गति बहुत तीव्र नहीं है)। ठीक है ... अब आपके पास मेटाडेटा है।

मैं क्योंकि कार्यान्वयन पहले से ही साथ ही साथ वर्णन किया गया है कि मैं क्या आप को लागू करने की कोशिश कर रहे हैं के साथ समस्याओं के एक जोड़े को देखने के पहले बाउंस होती हुई गेंद बात की कोशिश कर की सिफारिश करेंगे। सबसे विशेष रूप से, (मुझे गलत हो सकता है), लेकिन मुझे नहीं लगता कि UIlabel/NSString में सबस्ट्रिंग को हाइलाइट करने के लिए कोई तरीका है। आप मतलब हो सकता है प्रत्येक व्यक्ति के शब्द है जो वास्तव में कठिन हो सकता है के लिए एक लेबल बनाने के लिए है ... तो है कि वीडियो की जाँच और उम्मीद है कि आपको लगता है कि बाहर कुछ मिल सकता है। शुभ लाभ!

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

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