تتناول هذه المقالة ميزات Android التي تتيح استخدام الصوت الرقمي عبر USB والبروتوكولات ذات الصلة المستندة إلى USB.
الجمهور
يستهدف جمهور هذه المقالة المصنّعين الأصليين لأجهزة Android، وموفّري وحدات المعالجة المركزية (SoC)، وموفّري الأجهزة الطرفية للصوت عبر USB، ومطوّري تطبيقات الصوت المتقدّمة، وغيرهم من الأشخاص الذين يريدون فهمًا تفصيليًا للمكونات الداخلية للصوت الرقمي عبر USB على Android.
على المستخدمين النهائيين لأجهزة Nexus الاطّلاع على المقالة تسجيل الصوت وتشغيله باستخدام وضع مضيف USB في مركز مساعدة Nexus بدلاً من ذلك. على الرغم من أنّ هذه المقالة ليست موجّهة للمستخدمين النهائيين، قد يجد بعض المستهلكين من عشاق الموسيقى أجزاءً مثيرة للاهتمام.
نظرة عامة على USB
يتم وصف "الناقل التسلسلي العالمي" (USB) بشكل غير رسمي في مقالة Wikipedia بعنوان USB، ويتم تحديده رسميًا من خلال المعايير التي تنشرها USB Implementers Forum, Inc. وللاطّلاع على المعلومات بسهولة، سنلخّص هنا المفاهيم الرئيسية لـ USB، ولكن المعايير هي المرجع الرسمي.
المفاهيم الأساسية والمصطلحات
USB هو ناقل يستخدم مُشغِّلاً واحدًا لعمليات نقل البيانات يُعرف باسم المضيف. يتواصل المضيف مع الأجهزة الطرفية عبر الحافلة.
ملاحظة: إنّ مصطلحَي الجهاز والملحق هما بديلان شائعان لمصطلح الجهاز الملحق. ونحن نتجنب استخدام هذه المصطلحات هنا، لأنّه يمكن الخلط بينها وبين جهاز Android أو المفهوم المخصّص لنظام التشغيل Android والذي يُعرف باسم وضع الملحق.
من الأدوار المهمة للمضيف هو التعداد: وهي عملية رصد الأجهزة الطرفية المتصلة باللوحة الأساسية، وطلب معلومات عن خصائصها المعبَّرة عنها من خلال الموصّفات.
قد يكون الجهاز الملحق عنصرًا ماديًا واحدًا، ولكنه في الواقع ينفِّذ وظائف منطقية متعددة. على سبيل المثال، يمكن أن تتضمّن كاميرا الويب الملحقة وظيفة كاميرا و وظيفة صوتية للميكروفون.
تحتوي كل وظيفة من وظائف الجهاز الملحق على واجهة تحدِّد بروتوكول التواصل مع هذه الوظيفة.
يتواصل المضيف مع جهاز طرفي من خلال مسار إلى نقطة نهاية، وهو مصدر بيانات أو وجهة توفّرها إحدى وظائف الجهاز الطرفي.
هناك نوعان من الأنابيب: الرسالة والبث. تُستخدَم قناة الرسائل للتحكّم في الحالة والاتجاهَين. يتم استخدام أنبوب البث لنقل البيانات في اتجاه واحد.
يبدأ المضيف جميع عمليات نقل البيانات، وبالتالي يتم التعبير عن المصطلحين الإدخال والإخراج بالنسبة إلى المضيف. تنقل عملية الإدخال البيانات من الجهاز الملحق إلى الجهاز المضيف، بينما تنقل عملية الإخراج البيانات من الجهاز المضيف إلى الجهاز الملحق.
هناك ثلاث طرق رئيسية لنقل البيانات: النقل المتقطّع والنقل المجمّع والنقل المتزامن. ستتم مناقشة الوضع المتزامن بشكل أكبر في سياق الصوت.
قد يحتوي الجهاز الملحق على محطات تتصل بالعالم الخارجي، خارج الجهاز الملحق نفسه. بهذه الطريقة، يعمل الجهاز الملحق على الترجمة بين بروتوكول USB وإشارات "العالم الواقعي". المحطات هي عناصر منطقية للدالة.
أوضاع USB في Android
وضع التطوير
كان وضع التطوير متوفّرًا منذ الإصدار الأول من Android. يظهر جهاز Android كجهاز USB تابع لجهاز كمبيوتر مضيف يعمل بنظام تشغيل كمبيوتر مكتبي، مثل Linux أو Mac OS X أو Windows. وتكون وظيفة الجهاز الملحق الوحيدة المرئية هي إما Android fastboot أو Android Debug Bridge (adb). يتم وضع بروتوكولَي fastboot وadb فوق وضع نقل البيانات المجمّعة عبر USB.
وضع المضيف
تم تقديم وضع المضيف في الإصدار 3.1 من نظام التشغيل Android (المستوى 12 لواجهة برمجة التطبيقات).
بما أنّ جهاز Android يجب أن يعمل كمضيف، وبما أنّ معظم أجهزة Android تتضمّن موصّل USB صغيرًا لا يسمح مباشرةً بتشغيل المضيف، يلزم عادةً استخدام محوِّل للاستخدام أثناء التنقل (OTG) مثل هذا:
![OTG](https://source.android.google.cn/static/docs/core/audio/images/otg.jpg?authuser=0&hl=ar)
الشكل 1: محوِّل OTG
قد لا يقدّم جهاز Android طاقة كافية لتشغيل جهاز محيطي معيّن، وذلك استنادًا إلى مقدار الطاقة التي يحتاجها الجهاز المحيطي ومقدار الطاقة التي يمكن لجهاز Android توفيرها. حتى في حال توفُّر طاقة كافية، قد يتم تقليل شحن بطارية جهاز Android بشكلٍ كبير. في هذه الحالات، استخدِم مركزًا مزوّدًا بالطاقة، مثل هذا:
![مركز تحكم](https://source.android.google.cn/static/docs/core/audio/images/hub.jpg?authuser=0&hl=ar)
الشكل 2: مركز تحكم
وضع الإكسسوار
تم تقديم وضع الملحق في Android 3.1 (المستوى 12 لواجهة برمجة التطبيقات) وتم نقله إلى الإصدار 2.3.4 من Android. في هذا الوضع، يعمل جهاز Android كجهاز طرفي USB، ويخضَع للتحكّم من جهاز آخر، مثل قاعدة شحن تعمل كمضيف. الفرق بين وضع التطوير ووضع الملحق هو أنّه تظهر وظائف USB الإضافية للمضيف، بالإضافة إلى adb. يبدأ جهاز Android في وضع المطوّر ثم ينتقل إلى وضع الملحق من خلال عملية إعادة التفاوض.
تم توسيع نطاق "وضع الملحق" ليشمل ميزات إضافية في Android 4.1، وعلى وجه الخصوص، الميزات الصوتية الموضّحة أدناه.
مكبر صوت USB
فئات USB
تحتوي كل وظيفة من وظائف الأجهزة الطرفية على مستند فئة الجهاز مرتبط بها يحدِّد البروتوكول العادي لهذه الوظيفة. يتيح ذلك للخوادم والوظائف الطرفية المتوافقة مع الفئة التفاعل مع بعضها بدون معرفة تفصيلية عن آلية عمل بعضها. من المهم أن تكون فئة الجهاز متوافقة إذا كان الجهاز المضيف والجهاز الملحق مقدَّمَين من جهات مختلفة.
يُستخدَم مصطلح بدون برنامج تشغيل بشكل شائع كبديل لعبارة متوافق مع الفئة، ويشير ذلك إلى إمكانية استخدام الميزات العادية لجهاز الطرفي هذا بدون الحاجة إلى تثبيت برنامج تشغيل خاص بنظام التشغيل. يمكن افتراض أنّ الجهاز الملحق الذي يتم الإعلان عنه على أنّه "لا يتطلّب برنامج تشغيل" لأنظمة التشغيل الرئيسية للكمبيوتر المكتبي سيكون متوافقًا مع الفئة، على الرغم من أنّه قد تكون هناك استثناءات.
فئة الصوت عبر USB
لا نهتم هنا إلا بالأجهزة الطرفية التي تنفِّذ وظائف الصوت، وبالتالي تلتزم بفئة أجهزة الصوت. هناك إصداران من مواصفات فئة الصوت في USB: الفئة 1 (UAC1) والفئة 2 (UAC2).
المقارنة بفئات أخرى
يتضمّن USB العديد من فئات الأجهزة الأخرى، وقد يتم الخلط بين بعضها وفئة الصوت. يتم استخدام فئة مساحة التخزين الضخم (MSC) لمنح التطبيقات إذن الوصول إلى الوسائط في المجال، في حين أنّ بروتوكول نقل الوسائط (MTP) مخصّص للوصول الكامل إلى ملفات الوسائط. يمكن استخدام كل من MSC وMTP لنقل الملفات الصوتية، ولكن فئة USB الصوتية فقط هي المناسبة للبث المباشر.
أطراف توصيل الصوت
تكون أطراف الجهاز الصوتي الملحق عادةً رقمية. يتم تحويل الإشارة التناظرية المقدَّمة في وحدة الإدخال الطرفية إلى إشارة رقمية باستخدام محوِّل تناظري إلى رقمي (ADC)، ويتم نقلها عبر بروتوكول USB لاستخدامها في المضيف. مصدر data ADC للمضيف وبالمثل، يرسل المضيف إشارة صوت رقمية عبر بروتوكول USB إلى الجهاز الملحق، حيث يحوّل محوِّل رقمي إلى تناظري (DAC) الإشارة ويعرضها على محطة إخراج تناظرية. ويكون DAC هو الوجهة للمضيف.
القنوات
يمكن أن يتضمّن الجهاز الملحق الذي يتضمن وظيفة صوتية طرفية مصدر أو طرفية وجهة أو كليهما. يمكن أن يتضمّن كل اتجاه قناة واحدة (صوت أحادي) أو قناتين (صوت استيريو) أو أكثر. تُعرف الأجهزة الطرفية التي تتضمّن أكثر من قناتَين باسم الأجهزة المتعددة القنوات. من الشائع تفسير البث الاستيريو على أنّه يتألف من قناة يسرى ويمنى، وبالتالي تفسير البث المتعدّد القنوات على أنّه يتضمّن مواقع جغرافية تتوافق مع كل قناة. ومع ذلك، من المناسب أيضًا (خاصةً في ما يتعلّق بصوت USB أكثر من HDMI) عدم تحديد أي معنى مكاني محدد عادي لكل قناة. في هذه الحالة، يعود الأمر إلى التطبيق والمستخدم لتحديد كيفية استخدام كل قناة. على سبيل المثال، قد يتضمّن بث USB بأربع قنوات أول ثلاث قنوات مرتبطة بميكروفونات مختلفة في غرفة، وتلقّي قناة الأخيرة الإدخال من راديو AM.
وضع النقل المتزامن
يستخدم الصوت عبر USB وضع النقل المتزامن لخصائصه في الوقت الفعلي، على حساب استرداد الأخطاء. في الوضع المتزامن، يتم ضمان عرض النطاق، ويتم رصد أخطاء نقل البيانات باستخدام فحص التكرار الدوري (CRC). ولكن لا يتم تسجيل تأكيد الحزمة أو إعادة إرسالها في حال حدوث خطأ.
تحدث عمليات الإرسال المتزامنة في كل فترة بدء إطار (SOF). تبلغ مدة بدء النقل ملي ثانية واحدة للسرعة الكاملة و125 ميكرو ثانية للسرعة العالية. يحمل كل إطار بالسرعة الكاملة ما يصل إلى 1023 بايت من الحمولة، ويحمل كل إطار بالسرعة العالية ما يصل إلى 1024 بايت. عند جمع هذه القيم معًا، نحسب الحد الأقصى لمعدل النقل على أنّه 1,023,000 أو 8,192,000 بايت في الثانية. ويحدّد هذا الحدّ الأقصى النظري لمعدّل sampling rate المشترَك للصوت وعدد القنوات وعمق البت. يكون الحدّ العملي أقل.
ضمن الوضع المتزامن، هناك ثلاثة أوضاع فرعية:
- توافقي
- بدون تزامن
- متزامن
في الوضع الفرعي التكيُّفي، يتكيّف مصدر أو وجهة الجهاز الملحق مع معدّل أخذ العينات المتغير المحتمل للمضيف.
في الوضع الفرعي غير المتزامن (يُعرف أيضًا باسم الملاحظات الضمنية)، تحديد المصدر أو المصرف معدّل أخذ العينات، ويتكيّف المضيف مع ذلك. الميزة النظرية الأساسية للوضع الفرعي غير المتزامن هي أنّ ساعة USB الخاصة بالمصدر أو المستلِم تكون أقرب جسديًا وكهربائيًا إلى الساعة التي تشغِّل وحدة تحويل الإشارات التناظرية إلى رقمية أو وحدة تحويل الإشارات الرقمية إلى تناظرية (وقد تكون نفسها أو مشتقة منها). ويعني هذا التقارب أنّ الوضع الفرعي غير المتزامن من المفترض أن يكون أقل عرضة للتشويش في الساعة. بالإضافة إلى ذلك، قد يكون الموقّت المستخدَم في وحدة التحكّم الرقمي في الجهد أو وحدة التحكّم الرقمي في الجهد البديل مصمّمًا لتوفير دقة أعلى وانحراف أقل من موقّت المضيف.
في الوضع الفرعي المتزامن، يتم نقل عدد ثابت من وحدات البايت في كل فترة SOF. يتم الحصول على معدّل عيّنة الصوت بشكل فعّال من ساعة USB. لا يتم استخدام الوضع الفرعي المتزامن بشكل شائع مع الصوت لأنّ كلاً من المضيف والجهاز الملحق يخضعان لساعة USB.
يلخِّص الجدول التالي الأوضاع الفرعية للبث الصوتي المتزامن:
الوضع الفرعي | عدد وحدات البايت لكل حزمة |
معدّل البيانات في الملف الصوتي يتم تحديده من خلال |
يُستخدَم للصوت |
---|---|---|---|
تكيُّفي | متغير | مضيف | نعم |
غير متزامن | متغير | جهاز ملحق | نعم |
متزامن | ثابتة | ساعة USB | لا |
من الناحية العملية، يُعدّ الوضع الفرعي مهمًا بالطبع، ولكن يجب أيضًا مراعاة عوامل أخرى.
توافق Android مع فئة الصوت عبر USB
وضع التطوير
لا تتوفّر إمكانية استخدام الصوت عبر USB في وضع المطوّر.
وضع المضيف
يتوافق الإصدار 5.0 من نظام التشغيل Android (المستوى 21 من واجهة برمجة التطبيقات) والإصدارات الأحدث مع مجموعة فرعية من ميزات فئة الصوت عبر USB من الفئة 1 (UAC1):
- يجب أن يعمل جهاز Android كمضيف.
- يجب أن يكون تنسيق الصوت PCM (نوع الواجهة I).
- يجب أن يكون عمق البت 16 بت أو 24 بت أو 32 بت، مع وضع 24 بت من بيانات الصوت المفيدة على يمين المحتوى ضمن البتات الأكثر أهمية في الكلمة التي تبلغ 32 بت.
- يجب أن يكون معدّل البيانات في الملف الصوتي 48 أو 44.1 أو 32 أو 24 أو 22.05 أو 16 أو 12 أو 11.025 أو 8 كيلوهرتز.
- يجب أن يكون عدد القنوات قناة واحدة (صوت أحادي) أو قناتان (صوت استيريو).
قد يؤدي فحص رمز المصدر لإطار عمل Android إلى عرض رمز إضافي يتجاوز الحد الأدنى المطلوب لتفعيل هذه الميزات. ولكن لم يتم التحقّق من صحة هذا الرمز، لذا لم يتمّ طلب الميزات الأكثر تقدمًا بعد.
وضع الإكسسوار
أضاف نظام التشغيل Android 4.1 (المستوى 16 لواجهة برمجة التطبيقات) إمكانية محدودة لتشغيل الصوت على المضيف. في وضع الملحق، يوجّه Android إخراج الصوت تلقائيًا إلى منفذ USB. وهذا يعني أنّ جهاز Android يعمل كمصدر بيانات للمضيف، مثل محطة الإرساء.
تتوفّر الميزات التالية في الصوت في وضع "الملحق":
- يجب أن يتحكّم في جهاز Android مضيف لديه معرفة بالموضوع ويملك القدرة على نقل بيانات الصوت من نقطة النهاية المناسبة بعد نقل جهاز Android من وضع التطوير إلى وضع الملحق. وبالتالي، لا يظهر جهاز Android "بدون سائق" للمضيف.
- يجب أن يكون الاتجاه إدخال، ويتم التعبير عنه بالنسبة إلى المضيف.
- يجب أن يكون تنسيق الملف الصوتي هو PCM بسعة 16 بت.
- يجب أن يكون معدّل البيانات في الملف الصوتي 44.1 كيلوهرتز.
- يجب أن يكون عدد القنوات 2 (صوت استيريو)
لم يتم اعتماد ميزة الصوت في وضع الملحق على نطاق واسع، ولا يُنصح حاليًا باستخدامها في التصاميم الجديدة.
تطبيقات الصوت الرقمي عبر USB
كما يشير الاسم، يتم تمثيل إشارة الصوت الرقمية عبر USB ببث بيانات رقمي بدلاً من إشارة تمثيلية التي يستخدمها موصِّل سماعات الرأس الصغير الشائع من النوع TRS. وفي النهاية، يجب تحويل أي إشارة رقمية إلى إشارة تمثيلية قبل سماعها. هناك مفاضلات في اختيار مكان وضع هذه الإحالة الناجحة.
قصة جهازَي DAC
في مثال الرسم البياني أدناه، نقارن تصميمَين. أولاً، لدينا جهاز جوّال مزوّد بمعالج تطبيقات (AP) ووحدة تحويل رقمي إلى تمثيلي (DAC) ومضخّم صوت، وموصّل TRS تناظري متصل بسماعات الرأس. نعتبر أيضًا الجهاز الجوّال الذي يتضمّن منفذ USB ومتصلاً بمحوِّل رقمي إلى تمثيلي (DAC) ومضخّم صوت USB خارجيين، بالإضافة إلى سماعات الرأس، جهازًا متوافقًا.
![مقارنة DAC](https://source.android.google.cn/static/docs/core/audio/images/dac.png?authuser=0&hl=ar)
الشكل 3: مقارنة بين وحدتَي تحويل رقمي إلى تمثيلي
أي تصميم هو الأفضل؟ تعتمد الإجابة على احتياجاتك. ولكل منها مزاياه وعيوبه.
ملاحظة: هذه مقارنة مصطنعة، لأنّه من المحتمل أن يتوفّر على جهاز Android الحقيقي كلا الخيارَين.
التصميم الأول (أ) أبسط وأرخص ويستهلك طاقة أقل، وسيكون تصميمًا أكثر موثوقية بافتراض أنّ المكوّنات الأخرى موثوقة بالقدر نفسه. ومع ذلك، عادةً ما تكون هناك مفاضلات بين جودة الصوت ومتطلبات أخرى. على سبيل المثال، إذا كان هذا الجهاز مخصّصًا للسوق العام، قد يكون مصمّمًا ليناسب احتياجات المستهلك العادي، وليس عشاق الموسيقى.
في التصميم الثاني، يمكن تصميم الجهاز الخارجي الملحق للصوت (ج) لتوفير جودة صوت أعلى وإخراج طاقة أكبر بدون التأثير في تكلفة جهاز Android الأساسي (ب) المخصّص للسوق الشاملة. نعم، هذا التصميم أكثر تكلفة، ولكن لا يتحمل هذه التكلفة سوى المستخدمين الذين يريدون الحصول عليه.
تشتهر الأجهزة الجوّالة باستخدام لوحات دارة كهربائية عالية الكثافة، ما قد يؤدي إلى زيادة فرص حدوث تداخل يؤدي إلى تدهور الإشارات التناظرية المجاورة. يكون الاتصال الرقمي أقل عرضةً لتأثير الضوضاء، لذلك فإنّ نقل وحدة تحويل رقمي إلى تمثيلي (DAC) من جهاز Android (أ) إلى لوحة دائرة خارجية (ج) يسمح بفصل المراحل التناظرية النهائية بشكلٍ جسدي وكهربائي عن لوحة الدائرة الكثيفة والضوضاء العالية، ما يؤدي إلى صوت بدرجة دقة أعلى.
من ناحية أخرى، التصميم الثاني أكثر تعقيدًا، ومع زيادة التعقيد، تزداد فرص حدوث مشاكل. هناك أيضًا وقت استجابة إضافي من وحدات تحكّم USB.
تطبيقات وضع المضيف
تشمل التطبيقات الصوتية النموذجية في وضع مضيف USB ما يلي:
- الاستماع إلى الموسيقى
- الاتصالات الهاتفية
- الرسائل الفورية والمحادثة الصوتية
- تسجيل
في جميع هذه التطبيقات، يرصد نظام Android جهازًا رقميًا متوافقًا للصوت ملحقًا عبر USB، ويوجّه تلقائيًا تشغيل الصوت وتسجيله بشكلٍ مناسب استنادًا إلى قواعد سياسة الصوت. يتم تشغيل المحتوى الاستيريو على أول قناتين من الجهاز الملحق.
لا تتوفّر واجهات برمجة تطبيقات خاصة بالصوت الرقمي عبر USB. في ما يتعلّق بالاستخدام المتقدّم، قد يتداخل التوجيه التلقائي مع التطبيقات التي تتضمّن واجهة USB. بالنسبة إلى هذه التطبيقات، أوقِف التوجيه التلقائي من خلال عنصر التحكّم ذي الصلة في قسم "الوسائط" ضمن الإعدادات / خيارات المطوّرين.
تصحيح الأخطاء أثناء استخدام وضع المضيف
لا يتوفّر تصحيح أخطاء adb عبر USB أثناء استخدام وضع مضيف USB. راجِع قسم الاستخدام اللاسلكي في Android Debug Bridge للحصول على بديل.
تنفيذ ميزة "الصوت عبر USB"
اقتراحات لمورّدي الأجهزة الصوتية الخارجية
لكي تعمل الأجهزة الصوتية الملحقة مع أجهزة Android، على مورّدي هذه الأجهزة استيفاء الشروط التالية:
- التصميم بما يتوافق مع فئة الصوت: يستهدف Android حاليًا الفئة 1، ولكن من الحكمة التخطيط للفئة 2.
- تجنُّب الميزات الغريبة
- اختبار التشغيل التفاعلي مع أجهزة Android المرجعية والرائجة
- توثيق الميزات المتوافقة والامتثال لفئة الصوت ومتطلبات الطاقة وما إلى ذلك بوضوح لكي يتمكّن المستهلكون من اتخاذ قرارات مدروسة
اقتراحات لمصنّعي الأجهزة الأصليين لأجهزة Android ومورّدي منظومة المعالجة على الرقاقة
لتفعيل ميزة الصوت الرقمي عبر USB، على المصنّعين الأصليين للأجهزة ومورّدي وحدات المعالجة المركزية (SoC) ما يلي:
- تصميم الأجهزة لتتوافق مع وضع مضيف USB
- تفعيل دعم مضيف USB العام على مستوى إطار العمل
من خلال علامة ميزة
android.hardware.usb.host.xml
- تفعيل جميع ميزات kernel المطلوبة: وضع مضيف USB، وصوت USB، ووضع النقل المتزامن
- اتّباع آخر إصدارات النواة ورموز التصحيح: على الرغم من الهدف النبيل المتمثل في الامتثال للفئة، هناك أجهزة صوتية خارجية حالية تتضمّن عيوبًا، وتوفر أحدث إصدارات النواة حلولاً بديلة لهذه العيوب
- تفعيل سياسة الصوت عبر USB كما هو موضّح أدناه
- إضافة audio.usb.default إلى PRODUCT_PACKAGES في device.mk
- اختبار إمكانية التشغيل التفاعلي مع أجهزة الصوت الملحقة الشائعة عبر USB
تفعيل سياسة الصوت عبر USB
لتفعيل الصوت عبر USB، أضِف إدخالًا إلىملف إعدادات سياسة الصوت. يمكن العثور عليه عادةً هنا:
device/oem/codename/audio_policy.conf
يجب استبدال مكوّن مسار الملف "oem" باسم المصنّع الأصلي للجهاز الذي يصنع جهاز Android، ويجب استبدال "codename" باسم الجهاز الرمزي.
في ما يلي مثال على إدخال:
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 } } } ... }
رمز مصدر
يمكن العثور على تنفيذ "طبقة تجريد الأجهزة" (HAL) للصوت عبر USB على الرابط التالي:
hardware/libhardware/modules/usbaudio/
يعتمد HAL لصوت USB بشكل كبير على tinyalsa الموضّح في مصطلحات الصوت. على الرغم من أنّ الصوت عبر USB يعتمد على عمليات النقل المتزامنة، يتمّ تجريد هذا الإجراء من خلال تنفيذ ALSA. وبالتالي، لا يحتاج واجهة HAL للصوت عبر USB وtinyalsa إلى القلق بشأن هذا الجزء من بروتوكول USB.
اختبار الصوت عبر USB
للحصول على معلومات عن اختبار CTS لصوت USB، يُرجى الاطّلاع على اختبارات أداة التحقّق من توافق الأجهزة مع معيار CTS لصوت USB.