यूएसबी डिजिटल ऑडियो

इस लेख में, यूएसबी डिजिटल ऑडियो और ऐसी ही अन्य ऐक्सेसरी के लिए Android की सुविधा के बारे में बताया गया है यूएसबी-आधारित प्रोटोकॉल.

ऑडियंस

इस लेख की टारगेट ऑडियंस, Android डिवाइस के OEM, SoC वेंडर, यूएसबी ऑडियो सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह), बेहतर ऑडियो ऐप्लिकेशन डेवलपर, साथ ही, अन्य यूएसबी डिजिटल ऑडियो इंटर्नल के बारे में ज़्यादा जानकारी चाहते हैं.

Nexus डिवाइसों के अंतिम उपयोगकर्ताओं को यह लेख देखना चाहिए यूएसबी होस्ट मोड का इस्तेमाल करके, ऑडियो रिकॉर्ड करना और उसे चलाना पूरी तरह कैसे इसके बजाय, Nexus सहायता केंद्र पर जाएं. यह लेख असली उपयोगकर्ताओं के लिए नहीं है, ऑडियो के कॉन्टेंट का इस्तेमाल करने वाले कुछ लोगों को, आपकी पसंद के कुछ हिस्से मिल सकते हैं.

यूएसबी की खास जानकारी

यूनिवर्सल सीरियल बस (यूएसबी) के बारे में Wikipedia के लेख में अनौपचारिक तरीके से बताया गया है यूएसबी, और इसे आधिकारिक तौर पर, यूएसबी लागू करने वाले फ़ोरम, इंक. सुविधा के लिए, हम यहां मुख्य USB अवधारणाओं का सारांश देते हैं, लेकिन मानक प्रामाणिक संदर्भ हैं.

बुनियादी कॉन्सेप्ट और शब्दावली

यूएसबी एक बस है डेटा ट्रांसफ़र की प्रक्रिया को एक ही शुरू करता है. इसे होस्ट कहते हैं. होस्ट इनसे संपर्क करता है पेरिफ़रल:

ध्यान दें: डिवाइस और ऐक्सेसरी शब्दों के समानार्थी शब्द पेरिफ़रल. यहां हम उन शब्दों का इस्तेमाल करने से बचते हैं, क्योंकि उन्हें समझने में गलती हो सकती है Android डिवाइस या Android का दूसरा कॉन्सेप्ट है जिसे ऐक्सेसरी मोड.

एन्यूमेशन एक अहम होस्ट है: यह पता लगाने की प्रोसेस कि बस से कौनसे सहायक डिवाइस कनेक्ट किए गए हैं, और उनकी प्रॉपर्टी को क्वेरी करने के लिए Descriptors के ज़रिए दिखाया जाता है.

सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) एक फ़िज़िकल ऑब्जेक्ट हो सकता है लेकिन असल में कई लॉजिकल फ़ंक्शन लागू करते हैं. उदाहरण के लिए, वेबकैम सहायक डिवाइस में कैमरा फ़ंक्शन और माइक्रोफ़ोन का ऑडियो फ़ंक्शन.

हर सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) के फ़ंक्शन का एक इंटरफ़ेस होता है, जो उस फ़ंक्शन के साथ कम्यूनिकेशन करने के लिए प्रोटोकॉल तय करता है.

होस्ट, सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) से संपर्क करता है पाइप एंडपॉइंट तक ले जाता है, डेटा सोर्स या सिंक वह भी सहायक डिवाइस के किसी फ़ंक्शन से.

पाइप दो तरह के होते हैं: मैसेज और स्ट्रीम. दोनों तरफ़ से कंट्रोल करने और स्टेटस सेट करने के लिए, मैसेज पाइप का इस्तेमाल किया जाता है. एक-तरफ़ा डेटा ट्रांसफ़र के लिए स्ट्रीम पाइप का इस्तेमाल किया जाता है.

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

डेटा ट्रांसफ़र करने के तीन मुख्य मोड हैं: रुकावट, बल्क, और अलग-अलग का इस्तेमाल करें. ऑडियो के संदर्भ में, आइसोक्रोनस मोड के बारे में आगे चर्चा की जाएगी.

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

Android यूएसबी मोड

डेवलपमेंट मोड

डेवलपमेंट मोड, Android के शुरुआती रिलीज़ के बाद से मौजूद है. Android डिवाइस, यूएसबी की मदद से काम करने वाले सहायक डिवाइस की तरह दिखता है डेस्कटॉप ऑपरेटिंग सिस्टम पर चलने वाले होस्ट पीसी पर, जैसे कि Linux, Mac OS X या Windows. सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) का सिर्फ़ एक फ़ंक्शन है Android फ़ास्टबूट या Android डीबग ब्रिज (adb). फ़ास्टबूट और adb प्रोटोकॉल को यूएसबी बल्क डेटा ट्रांसफ़र मोड पर लेयर किया जाता है.

होस्ट मोड

होस्ट मोड को Android 3.1 (एपीआई लेवल 12) में पेश किया गया.

Android डिवाइस को होस्ट के तौर पर काम करना ज़रूरी है. साथ ही, ज़्यादातर Android डिवाइसों में एक माइक्रो-यूएसबी कनेक्टर जो सीधे तौर पर होस्ट ऑपरेशन की अनुमति नहीं देता है, कभी भी, कहीं भी (OTG) अडैप्टर जैसे, आम तौर पर इन निर्देशों का पालन करना ज़रूरी होता है:

ओटीजी

पहला डायग्राम. ऑन-द-गो (OTG) अडैप्टर

हो सकता है कि कोई Android डिवाइस, नहीं दिखाई देगा. यह इस बात पर निर्भर करेगा कि सहायक डिवाइस को कितनी बैटरी खर्च करने की ज़रूरत है, और कितना Android डिवाइस सप्लाई कर सकता है. भले ही पावर सप्लाई उपलब्ध हो, तो Android डिवाइस की बैटरी चार्ज हो सकती है काफ़ी कम हो जाएगी. इन स्थितियों में, किसी Hub जोड़ना होगा, जैसे कि:

चालू किया गया हब

दूसरा डायग्राम. चालू किया गया हब

ऐक्सेसरी मोड

ऐक्सेसरी मोड को Android 3.1 (एपीआई लेवल 12) में पेश किया गया था और इसे Android 2.3.4 पर बैक-पोर्ट किया गया था. इस मोड में Android डिवाइस, यूएसबी सहायक डिवाइस की तरह काम करता है, किसी अन्य डिवाइस के कंट्रोल में हैं, जैसे कि होस्ट के तौर पर काम करने वाला डॉक. डेवलपमेंट मोड और ऐक्सेसरी मोड के बीच का अंतर अतिरिक्त यूएसबी फ़ंक्शन, होस्ट को adb के अलावा अन्य तरीकों से भी दिखते हैं. Android डिवाइस, डेवलपमेंट मोड में शुरू होता है और उसके बाद फिर से मोल-भाव करके ऐक्सेसरी मोड पर स्विच किया जा सकता है.

ऐक्सेसरी मोड को Android 4.1 में अतिरिक्त सुविधाओं के साथ बढ़ाया गया था, खास तौर पर, इन ऑडियो के बारे में नीचे बताया गया है.

यूएसबी ऑडियो

यूएसबी क्लास

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

ड्राइवरलेस शब्द, क्लास का पालन करने के लिए इस्तेमाल होने वाला एक सामान्य समानार्थी है, यह दर्शाता है कि ऐसी तकनीकी सुविधाओं की मानक सुविधाओं का वह भी सहायक डिवाइस, जिसकी मदद से किसी ऑपरेटिंग सिस्टम को चलाने की ज़रूरत नहीं होती ड्राइवर इंस्टॉल करना होगा. यह मान लिया जा सकता है कि जिस सहायक डिवाइस का विज्ञापन "ड्राइवर की ज़रूरत नहीं है" उसके तौर पर दिखाया गया है प्रमुख डेस्कटॉप ऑपरेटिंग सिस्टम के लिए श्रेणी का अनुपालन करेगा, हालांकि इसके अपवाद हो सकते हैं.

यूएसबी ऑडियो क्लास

यहां हम सिर्फ़ उन सहायक डिवाइसों का इस्तेमाल करते हैं जिन पर ऑडियो फ़ंक्शन की पहचान करता है और इस तरह ऑडियो डिवाइस क्लास का पालन करता है. दो यूएसबी ऑडियो क्लास स्पेसिफ़िकेशन के वर्शन: क्लास 1 (UAC1) और 2 (UAC2).

अन्य क्लास से तुलना

यूएसबी में कई अन्य डिवाइस क्लास शामिल होती हैं. इनमें से कुछ को समझना मुश्किल हो सकता है को ट्रैक करने की सुविधा मिलती है. कॉन्टेंट बनाने मास स्टोरेज क्लास (MSC) का इस्तेमाल इसके लिए किया जाता है सेक्टर के हिसाब से मीडिया ऐक्सेस करना, जबकि मीडिया ट्रांसफ़र प्रोटोकॉल (MTP) मीडिया तक पूरी फ़ाइल ऐक्सेस के लिए है. MSC और MTP, दोनों का इस्तेमाल ऑडियो फ़ाइलों को ट्रांसफ़र करने के लिए किया जा सकता है, हालांकि, रीयल-टाइम में स्ट्रीमिंग के लिए, सिर्फ़ यूएसबी ऑडियो क्लास का इस्तेमाल किया जा सकता है.

ऑडियो टर्मिनल

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

चैनल

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

आइसोक्रोनस ट्रांसफ़र मोड

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

फ़्रेम शुरू होने की हर अवधि (एसओएफ़) अवधि के दौरान, आइसोक्रोनस ट्रांसमिशन होता है. एसओएफ़ अवधि, फ़ुल-स्पीड के लिए 1 मिलीसेकंड और कैमरे के लिए 125 माइक्रोसेकंड है की स्पीड तेज़ कर देते हैं. हर फ़ुल-स्पीड फ़्रेम में पेलोड 1023 बाइट तक हो सकता है, और हाई-स्पीड फ़्रेम की सुविधा 1024 बाइट तक ले जा सकती है. इन्हें एक साथ मिलाकर, हम ट्रांसफ़र की ज़्यादा से ज़्यादा दर का हिसाब लगाते हैं: 10,23,000 या 81,92,000 बाइट प्रति सेकंड. इससे, ऑडियो रिकॉर्डिंग के कॉन्टेंट की ज़्यादा से ज़्यादा सीमा तय हो जाती है सैंपल रेट, चैनल की संख्या, और बिट डेप्थ. व्यावहारिक सीमा कम है.

आइसोक्रोनस मोड में तीन सब-मोड होते हैं:

  • आस-पास की रोशनी के हिसाब से रंग बदल जाता है
  • एसिंक्रोनस
  • सिंक्रोनस

अडैप्टिव सब-मोड में, सहायक डिवाइस सिंक या सोर्स, संभावित रूप से अलग-अलग सैंपल रेट के हिसाब से अडजस्ट हो जाता है होस्ट के तौर पर जोड़ा गया है.

एसिंक्रोनस (इसे इंप्लिसिट फ़ीडबैक भी कहा जाता है) सब-मोड में, सिंक या सोर्स से सैंपल रेट तय होता है और होस्ट को इसके हिसाब से अडजस्ट किया जाता है. एसिंक्रोनस सब-मोड का प्राथमिक सैद्धांतिक लाभ यह है कि स्रोत या सिंक करने के लिए यूएसबी क्लॉक जो DAC या ADC को चलाने वाली घड़ी के समान या उससे व्युत्पन्न) हो. इस प्रॉक्सिमिटी का मतलब है कि एसिंक्रोनस सब-मोड का जोखिम कम होगा सिग्नल की गड़बड़ी. इसके अलावा, DAC या ADC इस्तेमाल की जाने वाली घड़ी इसे होस्ट घड़ी की तुलना में ज़्यादा सटीक और कम ड्रिफ़्ट के लिए डिज़ाइन किया गया है.

सिंक्रोनस सब-मोड में, हर एसओएफ़ अवधि के दौरान बाइट की एक तय संख्या ट्रांसफ़र की जाती है. ऑडियो सैंपल रेट को बेहतर तरीके से यूएसबी घड़ी से लिया जाता है. सिंक्रोनस सब-मोड का इस्तेमाल आम तौर पर ऑडियो के साथ नहीं किया जाता, क्योंकि दोनों होस्ट और सहायक डिवाइस, यूएसबी घड़ी पर निर्भर नहीं रहते हैं.

नीचे दी गई टेबल में, आइसोक्रोनस सब-मोड के बारे में जानकारी दी गई है:

सब-मोड बाइट काउंट
हर पैकेट पर
सैंपल रेट
इस हिसाब से तय किया जाता है
ऑडियो के लिए इस्तेमाल किया जाता है
अडैप्टिव अस्थिर होस्ट हां
एसिंक्रोनस अस्थिर सहायक डिवाइस हां
सिंक्रोनस पहले से तय यूएसबी घड़ी नहीं

व्यावहारिक तौर पर, सब-मोड ज़रूरी है, लेकिन कुछ और बातें भी इस पर विचार किया जाना चाहिए.

यूएसबी ऑडियो क्लास के लिए Android की सुविधा

डेवलपमेंट मोड

डेवलपमेंट मोड में यूएसबी ऑडियो काम नहीं करता.

होस्ट मोड

Android 5.0 (एपीआई लेवल 21) और उसके बाद के वर्शन, यूएसबी ऑडियो क्लास 1 (UAC1) की सुविधाओं के सबसेट के साथ काम करते हैं:

  • Android डिवाइस को होस्ट के तौर पर काम करना चाहिए
  • ऑडियो प्रारूप PCM (इंटरफ़ेस प्रकार I) होना चाहिए
  • बिट की गहराई 16-बिट, 24-बिट या 32-बिट होनी चाहिए, काम के ऑडियो डेटा के 24 बिट, सबसे अहम डेटा में बाईं ओर बराबर होते हैं 32-बिट शब्द के बिट
  • सैंपल रेट 48, 44.1, 32, 24, 22.05, 16, 12, 11.025 या 8 किलोहर्ट्ज़ होना चाहिए
  • चैनल की संख्या 1 (मोनो) या दो (स्टीरियो) होनी चाहिए

Android फ़्रेमवर्क के सोर्स कोड को पढ़ने पर, हो सकता है कि आपको अतिरिक्त कोड दिखे इन सुविधाओं के इस्तेमाल के लिए ज़रूरी है. लेकिन यह कोड को सत्यापित नहीं किया गया है, इसलिए और ज़्यादा बेहतर सुविधाओं का अभी तक दावा नहीं किया गया है.

ऐक्सेसरी मोड

Android 4.1 (एपीआई लेवल 16) के साथ, होस्ट में ऑडियो प्लेबैक की सुविधा सीमित तौर पर जोड़ी गई. ऐक्सेसरी मोड में होने पर, Android अपने-आप ऑडियो आउटपुट को यूएसबी पर रूट कर देता है. इसका मतलब है कि Android डिवाइस, होस्ट के लिए डेटा सोर्स के तौर पर काम करता है, जैसे कि डॉक.

ऐक्सेसरी मोड के ऑडियो में ये सुविधाएं होती हैं:

  • Android डिवाइस को किसी ऐसे जानकार होस्ट के ज़रिए कंट्रोल किया जाना चाहिए जो सबसे पहले, Android डिवाइस को डेवलपमेंट मोड से ऐक्सेसरी मोड में ट्रांसफ़र कर सकता है, और फिर होस्ट को सही एंडपॉइंट से ऑडियो डेटा ट्रांसफ़र करना होगा. इसलिए, Android डिवाइस "ड्राइवर के बिना" नहीं दिखता होस्ट.
  • दिशा इनपुट होनी चाहिए, जो होस्ट के हिसाब से बताई जाती है
  • ऑडियो फ़ॉर्मैट 16-बिट PCM में होना चाहिए
  • सैंपल रेट 44.1 किलोहर्ट्ज़ होना चाहिए
  • चैनल की संख्या दो (स्टीरियो) होनी चाहिए

ऐक्सेसरी मोड में ऑडियो का इस्तेमाल, ज़्यादा लोगों तक नहीं किया गया है, और फ़िलहाल नए डिज़ाइन के लिए इसका सुझाव नहीं दिया जाता है.

यूएसबी डिजिटल ऑडियो के ऐप्लिकेशन

जैसा कि नाम से पता चलता है, यूएसबी डिजिटल ऑडियो सिग्नल डिजिटल डेटा स्ट्रीम से एनालॉग के बजाय ऐसा सिग्नल जिसका इस्तेमाल सामान्य TRS Mini करता है हेडसेट कनेक्टर. आखिरकार, किसी भी डिजिटल सिग्नल को सुनने से पहले, उसे ऐनालॉग में बदलना ज़रूरी होता है. उस कन्वर्ज़न को कहां रखना है, यह चुनने में कई समस्याएं हैं.

दो डीएसी की कहानी

उदाहरण के तौर पर नीचे दिए गए डायग्राम में, हम दो डिज़ाइन की तुलना करते हैं. सबसे पहले, हमारे पास ऐप्लिकेशन प्रोसेसर (एपी) वाला मोबाइल डिवाइस, ऑन-बोर्ड डीएसी, एम्प्लफ़ायर, और हेडफ़ोन से जुड़ा ऐनालॉग TRS कनेक्टर. हम इन बातों पर भी गौर करते हैं ऐसा मोबाइल डिवाइस जिसमें यूएसबी को बाहरी यूएसबी डीएसी और एम्प्लफ़ायर से कनेक्ट किया गया है, हेडफ़ोन के साथ भी.

डीएसी की तुलना

तीसरी इमेज. दो डीएसी की तुलना

कौनसा डिज़ाइन बेहतर है? इसका जवाब आपकी ज़रूरतों पर निर्भर करता है. दोनों के ही अपने फ़ायदे और कमियां हैं.

ध्यान दें: यह एक बनावटी तुलना है, क्योंकि हो सकता है कि असली Android डिवाइस में दोनों ही विकल्प उपलब्ध हों.

पहला डिज़ाइन A आसान है, यह कम महंगा है, और इसमें कम पावर का इस्तेमाल होता है, और एक ही तरह के भरोसेमंद कॉम्पोनेंट को मानकर डिज़ाइन ज़्यादा भरोसेमंद होगा. हालांकि, आम तौर पर दूसरी ज़रूरी शर्तों के मुकाबले ऑडियो की क्वालिटी में बदलाव होता है. उदाहरण के लिए, यदि यह एक मास-मार्केट डिवाइस है, तो उसे फ़िट करने के लिए डिज़ाइन किया जा सकता है आम उपभोक्ता की ज़रूरतों के हिसाब से.

दूसरे डिज़ाइन में, बाहरी ऑडियो सहायक डिवाइस C को पहले से बेहतर ऑडियो क्वालिटी और ज़्यादा पावर आउटपुट बेसिक मास मार्केट Android डिवाइस B. हां, यह ज़्यादा महंगी डिज़ाइन है, हालांकि, इसकी लागत सिर्फ़ वे लोग उठा सकते हैं जिन्हें इसकी ज़रूरत है.

मोबाइल डिवाइस, हाई डेंसिटी की वजह से बदनाम होते हैं सर्किट बोर्ड का इस्तेमाल करने से, क्रॉसटॉक जो आस-पास के ऐनालॉग सिग्नल को कम कर देती है. डिजिटल कम्यूनिकेशन पर शोर, इसलिए, DAC को Android डिवाइस A से बाहरी सर्किट बोर्ड में ले जाएं C की मदद से, एनालॉग के आखिरी स्टेज को शारीरिक और इलेक्ट्रिकल तौर पर दिखाया जा सकता है को सघन और शोर वाले सर्किट बोर्ड से अलग किया गया है, जिसके कारण उच्च फ़िडेलिटी ऑडियो मिलता है.

दूसरी ओर, दूसरा डिज़ाइन ज़्यादा जटिल है. साथ ही, ज़रूरत के हिसाब से ज़्यादा मुश्किल आने की वजह से, अवसर नहीं मिलते. सूचना मिलने में देरी भी होती है यूएसबी कंट्रोलर से कनेक्ट किया जाता है.

होस्ट मोड के ऐप्लिकेशन

यूएसबी होस्ट मोड के सामान्य ऑडियो ऐप्लिकेशन में ये शामिल हैं:

  • संगीत सुनना
  • टेलीफ़ोनी
  • फटाफट मैसेज सेवा और वॉइस चैट
  • रिकॉर्डिंग

इन सभी ऐप्लिकेशन के लिए, Android यह ऑडियो सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) का इस्तेमाल करता है. साथ ही, यह ऑडियो प्लेबैक और कैप्चर को अपने-आप रूट करता है जो ऑडियो नीति के नियमों के हिसाब से दी गई हैं. सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) के पहले दो चैनलों पर स्टीरियो कॉन्टेंट चलाया जाता है.

यूएसबी डिजिटल ऑडियो के लिए कोई खास एपीआई नहीं है. बेहतर इस्तेमाल के लिए, अपने-आप रूटिंग की सुविधा ऐप्लिकेशन में रुकावट डाल सकती है जो यूएसबी की मदद से काम करते हैं. ऐसे ऐप्लिकेशन के लिए, ऑटोमैटिक रूटिंग बंद करें इसके मीडिया सेक्शन में सेटिंग / डेवलपर के लिए सेटिंग और टूल.

होस्ट मोड में होने पर डीबग करना

यूएसबी होस्ट मोड में, यूएसबी पर adb डीबग करने की सुविधा उपलब्ध नहीं है. वायरलेस का इस्तेमाल करना सेक्शन देखें में से Android डीबग ब्रिज .

यूएसबी ऑडियो लागू करें

ऑडियो सहायक डिवाइसों के वेंडर के लिए सुझाव

Android डिवाइसों के साथ इंटर-ऑपरेट करने के लिए, ऑडियो सहायक सिस्टम की सुविधा देने वाले वेंडर को:

  • ऑडियो क्लास अनुपालन के लिए डिज़ाइन; फ़िलहाल, Android क्लास 1 को टारगेट करता है, लेकिन दूसरी क्लास के लिए प्लान करना बेहतर है
  • अनूठे कामों से बचें
  • लोकप्रिय Android डिवाइसों और रेफ़रंस फ़ाइलों के साथ इंटर-ऑपरेबिलिटी की जांच करना
  • काम करने वाली सुविधाओं, ऑडियो क्लास के अनुपालन, पावर से जुड़ी ज़रूरतों वगैरह के बारे में साफ़ तौर पर बताएं. ताकि उपभोक्ता सोच-समझकर फ़ैसला ले सकें

Android डिवाइस के OEM और SoC वेंडर के लिए सुझाव

यूएसबी डिजिटल ऑडियो की सुविधा देने के लिए, डिवाइस के OEM और SoC वेंडर को:

  • यूएसबी होस्ट मोड पर काम करने वाला हार्डवेयर
  • फ़्रेमवर्क लेवल पर, सामान्य यूएसबी होस्ट की सहायता चालू करें android.hardware.usb.host.xml फ़ीचर फ़्लैग के ज़रिए
  • कर्नेल की सभी ज़रूरी सुविधाएं चालू करें: यूएसबी होस्ट मोड, यूएसबी ऑडियो, आइसोक्रोनस ट्रांसफ़र मोड; Android Kernel कॉन्फ़िगरेशन देखें
  • हाल की कर्नेल रिलीज़ और पैच के साथ अप-टू-डेट रहना; क्लास के नियमों का पालन करने के बावजूद, हमारे पास ऐसे कई ऑडियो सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) मौजूद हैं अनूठे कामों के साथ, और हाल के कर्नेल के पास इस तरह की असामान्य क्वेरी के लिए समाधान हैं
  • नीचे बताए गए तरीके से यूएसबी ऑडियो नीति चालू करें
  • device.mk में PRODUCT_PACKAGES के लिए, audio.usb.default को जोड़ें
  • सामान्य यूएसबी ऑडियो सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) के साथ इंटर-ऑपरेबिलिटी की जांच

यूएसबी ऑडियो से जुड़ी नीति चालू करें

USB ऑडियो सक्षम करने के लिए, ऑडियो नीति कॉन्फ़िगरेशन फ़ाइल. आम तौर पर, यह यहां मौजूद हैं:

device/oem/codename/audio_policy.conf

पाथनेम कॉम्पोनेंट "oem" को नाम से बदला जाना चाहिए OEM का है जो Android डिवाइस मैन्युफ़ैक्चरर है, और "कोडनेम" को डिवाइस कोड नाम से बदलना चाहिए.

एंट्री का एक उदाहरण यहां दिया गया है:

audio_hw_modules {
  ...
  usb {
    outputs {
      usb_accessory {
        sampling_rates 44100
        channel_masks AUDIO_CHANNEL_OUT_STEREO
        formats AUDIO_FORMAT_PCM_16_BIT
        devices AUDIO_DEVICE_OUT_USB_ACCESSORY
      }
      usb_device {
        sampling_rates dynamic
        channel_masks dynamic
        formats dynamic
        devices AUDIO_DEVICE_OUT_USB_DEVICE
      }
    }
    inputs {
      usb_device {
        sampling_rates dynamic
        channel_masks AUDIO_CHANNEL_IN_STEREO
        formats AUDIO_FORMAT_PCM_16_BIT
        devices AUDIO_DEVICE_IN_USB_DEVICE
      }
    }
  }
  ...
}

सोर्स कोड

ऑडियो हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल) यूएसबी ऑडियो को लागू करने की प्रोसेस यहां दी गई है:

hardware/libhardware/modules/usbaudio/

यूएसबी ऑडियो एचएएल, ट्रैफ़िक को मॉनिटर करने tinyalsa, जिसके बारे में ऑडियो शब्दावली में बताया गया है. हालांकि, यूएसबी ऑडियो की मदद से आइसोक्रोनस ट्रांसफ़र का इस्तेमाल किया जाता है, इसे ALSA लागू करके हटा दिया जाता है. इसलिए, यूएसबी ऑडियो एचएएल और टीएलएसए को चिंता करने की ज़रूरत नहीं है यूएसबी प्रोटोकॉल के इस हिस्से के साथ काम करते हैं.

यूएसबी ऑडियो की जांच करें

यूएसबी ऑडियो के लिए सीटीएस टेस्टिंग से जुड़ी जानकारी के लिए, यूएसबी ऑडियो सीटीएस वेरिफ़ायर टेस्ट देखें.