USB डिजिटल ऑडियो

यह आलेख USB डिजिटल ऑडियो और संबंधित USB-आधारित प्रोटोकॉल के लिए Android समर्थन की समीक्षा करता है।

श्रोता

इस लेख के लक्षित दर्शक एंड्रॉइड डिवाइस ओईएम, एसओसी विक्रेता, यूएसबी ऑडियो परिधीय आपूर्तिकर्ता, उन्नत ऑडियो एप्लिकेशन डेवलपर्स और एंड्रॉइड पर यूएसबी डिजिटल ऑडियो इंटर्नल की विस्तृत समझ चाहने वाले अन्य हैं।

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

यूएसबी का अवलोकन

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

बुनियादी अवधारणाएँ और शब्दावली

USB एक बस है जिसमें डेटा ट्रांसफर संचालन का एक आरंभकर्ता होता है, जिसे होस्ट कहा जाता है। मेजबान बस के माध्यम से बाह्य उपकरणों के साथ संचार करता है।

नोट: डिवाइस और एक्सेसरी शब्द परिधीय के लिए सामान्य पर्यायवाची हैं। हम यहां उन शब्दों से बचते हैं, क्योंकि उन्हें एंड्रॉइड डिवाइस या एंड्रॉइड-विशिष्ट अवधारणा जिसे एक्सेसरी मोड कहा जाता है, के साथ भ्रमित किया जा सकता है।

एक महत्वपूर्ण मेजबान भूमिका गणना है: यह पता लगाने की प्रक्रिया कि कौन से परिधीय बस से जुड़े हुए हैं, और विवरणकों के माध्यम से व्यक्त की गई उनकी संपत्तियों की क्वेरी करना।

एक परिधीय एक भौतिक वस्तु हो सकती है लेकिन वास्तव में कई तार्किक कार्यों को कार्यान्वित करती है। उदाहरण के लिए, एक वेबकैम परिधीय में कैमरा फ़ंक्शन और माइक्रोफ़ोन ऑडियो फ़ंक्शन दोनों हो सकते हैं।

प्रत्येक परिधीय फ़ंक्शन में एक इंटरफ़ेस होता है जो उस फ़ंक्शन के साथ संचार करने के लिए प्रोटोकॉल को परिभाषित करता है।

होस्ट एक पाइप के माध्यम से एक परिधीय के साथ एक समापन बिंदु , एक डेटा स्रोत या परिधीय के कार्यों में से एक द्वारा प्रदान किए गए सिंक तक संचार करता है।

पाइप दो प्रकार के होते हैं: संदेश और स्ट्रीम । एक संदेश पाइप का उपयोग द्वि-दिशात्मक नियंत्रण और स्थिति के लिए किया जाता है। एक स्ट्रीम पाइप का उपयोग यूनिडायरेक्शनल डेटा ट्रांसफर के लिए किया जाता है।

होस्ट सभी डेटा ट्रांसफर शुरू करता है, इसलिए इनपुट और आउटपुट शब्द होस्ट के सापेक्ष व्यक्त किए जाते हैं। एक इनपुट ऑपरेशन डेटा को परिधीय से होस्ट तक स्थानांतरित करता है, जबकि एक आउटपुट ऑपरेशन डेटा को होस्ट से परिधीय तक स्थानांतरित करता है।

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

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

एंड्रॉइड यूएसबी मोड

विकास मोड

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

होस्ट मोड

होस्ट मोड एंड्रॉइड 3.1 (एपीआई लेवल 12) में पेश किया गया है।

चूंकि एंड्रॉइड डिवाइस को होस्ट के रूप में कार्य करना चाहिए, और अधिकांश एंड्रॉइड डिवाइस में एक माइक्रो-यूएसबी कनेक्टर शामिल होता है जो सीधे होस्ट ऑपरेशन की अनुमति नहीं देता है, एक ऑन-द-गो ( ओटीजी ) एडाप्टर जैसे कि आमतौर पर इसकी आवश्यकता होती है:

ओटीजी

चित्र 1. ऑन-द-गो (ओटीजी) एडाप्टर

एक एंड्रॉइड डिवाइस किसी विशेष परिधीय को संचालित करने के लिए पर्याप्त शक्ति प्रदान नहीं कर सकता है, यह इस पर निर्भर करता है कि परिधीय को कितनी बिजली की आवश्यकता है, और एंड्रॉइड डिवाइस कितनी आपूर्ति करने में सक्षम है। पर्याप्त बिजली उपलब्ध होने पर भी, एंड्रॉइड डिवाइस की बैटरी चार्ज काफी कम हो सकती है। इन स्थितियों के लिए, इस प्रकार संचालित हब का उपयोग करें:

संचालित हब

चित्र 2. संचालित हब

सहायक मोड

एक्सेसरी मोड को एंड्रॉइड 3.1 (एपीआई स्तर 12) में पेश किया गया था और एंड्रॉइड 2.3.4 पर वापस पोर्ट किया गया था। इस मोड में, एंड्रॉइड डिवाइस एक यूएसबी परिधीय के रूप में काम करता है, एक अन्य डिवाइस जैसे डॉक के नियंत्रण में जो होस्ट के रूप में कार्य करता है। डेवलपमेंट मोड और एक्सेसरी मोड के बीच अंतर यह है कि एडीबी से परे, अतिरिक्त यूएसबी फ़ंक्शन होस्ट को दिखाई देते हैं। एंड्रॉइड डिवाइस डेवलपमेंट मोड में शुरू होता है और फिर पुनः बातचीत प्रक्रिया के माध्यम से एक्सेसरी मोड में स्थानांतरित हो जाता है।

एक्सेसरी मोड को एंड्रॉइड 4.1 में अतिरिक्त सुविधाओं के साथ बढ़ाया गया था, विशेष रूप से नीचे वर्णित ऑडियो में।

यूएसबी ऑडियो

यूएसबी कक्षाएं

प्रत्येक परिधीय फ़ंक्शन में एक संबद्ध डिवाइस क्लास दस्तावेज़ होता है जो उस फ़ंक्शन के लिए मानक प्रोटोकॉल निर्दिष्ट करता है। यह वर्ग अनुरूप मेजबानों और परिधीय कार्यों को एक-दूसरे के कामकाज के विस्तृत ज्ञान के बिना, अंतर-संचालित करने में सक्षम बनाता है। यदि होस्ट और परिधीय विभिन्न संस्थाओं द्वारा प्रदान किए जाते हैं तो वर्ग अनुपालन महत्वपूर्ण है।

ड्राइवरलेस शब्द क्लास कंप्लायंट का एक सामान्य पर्याय है, जो दर्शाता है कि ऑपरेटिंग-सिस्टम विशिष्ट ड्राइवर को स्थापित करने की आवश्यकता के बिना ऐसे परिधीय की मानक सुविधाओं का उपयोग करना संभव है। कोई यह मान सकता है कि प्रमुख डेस्कटॉप ऑपरेटिंग सिस्टम के लिए "कोई ड्राइवर की आवश्यकता नहीं" के रूप में विज्ञापित परिधीय वर्ग के अनुरूप होगा, हालांकि कुछ अपवाद भी हो सकते हैं।

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

यहां हम केवल उन बाह्य उपकरणों से संबंधित हैं जो ऑडियो कार्यों को लागू करते हैं, और इस प्रकार ऑडियो डिवाइस वर्ग का पालन करते हैं। USB ऑडियो क्लास विनिर्देश के दो संस्करण हैं: क्लास 1 (UAC1) और 2 (UAC2)।

अन्य वर्गों से तुलना

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

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

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

चैनल

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

समकालिक स्थानांतरण मोड

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

समकालिक प्रसारण प्रत्येक फ़्रेम प्रारंभ (एसओएफ) अवधि में होता है। एसओएफ अवधि पूर्ण गति के लिए एक मिलीसेकंड और उच्च गति के लिए 125 माइक्रोसेकंड है। प्रत्येक फुल-स्पीड फ्रेम 1023 बाइट्स तक पेलोड ले जाता है, और एक हाई-स्पीड फ्रेम 1024 बाइट्स तक ले जाता है। इन्हें एक साथ रखकर, हम अधिकतम स्थानांतरण दर की गणना 1,023,000 या 8,192,000 बाइट्स प्रति सेकंड के रूप में करते हैं। यह संयुक्त ऑडियो नमूना दर, चैनल गणना और बिट गहराई पर एक सैद्धांतिक ऊपरी सीमा निर्धारित करता है। व्यावहारिक सीमा कम है.

आइसोक्रोनस मोड के भीतर, तीन उप-मोड हैं:

  • अनुकूली
  • अतुल्यकालिक
  • एक समय का

अनुकूली उप-मोड में, परिधीय सिंक या स्रोत मेजबान की संभावित रूप से भिन्न नमूना दर के अनुकूल होता है।

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

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

नीचे दी गई तालिका समकालिक उप-मोडों का सारांश प्रस्तुत करती है:

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

व्यवहार में, उप-मोड निश्चित रूप से मायने रखता है, लेकिन अन्य कारकों पर भी विचार किया जाना चाहिए।

USB ऑडियो क्लास के लिए Android समर्थन

विकास मोड

विकास मोड में USB ऑडियो समर्थित नहीं है.

होस्ट मोड

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

  • एंड्रॉइड डिवाइस को होस्ट के रूप में कार्य करना होगा
  • ऑडियो प्रारूप पीसीएम (इंटरफ़ेस प्रकार I) होना चाहिए
  • बिट गहराई 16-बिट्स, 24-बिट्स या 32-बिट्स होनी चाहिए जहां 24 बिट्स उपयोगी ऑडियो डेटा 32-बिट वर्ड के सबसे महत्वपूर्ण बिट्स के भीतर छोड़ दिया जाता है।
  • नमूना दर या तो 48, 44.1, 32, 24, 22.05, 16, 12, 11.025, या 8 kHz होनी चाहिए
  • चैनल संख्या 1 (मोनो) या 2 (स्टीरियो) होनी चाहिए

एंड्रॉइड फ्रेमवर्क स्रोत कोड का अवलोकन इन सुविधाओं का समर्थन करने के लिए आवश्यक न्यूनतम से अधिक अतिरिक्त कोड दिखा सकता है। लेकिन इस कोड को मान्य नहीं किया गया है, इसलिए अधिक उन्नत सुविधाओं का अभी तक दावा नहीं किया गया है।

सहायक मोड

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

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

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

एक्सेसरी मोड ऑडियो को व्यापक रूप से नहीं अपनाया गया है, और वर्तमान में नए डिज़ाइनों के लिए इसकी अनुशंसा नहीं की गई है।

USB डिजिटल ऑडियो के अनुप्रयोग

जैसा कि नाम से संकेत मिलता है, यूएसबी डिजिटल ऑडियो सिग्नल को सामान्य टीआरएस मिनी हेडसेट कनेक्टर द्वारा उपयोग किए जाने वाले एनालॉग सिग्नल के बजाय डिजिटल डेटा स्ट्रीम द्वारा दर्शाया जाता है। अंततः किसी भी डिजिटल सिग्नल को सुनने से पहले उसे एनालॉग में परिवर्तित करना होगा। उस रूपांतरण को कहां रखा जाए, इसे चुनने में कुछ दुविधाएं होती हैं।

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

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

डीएसी तुलना

चित्र 3. दो डीएसी की तुलना

कौन सा डिज़ाइन बेहतर है? उत्तर आपकी आवश्यकताओं पर निर्भर करता है। प्रत्येक के फायदे और नुकसान हैं।

नोट: यह एक कृत्रिम तुलना है, क्योंकि एक वास्तविक एंड्रॉइड डिवाइस में संभवतः दोनों विकल्प उपलब्ध होंगे।

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

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

मोबाइल डिवाइस उच्च-घनत्व वाले सर्किट बोर्ड के लिए कुख्यात हैं, जिसके परिणामस्वरूप क्रॉसस्टॉक के लिए अधिक अवसर हो सकते हैं जो आसन्न एनालॉग सिग्नल को ख़राब कर देते हैं। डिजिटल संचार शोर के प्रति कम संवेदनशील होता है, इसलिए एंड्रॉइड डिवाइस ए से डीएसी को बाहरी सर्किट बोर्ड सी में ले जाने से अंतिम एनालॉग चरणों को घने और शोर वाले सर्किट बोर्ड से भौतिक और विद्युत रूप से अलग किया जा सकता है, जिसके परिणामस्वरूप उच्च निष्ठा ऑडियो प्राप्त होता है।

दूसरी ओर, दूसरा डिज़ाइन अधिक जटिल है, और अतिरिक्त जटिलता के साथ चीज़ों के विफल होने के अधिक अवसर आते हैं। USB नियंत्रकों से अतिरिक्त विलंबता भी है।

होस्ट मोड अनुप्रयोग

विशिष्ट USB होस्ट मोड ऑडियो अनुप्रयोगों में शामिल हैं:

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

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

USB डिजिटल ऑडियो के लिए कोई विशिष्ट API नहीं हैं। उन्नत उपयोग के लिए, स्वचालित रूटिंग उन अनुप्रयोगों में हस्तक्षेप कर सकती है जो यूएसबी-जागरूक हैं। ऐसे अनुप्रयोगों के लिए, सेटिंग्स/डेवलपर विकल्प के मीडिया अनुभाग में संबंधित नियंत्रण के माध्यम से स्वचालित रूटिंग अक्षम करें।

होस्ट मोड में रहते हुए डीबग करें

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

USB ऑडियो लागू करें

ऑडियो परिधीय विक्रेताओं के लिए सिफ़ारिशें

Android उपकरणों के साथ अंतर-संचालन करने के लिए, ऑडियो परिधीय विक्रेताओं को यह करना चाहिए:

  • ऑडियो क्लास अनुपालन के लिए डिज़ाइन; वर्तमान में एंड्रॉइड कक्षा 1 को लक्षित करता है, लेकिन कक्षा 2 के लिए योजना बनाना बुद्धिमानी है
  • विचित्रताओं से बचें
  • संदर्भ और लोकप्रिय एंड्रॉइड उपकरणों के साथ अंतर-संचालनीयता के लिए परीक्षण
  • समर्थित सुविधाओं, ऑडियो क्लास अनुपालन, बिजली आवश्यकताओं आदि को स्पष्ट रूप से दस्तावेज़ित करें ताकि उपभोक्ता सूचित निर्णय ले सकें

Android डिवाइस OEM और SoC विक्रेताओं के लिए अनुशंसाएँ

USB डिजिटल ऑडियो का समर्थन करने के लिए, डिवाइस OEM और SoC विक्रेताओं को यह करना चाहिए:

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

USB ऑडियो नीति सक्षम करें

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

device/oem/codename/audio_policy.conf

पथनाम घटक "ओईएम" को एंड्रॉइड डिवाइस बनाने वाले ओईएम के नाम से प्रतिस्थापित किया जाना चाहिए, और "कोडनेम" को डिवाइस कोड नाम से प्रतिस्थापित किया जाना चाहिए।

एक उदाहरण प्रविष्टि यहां दिखाई गई है:

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
      }
    }
  }
  ...
}

सोर्स कोड

USB ऑडियो के लिए ऑडियो हार्डवेयर एब्स्ट्रैक्शन लेयर (HAL) कार्यान्वयन यहां स्थित है:

hardware/libhardware/modules/usbaudio/

यूएसबी ऑडियो एचएएल ऑडियो शब्दावली में वर्णित टिनियलसा पर बहुत अधिक निर्भर करता है। हालाँकि USB ऑडियो समकालिक स्थानांतरण पर निर्भर करता है, इसे ALSA कार्यान्वयन द्वारा दूर कर दिया गया है। इसलिए USB ऑडियो HAL और tinyalsa को USB प्रोटोकॉल के इस भाग के बारे में चिंता करने की आवश्यकता नहीं है।

USB ऑडियो का परीक्षण करें

यूएसबी ऑडियो के लिए सीटीएस परीक्षण की जानकारी के लिए, यूएसबी ऑडियो सीटीएस सत्यापनकर्ता परीक्षण देखें।