تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يتضمّن إصدار Android 10 عملية إعادة ضبط مهمة لمحتوى الصوت.
مدير السياسات لتوفير المزيد من المرونة لدعم حالات استخدام السيارات المعقدة:
استراتيجيات التوجيه الخاصة بالمُصنّع الأصلي.
مجموعات الأحجام القابلة للتخصيص لمجموعات من أنواع مصادر البيانات القديمة باستخدام منحنيات الحجم نفسها
استراتيجيات التوجيه المُعلَن عنها من خلال محرك سياسة الصوت بدلاً من أن تكون غير قابلة للتغيير في البرنامج.
منحنيات الصوت والمجموعات التي يديرها محرّك سياسات الصوت.
إعادة الهيكلة الداخلية للاستعداد للتقسيم المستقبلي بين الرمز المشترك والرموز القابلة للضبط
وتوفّر إدارة أفضل للأجهزة الصوتية على سبيل المثال، قد يتم استخدام جميع خصائص الجهاز وليس فقط
نوعه في قواعد السياسة.
قدّم نظام Android 7.0 تنسيق ملف إعداد سياسة الصوت (XML) للنطاق
يصف طوبولوجيا الصوت.
يجب توفُّر إصدارات Android السابقة باستخدام
device/<company>/<device>/audio/audio_policy.conf
للإشارة إلى الأجهزة الصوتية المتوفّرة في منتجك (يمكنك الاطّلاع على مثال
هذا الملف لجهاز الصوت Galaxy Nexus في
device/samsung/tuna/audio/audio_policy.conf). ومع ذلك، فإن CONF
بسيط، مملوكًا له يقتصر بشكل كبير على وصف المخططات المعقدة
مجالات مثل أجهزة التلفزيون والسيارات.
تم إيقاف audio_policy.conf نهائيًا في Android 7.0 ودعمه
لتحديد طوبولوجيا صوتية باستخدام تنسيق ملف XML الذي يمثل
يمكن للمستخدمين قراءتها، ولديه مجموعة واسعة من أدوات التعديل والتحليل، ومرن
بما يكفي لوصف طوبولوجيا الصوت المعقدة. يستخدم Android 7.0
علامة إصدار USE_XML_AUDIO_POLICY_CONF لاختيار XML
لتنسيق ملفات التهيئة.
مزايا تنسيق XML
كما هو الحال في ملف CONF، يتيح ملف XML تحديد عدد ونوع
الملفات الشخصية لمصادر بيانات الإخراج والإدخال، والأجهزة القابلة للاستخدام للتشغيل والالتقاط
سمات الصوت. بالإضافة إلى ذلك، يوفر تنسيق XML التحسينات التالية:
في نظام Android 10، يتم استخدام أكثر من تطبيق نشط واحد للتسجيل
في الوقت نفسه.
لا يتم رفض بدء التسجيل أبدًا بسبب حدوث تزامن.
registerAudioRecordingCallback(AudioManager.AudioRecordingCallback cb)
يعلم معاودة الاتصال العملاء بتغييرات مسار الالتقاط.
في المواقف التالية، يتلقى العميل عيّنات صوتية صامتة:
هناك حالة استخدام تراعي الخصوصية (مثل VOICE_COMMUNICATION) نشطة.
لا يحتوي العميل على خدمة تعمل في المقدّمة أو واجهة مستخدم تعمل في المقدّمة.
وتتعرّف السياسة على الأدوار الخاصة:
خدمة مخصّصة لتسهيل الاستخدام: يمكن أن تسجّل المحتوى حتى في حال تفعيل حالة استخدام تراعي الخصوصية.
مساعد Google: يعتبر ذلك حساسًا للخصوصية إذا كانت واجهة المستخدم في أعلى الشاشة.
تتمتع الملفات الشخصية الصوتية ببنية مشابهة لأدوات وصف الصوت البسيطة بمنفذ HDMI، مما يتيح
مجموعة من معدلات أخذ العيّنات/أقنعة القنوات لكل تنسيق صوتي
ثمة تعريفات واضحة لجميع عمليات الربط المحتملة بين الأجهزة وساحات المشاركات.
في السابق، أتاحت القاعدة الضمنية إمكانية ربط جميع الأجهزة المتصلة بـ HAL نفسه.
لمنع سياسة الصوت من التحكم في الاتصالات المطلوبة باستخدام تصحيح الصوت
واجهات برمجة التطبيقات. في تنسيق XML، يحدد وصف المخطط قيود الاتصال.
دعم يتضمن تجنُّب تكرار عمليات A2DP القياسية أو USB أو إعادة توجيه الإرسال
التعريفات.
تكون منحنيات الحجم قابلة للتخصيص. في السابق، كانت جداول الحجم غير قابلة للتغيير في البرنامج. في XML
وتنسيقها، ووصف جداول الحجم ويمكن تخصيصها.
القالب في
frameworks/av/services/audiopolicy/config/audio_policy_configuration.xml
تعرض العديد من هذه الميزات قيد الاستخدام.
تنسيق الملف وموقعه
ملف إعداد السياسة الصوتية الجديد هو
audio_policy_configuration.xml ويقع في
/system/etc تعرض الأمثلة التالية ضبطًا بسيطًا لسياسة الصوت في
تنسيق ملف XML لنظام التشغيل Android 12 والإصدارات الأقدم
الإصدار 12 من نظام التشغيل Android.
تتضمن بنية المستوى الأعلى وحدات تتوافق مع كل طبقة تجريد الأجهزة (HAL) صوتية.
واحدة، حيث تحتوي كل وحدة على قائمة بمنافذ المزيج ومنافذ الأجهزة
المسارات:
منافذ المزيج تصف الملفات الشخصية المحتملة للإعدادات لمصادر البيانات
التي يمكن فتحها في HAL للصوت للتشغيل والتسجيل.
تصف منافذ الأجهزة الأجهزة التي يمكن توصيلها باستخدام
نوعها (بالإضافة إلى خصائص العنوان والصوت، إذا كان ذلك اختياريًا).
يتم فصل المسارات عن واصف منفذ المزيج،
تتيح وصف المسارات من جهاز إلى آخر أو من جهاز إلى آخر.
الجداول الحجمية هي قوائم بسيطة بالنقاط التي تحدد المنحنى المستخدم للترجمة
من مؤشر واجهة المستخدم إلى الحجم بالديسيبل. يوفر ملف تضمين منفصل وثائق افتراضية
منحنيات، ولكن يمكن تحويل كل منحنى لحالة استخدام وفئة جهاز معينة
استبداله.
يمكن استخدام طريقة تضمين XML (XInclude) لتضمين سياسة الصوت
معلومات التهيئة الموجودة في ملفات XML الأخرى. يجب أن تكون جميع الملفات المضمَّنة
اتبع البنية الموضحة أعلاه مع فرض القيود التالية:
يمكن أن تحتوي الملفات على عناصر من المستوى الأعلى فقط.
لا يمكن أن تحتوي الملفات على عناصر XInclude.
يجب استخدام التضمينات لتجنُّب نسخ المشروع العادي المفتوح المصدر لنظام Android (AOSP).
معلومات تكوينات وحدة HAL الصوتية لجميع تكوينات السياسة الصوتية
الملفات (التي تكون عرضة للأخطاء). ملف XML الخاص بإعداد سياسة الصوت العادية
لـ HALs الصوتية التالية:
A2DP:a2dp_audio_policy_configuration.xml
إعادة توجيه التشكيلة الفرعية:rsubmix_audio_policy_configuration.xml
USB:usb_audio_policy_configuration.xml
تنظيم رمز سياسة الصوت
تم تقسيم "AudioPolicyManager.cpp" إلى عدة وحدات.
لتسهيل صيانتها وتهيئتها. يوفر تنظيم
تشمل السمة frameworks/av/services/audiopolicy
الوحدات التالية.
الوحدة
الوصف
/managerdefault
تتضمن الواجهات العامة وتنفيذ السلوك المشترك بين جميع
التطبيقات. مماثلة لـ AudioPolicyManager.cpp من خلال المحرك
الوظائف والمفاهيم الشائعة دائمًا.
/common
تحدّد هذه السياسة الفئات الأساسية (مثل بُنى البيانات لبثّ الصوت الناتج عن الإدخال.
الملفات الشخصية واصفات الأجهزة الصوتية ورموز تصحيح الصوت ومنافذ الصوت). كان هذا في السابق
المحددة داخل AudioPolicyManager.cpp.
/engine
يؤدي هذا الخيار إلى تنفيذ القواعد التي تحدِّد الجهاز ووحدات التخزين التي يجب استخدامها.
في حالة استخدام معينة. تستخدم واجهة قياسية بالجزء العام، مثل
بهدف الحصول على الجهاز المناسب لتشغيل أو تسجيل حالة استخدام معيّنة، أو
ضبط الأجهزة المتصلة أو الحالة الخارجية (أي حالة اتصال الاستخدام القسري) التي
تغيير قرار التوجيه.
تنفيذ محرّك بحث السياسات الذي يعتمد على إطار عمل المَعلمات (انظر أدناه)
تستند عملية الضبط إلى إطار عمل المعلَمات وحيث يتم تطبيق السياسة
محددة باستخدام ملفات XML.
/enginedefault
تنفيذ محرّك البحث للسياسة بالاستناد إلى أداة "مدير سياسة الصوت في Android" السابق
وعمليات التنفيذ. وهذا هو الخيار الافتراضي ويتضمن قواعد غير قابلة للتغيير
مع عمليات تنفيذ Nexus وAOSP.
/service
وتشمل واجهات أداة الربط وسلسلة المحادثات وقفل التنفيذ باستخدام
الواجهة إلى باقي إطار العمل.
الإعداد باستخدام إطار عمل المَعلمات
تم تنظيم رمز سياسة الصوت لتسهيل فهمه
الحفاظ عليها مع دعم سياسة الصوت المحددة بالكامل من خلال الإعداد
الملفات. يستند تصميم سياسة المؤسسة والصوت على مَعلمة Intel
إطار العمل، وهو إطار عمل مستند إلى المكونات الإضافية ومستند إلى القواعد للتعامل مع المعلمات.
يتيح استخدام سياسة الصوت القابلة للضبط للمصنّعين الأصليين للأجهزة تنفيذ ما يلي:
وصف بنية النظام ومعاملاته في ملف XML.
الكتابة (في C++) أو إعادة استخدام الخلفية (المكون الإضافي) للوصول إلى الوصف الموصوف
المعلَمات.
تحديد الشروط/القواعد (في ملف XML أو بلغة خاصة بالنطاق) التي يمكن بناءً عليها
يجب أن تأخذ معلمة معينة قيمة معينة.
يتضمن AOSP مثالاً على ملف إعداد سياسة صوتية يستخدم المعلمة
إطار العمل على Frameworks/av/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/PolicyConfigurableDomains.xml. بالنسبة
راجع وثائق Intel
إطار عمل المَعلمات:
في نظام التشغيل Android 10 أو الإصدارات الأقدم، تشمل سياسة الصوت القابل للضبط
باستخدام خيار الإصدار USE_CONFIGURABLE_AUDIO_POLICY.
إصدار سياسة الصوت في نظام التشغيل Android 11 أو الإصدارات الأحدث
محرك البحث المحدد في ملف audio_policy_configuration.xml.
لاختيار محرك سياسة الصوت القابل للضبط، اضبط قيمة engine_library
سمة العنصر globalConfiguration إلى configurable
كما في المثال التالي:
طرَح Android 6.0 واجهة برمجة تطبيقات عامة للتعداد والاختيار تستند إلى
في الجزء العلوي من البنية الأساسية للتصحيح الصوتي/منفذ الصوت ويسمح للتطبيق
للمطورين للإشارة إلى تفضيل لإخراج أو إدخال جهاز معين
السجلات أو المقاطع الصوتية المتصلة
في Android 7.0، يتم التحقق من واجهة برمجة تطبيقات التعداد والاختيار من خلال اختبارات CTS.
ويمتد نطاقها ليشمل توجيه مجموعات بث صوتي C/C++ الأصلية (OpenSL ES).
يستمر توجيه مجموعات البث الأصلية باستخدام Java، بالإضافة إلى
واجهة AudioRouting تحلّ محلّها وتدمجها وتتوقّف عن العمل
طرق التوجيه الصريحة التي كانت خاصة بـ AudioTrack
صفان (AudioRecord).
للحصول على تفاصيل حول واجهة برمجة تطبيقات التعداد والاختيار، يمكنك الاطّلاع على
أجهزة Android
واجهات الإعداد وOpenSLES_AndroidConfiguration.h.
للحصول على تفاصيل حول التوجيه الصوتي، راجِع
التوجيه الصوتي:
دعم قنوات متعددة
إذا كان الجهاز وبرنامج التشغيل يتيحان الصوت متعدد القنوات عبر HDMI، يمكنك
إخراج البث الصوتي مباشرةً إلى الأجهزة الصوتية (وهذا يتجاوز
AudioFlinger حتى لا يتم تقليصها إلى قناتين) طبقة تجريد الأجهزة (HAL) الصوتية
يجب كشف ما إذا كان الملف الشخصي لبثّ إخراج الصوت متوافقًا مع الصوت المتعدد القنوات
والإمكانات. إذا كشفت HAL عن إمكاناتها، سيتعين على مدير السياسات التلقائي
تسمح بتشغيل قنوات متعددة عبر HDMI. للحصول على تفاصيل التنفيذ، يمكنك الاطّلاع على
device/samsung/tuna/audio/audio_hw.c
لتحديد أنّ منتجك يتضمّن إخراجًا صوتيًا متعدّد القنوات، عدِّل
ملف إعداد سياسة الصوت لوصف إخراج قنوات متعددة في
المنتج. المثال التالي من
frameworks/av/services/audiopolicy/config/primary_audio_policy_configuration_tv.xml
تعرض قناع قناة ديناميكيًا، ما يعني أنّ مدير السياسة الصوتية يرسل طلبات بحث إلى القناة
الأقنعة التي تتوافق مع حوض HDMI بعد التوصيل.
يمكنك أيضًا تحديد قناع قناة ثابت مثل
AUDIO_CHANNEL_OUT_5POINT1 مزجت أداة AudioFlinger
إلى صوت ستيريو تلقائيًا عند إرساله إلى جهاز سماعي غير مفعَّل
تتيح لك هذه الميزة إنشاء محتوى صوتي متعدّد القنوات
برامج ترميز الوسائط
تأكد من أن برامج ترميز الصوت التي تدعمها الأجهزة وبرامج التشغيل بشكل صحيح.
المعلَن عنها لمنتجك. للحصول على التفاصيل، يمكنك مراجعة
عرض برامج الترميز
إطار العمل:
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2024-08-23 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2024-08-23 (حسب التوقيت العالمي المتفَّق عليه)"],[],[]]