إدارة موارد الصوت أثناء التعليق

لضمان ثبات النظام والقدرة على الانتقال إلى حالات انخفاض الطاقة، مثل "التعليق إلى ذاكرة الوصول العشوائي" (S2R) أو "التعليق إلى القرص" (S2D)، من الضروري إدارة موارد الصوت بشكل صحيح أثناء عمليات نقل الطاقة.

قد لا تُحرر التطبيقات دائمًا تدفقات إدخال الصوت أو إخراجه عندما يبدأ النظام عملية التعليق. يمكن أن تمنع تدفقات الصوت النشطة النظام الفرعي الصوتي والأجهزة الأساسية من أن تصبح غير مستخدمة من قِبل أي برنامج حاليًا، ما قد يمنع المنظومة على رقاقة (SoC) من الدخول في وضع النوم العميق. ويؤدي ذلك إلى فشل محاولات التعليق وزيادة استهلاك الطاقة.

على مصنّعي المعدات الأصلية تنفيذ آلية احتياطية قوية ضمن تنفيذ طبقة تجريد أجهزة الصوت (HAL) للتعامل مع تدفقات الصوت النشطة أثناء عمليات نقل التعليق. وهذا أمر ضروري لثبات النظام الأساسي، بغض النظر عن سلوك التطبيق.

على التطبيقات إدارة موارد الصوت بشكل صحيح، ولكن لا يمكن للنظام الاعتماد على ذلك في عمليات نقل حالة الطاقة الأساسية. إنّ طبقة تجريد أجهزة الصوت (HAL) هي الطبقة المناسبة لفرض إيقاف تفعيل الموارد لضمان قدرة النظام على الانتقال إلى حالات التعليق. ننصحك باتّباع هذا النهج لإدارة الطاقة بشكل قوي.

تنفيذ إدارة الطاقة

لتنفيذ إدارة قوية للطاقة في طبقة تجريد أجهزة الصوت (HAL)، اتّبِع الخطوات التالية:

  1. رصد تغييرات حالة طاقة النظام، وخاصةً الانتقال إلى حالة التعليق

  2. عندما يستعد النظام للتعليق، تدخَّل إذا كانت أي تدفقات صوتية (إدخال وإخراج) لا تزال نشطة:

    • حرِّر تدفقات إخراج الأجهزة وتجاهَل البيانات الواردة من إطار عمل الصوت.
    • حرِّر تدفقات إدخال الأجهزة وأرسِل صوتًا صامتًا إلى إطار العمل.

    يضمن هذا الإجراء على مستوى طبقة تجريد الأجهزة (HAL) إمكانية أن تصبح أجهزة الصوت غير مستخدمة من قِبل أي برنامج حاليًا، ما يسمح للنظام بالتعليق بنجاح، حتى إذا لم يحرِّر أحد التطبيقات موارد الصوت.

  3. عندما يستأنف النظام نشاطه بعد التعليق، أعِد النظام الفرعي الصوتي إلى حالته النشطة. ويشمل ذلك إلغاء كتم أي تدفقات إخراج تم كتمها سابقًا وإعادة تفعيل تدفقات الإدخال، ما يسمح للتطبيقات بمواصلة تشغيل الصوت وتسجيله.

التأثير على التطبيقات

تؤثر إدارة موارد الصوت على مستوى طبقة تجريد الأجهزة (HAL) أثناء التعليق في التطبيقات بالطرق التالية:

  • التعليق بدون ملاحظة: بالنسبة إلى التطبيقات التي تستخدم ميكروفونًا، يكون تعليق النظام (الانتقال إلى حالة "التعليق إلى القرص" أو "التعليق إلى ذاكرة الوصول العشوائي") غير ملحوظ.
  • كتم الصوت أثناء عملية النقل: بعد بدء عملية نقل التعليق، يتم كتم التدفقات النشطة في طبقة تجريد الأجهزة (HAL). يستمر التطبيق في التشغيل، ولكنّه لا يتلقّى سوى صوت مكتوم أثناء التعليق.
  • الاستئناف التلقائي: عند استئناف النظام، يبدأ التطبيق تلقائيًا في تلقّي بيانات الصوت الحقيقية أو إرسالها مرة أخرى بدون الحاجة إلى إعادة الحصول على أي موارد أو اتّخاذ إجراءات استرداد.