2013-10-11 10 views
5

मुझे किसी दिए गए समय पर एक क्रिया (बिना किसी अंतराल पर एकाधिक डिवाइस पर एक समय में गीत चलाएं) करना है। मेरी आवश्यकता यह है कि ऐप को किसी भी इंटरनेट कनेक्शन का उपयोग नहीं करना चाहिए। सभी उपकरणों पर 5 सेकंड के बाद2 या अधिक आईओएस डिवाइसों पर एक ऑडियो को सिंक्रनाइज़ करने के लिए कैसे करें

  1. Play गीत: तो मैं जब निम्न डेटा खेलने के लिए (ऑडियो)]

    मैं पहले से ही की कोशिश की है समय की एक सटीक बिंदु की जरूरत है। (अभी भी मिलीसेकंड के अंतराल का कारण बनता है)

  2. गीत के खेल की पहचान करने के लिए एक छोटी पाठ अधिसूचना भेजें और फिर सभी उपकरणों पर खेलना शुरू करें। लेकिन भेजने और इस सूचना को प्राप्त सभी उपकरणों पर स्वत: को मिलीसेकंड का समय लगता है :(:(
  3. सेट समय और उसके बाद गुजर पाठ संदेश के समय अंतर की जाँच की, यह प्रत्येक परीक्षण में मिलीसेकेंड की खाई है।
+0

मैं गर्तिका कनेक्शन का उपयोग कर रहा डाटा संचारित करने के लिए। डेटा बहुत तेज़ी से भेजा जा रहा है, लेकिन फिर भी मुझे एक सटीक समय फॉर्म खेलने की ज़रूरत है। –

+1

आपका प्रश्न शायद बंद कर दिया जाएगा क्योंकि यह कोई प्रयास नहीं दिखाता है। इसके अलावा, क्योंकि डुप्लिकेट प्रश्न हैं, यह बताता है कि अभी तक मौजूदा पोस्ट की तलाश नहीं है, उदा। http://stackoverflow.com/questions/17377390/what-is-the-best-method-of-synchronizing-audio-across-ios-devices-with-wifi ने कहा, हालांकि यह एक अलग समस्या है, पर एक नज़र डालें यह उत्तर http://stackoverflow.com/questions/8357514/ios-stream-audio-from-one-ios-device-to-another/8492598#8492598 –

+0

मैं पिछले 4 दिनों से इस पर खोज कर रहा हूं। उन लिंक को भी स्कैन किया था, लेकिन कोई मदद नहीं .... –

उत्तर

6

सबसे पहले आप ऐसा करके 2 उपकरणों आंतरिक समय सिंक्रनाइज़ करने की आवश्यकता जाहिर है सबसे सटीक घड़ी आप iOS पर हो सकता है पूर्ण समय है:।

CFAbsoluteTime now = CFAbsoluteTimeGetCurrent(); 

तो फिर तुम अंतर को पुनः प्राप्त डिवाइस B करने के लिए डिवाइस A से इस बार भेजने की जरूरत है उपकरण पर B और इसे A पर वापस भेजें, फिर नेटवर्क लेनदेन में बिताए गए समय के साथ अंतर की तुलना करें। इस तरह आप 2 डिवाइस समय का सटीक सिंक्रनाइज़ेशन कर सकते हैं। (यह माना जाता है कि नेटवर्क समय अनुरोध और प्रतिक्रिया के बीच सममित है और डिवाइस B पर आपकी गणना पर बहुत अधिक ओवरहेड नहीं है)।

enter image description here

वहां से आप आसानी से उपकरणों पर 2 AVAudioPlayer गीत सेट का दृष्टांत और prepareToPlay फोन और अंत में सिंक पर देरी के अनुसार खेलने विधि आग कर सकते हैं। यह आपको एक ध्यान देने योग्य सटीक नहीं देना चाहिए।

एक और मार्ग जो आप ले सकते हैं वह माइक्रोफोन से जुड़े दूसरे डिवाइस पर AudioUnit रखने वाला है, ताकि संगीत को पहले डिवाइस उत्सर्जित ध्वनि के अनुसार सिंक किया जा सके।

+0

धन्यवाद,।, यह लगभग काम किया ... चीयर्स ...:) –

+0

यदि आपको असममित नेटवर्क अनुरोध/प्रतिक्रिया से संबंधित समस्याएं हैं, तो प्रक्रिया के पहले भाग को दूसरी तरफ (बी से ए तक) दोहराने के लायक हो सकते हैं और फिर परिणाम औसत हो सकते हैं। – cescofry

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

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