ios - एयरप्ले विलंबता का पता लगाना




audio airplay (2)

जबकि मुझे एहसास है कि एयरप्ले में अंतर्निहित अंतराल / विलंबता है, तो मुझे आश्चर्य है कि क्या (वर्तमान में काल्पनिक) आईफोन ऐप का पता लगाने का कोई तरीका है कि यह विलंबता क्या है। यदि हां, तो उस विलंबता मूल्य कितना सटीक हो सकता है? मैं इस बात से अधिक उत्सुक हूं कि कोई ऐप इसे कम से कम अपने स्वयं के एयरप्ले विलंबता को "जान" सकता है या नहीं।


आप आईओएस की मौजूदा हार्डवेयर ऑडियो विलंबता से -[AVAudioSession outputLatency] ,

outputLatency लिए दस्तावेज़ के outputLatency :

आपकी ऑडियो सामग्री के लिए एयरप्ले सक्षम डिवाइस का उपयोग करने से 2-सेकंड की देरी हो सकती है। गेम सामग्री में इस देरी की जांच करें।

और मेरे अनुभव के अनुसार, आउटपुट डिवाइस स्विच करते समय यह मान बदलता है, उदाहरण के लिए:

  • अध्यक्ष: ~ 10 एमएमएस
  • ब्लूटूथ: ~ 100 + एमएस
  • एयरप्ले: 2 एस

विलंबता नेटवर्क जिटर से नहीं आती है, बल्कि स्रोत डिवाइस (आपके आईफोन) द्वारा तय की जाती है।

कहानी संक्षिप्त में:

  • ऐप्पल उपकरणों के साथ यह हमेशा 2s (मिलीसेकंड तक) होता है।
  • सार्वजनिक एपीआई के साथ इसे ट्विक करने का कोई तरीका नहीं है।

ऑडियो विलंबता बहुत सटीक होने की आवश्यकता है ताकि एकाधिक आउटपुट सिंक में खेल सकें।

एयरप्ले के कार्यान्वयन के बारे में कुछ स्पष्टीकरण:

  • प्रोटोकॉल कई आरटीएसपी कमांड के साथ शुरू होता है। इस हैंडशेक के दौरान, स्रोत rtpTime प्रसारित rtpTime , जिस समय प्लेबैक शुरू होता है, जो आपकी विलंबता भी होती है। सामान्य मान 88200 = 2 एस x 44100 हर्ट्ज है।
  • नेटवर्क विलंबता को कम करने के लिए एयरप्ले डिवाइस स्रोतों के साथ एनटीपी के साथ अपनी घड़ी को सिंक कर सकते हैं।
  • प्लेबैक के दौरान, स्रोत समय-समय पर ऑडियो विलंबता समायोजित करने के लिए एक SYNC पैकेट भेजता है और यह सुनिश्चित करता है कि सभी डिवाइस अभी भी सिंक हो जाएं।

यदि आप कस्टम कार्यान्वयन का उपयोग करते हैं तो विलंबता को बदलना संभव है, लेकिन ऐप्पल आमतौर पर उन्हें अस्वीकार करता है।

अधिक जानकारी के लिए इस writeup को जांचें। आप अनौपचारिक प्रोटोकॉल दस्तावेज भी पढ़ सकते हैं।





airplay