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

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

श्रोता

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

विकास मोड

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

होस्ट मोड

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

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

ओटीजी

चित्र 1. ऑन-द-गो (OTG) अडैप्टर

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

संचालित हब

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

गौण मोड

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

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

यूएसबी ऑडियो

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

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

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

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

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

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

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

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

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

चैनल

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

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

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

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

समकालिक मोड के भीतर, तीन उप-मोड हैं:

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

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

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

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

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

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

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

यूएसबी ऑडियो क्लास के लिए एंड्रॉइड सपोर्ट

विकास मोड

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

होस्ट मोड

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 (स्टीरियो) होनी चाहिए

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

गौण मोड

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

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

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

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

यूएसबी डिजिटल ऑडियो के अनुप्रयोग

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

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

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

डीएसी तुलना

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 ऑडियो के लिए CTS परीक्षण के बारे में जानकारी के लिए, USB ऑडियो CTS सत्यापनकर्ता परीक्षण देखें।