سيسمح Android Q للتطبيقات بتسجيل الصوت من التطبيقات الأخرى ومراقبة درجة حرارة الجهاز

يضيف Android Q واجهة برمجة تطبيقات جديدة لتسجيل إخراج الصوت الداخلي من تطبيق آخر وكذلك لمراقبة درجة حرارة الجهاز.

جوجل يعطي وجوجل يأخذ. يقدم كل إصدار جديد من Android الكثير من واجهات برمجة التطبيقات الجديدة التي تعمل إما على تحسين وظائف التطبيقات الحالية أو فتح فئات جديدة من التطبيقات. ومن ناحية أخرى، تقوم Google أيضًا بإلغاء الوصول إلى واجهات برمجة التطبيقات الحالية أو تقييد قدراتها لتحسين أمان نظام Android الأساسي. لا يختلف إصدار Android Q عن ذلك، وقد تحدثنا كثيرًا بالفعل عن تغييراته في التخزين المشترك والوصول إلى الحافظة والإشعارات وواجهات برمجة التطبيقات الأخرى. في هذا العام في مؤتمر مطوري Google I/O، أعلنت Google عن واجهات برمجة تطبيقات جديدة في Android Q والتي تعتبر مثيرة للاهتمام بشكل خاص للمستخدمين ومطوري ألعاب الهاتف المحمول: AudioPlaybackCapture و واجهات برمجة التطبيقات الحرارية.

تسجيل الصوت من التطبيقات الأخرى باستخدام AudioPlaybackCapture في Android Q

تعد ألعاب الهاتف المحمول صناعة ضخمة مع عدم وجود أي علامات على التباطؤ في أي وقت قريب، خاصة في أسواق مثل الولايات المتحدة والصين والهند. مع قضاء المزيد من الأشخاص الوقت على هواتفهم الذكية للألعاب ووسائل التواصل الاجتماعي، فليس من المستغرب أن يرغب الناس في مشاركة تجارب الألعاب الخاصة بهم عبر الإنترنت.

لقد دعم نظام Android التقاط لقطات الشاشة منذ البداية، ولكن التقاط مقاطع فيديو للشاشة أصبح مدعومًا فقط منذ إصدار Android 5.0 Lollipop مع تقديم واجهة برمجة تطبيقات MediaProjection. للأسف، لا تسمح واجهة برمجة التطبيقات هذه لتطبيقات الطرف الثالث بتسجيل إخراج الصوت الداخلي في تطبيقات أخرى، إجبار مسجلات الشاشة التابعة لجهات خارجية على تسجيل إخراج الصوت الخارجي من ميكروفون الجهاز (س). مصنعي المعدات الأصلية مثل سامسونج و هواوي توفير تطبيقات النظام لتسجيل إخراج الصوت الداخلي أثناء تسجيل الشاشة، ولكن الطريقة الوحيدة لأصحاب الأجهزة الأخرى تسجيل إخراج الفيديو والصوت من أجهزتهم بشكل صحيح هو الشراء أ ملحق طرف ثالث. لحسن الحظ، تقدم Google أخيرًا طريقة في Android Q لتطبيقات الطرف الثالث لتسجيل الصوت من التطبيقات الأخرى.

تصف Google واجهة برمجة تطبيقات AudioPlaybackCapture بأنها نظيرة لالتقاط الشاشة، ولكنها مخصصة لتسجيل الصوت. على الرغم من أن التطبيق الوحيد حتى الآن الذي يستخدم واجهة برمجة التطبيقات هو تطبيق Google التسميات التوضيحية المباشرة، وهي أداة إمكانية وصول تضيف تسميات توضيحية إلى أي فيديو يتم تشغيله على الجهاز، وهي واجهة برمجة التطبيقات تنص الوثائق على أن الغرض الأساسي منها هو السماح لتطبيقات البث بالتقاط الصوت لعبت من خلال الألعاب. فكر في أن لاعبي الهاتف المحمول يبثون جلساتهم على خدمات مثل Twitch أو YouTube. تم تصميم واجهة برمجة التطبيقات بحيث لا تؤثر على زمن الوصول الصوتي للتطبيق الذي يتم التقاط الصوت فيه، مما يجعلها مثالية لتسجيل اللعب حتى لا يتم إلغاء مزامنة الصوت والفيديو.

على عكس الأيام الأولى لنظام Android، فإن نهج Google تجاه واجهات برمجة التطبيقات الجديدة أكثر حذرًا. لا يمكن استخدام AudioPlaybackCapture إلا إذا كان التطبيق الذي يتم التقاط الصوت فيه والتطبيق الذي يقوم بالالتقاط يفي بمتطلبات محددة. وفيما يلي ملخص لتلك المتطلبات:

  • لكي يتم التقاط صوت التطبيق بواسطة تطبيق تابع لجهة خارجية، يجب استيفاء المتطلبات التالية:
    • يجب أن يحتوي التطبيق علىallowAudioPlaybackCapture إما مضبوطًا على "صحيح" أو غير محدد في البيان الخاص به. (يتم ضبطه افتراضيًا على "صحيح" للتطبيقات التي تستهدف Android Q، ولكن يمكن ضبطه يدويًا للتطبيقات التي تستهدف Android Pie.)
    • يجب أن يكون استخدام الصوت للتطبيق الذي ينتج الصوت من النوع USAGE_MEDIA أو USAGE_GAME أو USAGE_UNKNOWN.
    • يجب ضبط سياسة التقاط الصوت (setAllowedCapturePolicy) على ALLOW_CAPTURE_BY_ALL. يمكن تعيين هذه السياسة في وقت التشغيل، ولكن يجب إعادة تشغيل التشغيل حتى يسري تغيير السياسة. إذا تم تعيين ALLOW_CAPTURE_BY_SYSTEM، فيمكن لتطبيقات النظام فقط تسجيل الصوت (ولكنها مقيدة في أنهم لا يستطيعون حفظ الصوت، أو تمريره إلى تطبيق طرف ثالث، أو التسجيل عند> 16 كيلو هرتز أحادي 16 بت جودة.)
  • لكي يتمكن التطبيق من تسجيل الصوت من تطبيق آخر، يجب استيفاء المتطلبات التالية:
    • يجب أن يعرض التطبيق المطالبة MediaProjectionManager.createScreenCaptureIntent ويجب على المستخدم قبولها.
      مربع حوار التأكيد الذي يراه المستخدمون عندما يحاول أحد التطبيقات التقاط الشاشة باستخدام MediaProjection API.
    • يجب أن يحمل التطبيق تسجيل صوتي إذن.
    • يجب أن يكون التطبيق في نفس ملف تعريف المستخدم مثل التطبيق الذي سيتم تسجيل الصوت فيه.

أتصور أن معظم الألعاب ستسمح بالتقاط الصوت من خلال التطبيقات التي تستخدم واجهة برمجة التطبيقات الجديدة هذه، ولكن قد يستغرق الأمر بعض الوقت حتى يتم تحديث الألعاب لدعمها. من ناحية أخرى، لا تتوقع أن تدعم أي تطبيقات بث موسيقى أو فيديو واجهة برمجة التطبيقات هذه لجهات خارجية بسبب مشكلات تتعلق بالترخيص. ومع ذلك، فإن القيود التي فرضتها Google إذا قام أحد التطبيقات بتعيين سياسة التقاط الصوت الخاصة به على ALLOW_CAPTURE_BY_SYSTEM تعني أن يجب أن يكون مطورو تطبيقات بث الموسيقى والفيديو على ما يرام مع تمكين التقاط الصوت بواسطة النظام لتحسين إمكانية الوصول.

لقراءة المزيد حول واجهة برمجة تطبيقات AudioPlaybackCapture في Android Q، راجع ذلك هذه الصفحة.

مراقبة الاختناق باستخدام واجهة برمجة التطبيقات الحرارية في Android Q

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

ومع ذلك، باستخدام واجهة برمجة التطبيقات الحرارية الجديدة في Android Q، يمكن للتطبيقات تلقي عمليات رد اتصال لمراحل مختلفة من تقييد الأداء - مما يوفر فرصة للمطورين للمساعدة في تقليل الضغط على الجهاز من خلال تكثيف الأنشطة التي تتطلب وحدة المعالجة المركزية (CPU) أو وحدة معالجة الرسومات (GPU) أو المودم الاستخدام. على سبيل المثال، يمكن للعبة أن تقلل الدقة ديناميكيًا حتى يتوقف الجهاز عن التحكم في وحدة معالجة الرسومات، أو قد يقوم تطبيق الخرائط بتعطيل الميزات المحسنة مثل الملاحة الواقع المعزز لتقليل الحمل على وحدة المعالجة المركزية.

لاستخدام واجهة برمجة التطبيقات الجديدة هذه، تسجل التطبيقات مستمعًا في PowerManager (addThermalStatusListener) ويرسل النظام إلى التطبيق أحد رموز الحالة الحرارية التالية:

  • THERMAL_STATUS_NONE: "ليست تحت التقييد."
  • THERMAL_STATUS_LIGHT: "اختناق الضوء حيث لا يتأثر تجربة المستخدم."
  • THERMAL_STATUS_MODERATE: "اختناق معتدل حيث لا يتأثر تجربة المستخدم بشكل كبير."
  • THERMAL_STATUS_SEVERE: "اختناق شديد حيث يتأثر تجربة المستخدم إلى حد كبير."
  • THERMAL_STATUS_CRITICAL: "لقد بذل النظام الأساسي كل ما في وسعه لتقليل الطاقة."
  • THERMAL_STATUS_EMERGENCY: "يتم إيقاف تشغيل المكونات الرئيسية في النظام الأساسي بسبب الحالة الحرارية. ستكون وظائف الجهاز محدودة."
  • THERMAL_STATUS_SHUTDOWN: "يلزم إيقاف التشغيل على الفور.

من الواضح أن دعم واجهة برمجة التطبيقات الحرارية يتطلب Android Q، ولكن هناك مطلب آخر وهو إضافة طبقة HAL جديدة. تقول Google أن أجهزة Pixel تعمل بنظام التشغيل Android Q (أي Pixel وPixel XL وPixel 2 وPixel 2 XL وPixel 3 وPixel 3 XL، بكسل 3 أ، و بكسل 3a XL) تدعم واجهة برمجة التطبيقات الحرارية، لكن Google تعمل على إضافة دعم للأجهزة الأخرى.

اقرأ المزيد عن واجهة برمجة التطبيقات الحرارية هنا.