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

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

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

श्रोता

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

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

USB का अवलोकन

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

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

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

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

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

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

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

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

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

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

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

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

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

विकास मोड

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

होस्ट मोड

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

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

ओटीजी

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

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

संचालित हब

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

सहायक मोड

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

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

यूएसबी ऑडियो

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

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

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

USB ऑडियो क्लास

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

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

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

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

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

चैनल

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

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

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

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

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

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

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

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

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

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

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

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

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

विकास मोड

विकास मोड में यूएसबी ऑडियो समर्थित नहीं है।

होस्ट मोड

Android 5.0 (API स्तर 21) और इसके बाद के संस्करण USB ऑडियो क्लास 1 (UAC1) सुविधाओं के एक सबसेट का समर्थन करते हैं:

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

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

सहायक मोड

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

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

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

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

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

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

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

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

डीएसी तुलना

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

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

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

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

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

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

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

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

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

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

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

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

होस्ट मोड में डिबगिंग

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

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

ऑडियो परिधीय विक्रेताओं के लिए अनुशंसाएँ

Android डिवाइस के साथ इंटर-ऑपरेट करने के लिए, ऑडियो पेरिफेरल वेंडर को चाहिए:

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

एंड्रॉइड डिवाइस ओईएम और एसओसी विक्रेताओं के लिए सिफारिशें

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

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

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

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

सोर्स कोड

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

hardware/libhardware/modules/usbaudio/

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

यूएसबी ऑडियो का परीक्षण

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