نقدّم إطار عمل "جودة الوسائط" في نظام التشغيل Android 16 لأجهزة Android TV بهدف إنشاء واجهة برمجة تطبيقات موحّدة لتعديل جودة الصورة (PQ) وجودة الصوت (AQ). والهدف الأساسي هو توفير طريقة موحّدة لإجراء هذه التعديلات على جميع أجهزة Android TV المختلفة. يهدف إطار العمل الموحّد هذا إلى تبسيط عملية التطوير لمطوّري التطبيقات والمصنّعين الأصليين للأجهزة ومورّدي المنظومة على الرقاقة (SoC) من خلال توفير مجموعة متسقة من واجهات برمجة التطبيقات لنظام Android. بالنسبة إلى مورّدي المنظومات على الرقاقة (SoC) على وجه التحديد، يتيح ذلك لإطار عمل Android التعامل مع إعدادات جودة الصورة والصوت، ما يقلّل من تكلفة التعاون مع مطوّري التطبيقات المختلفين.
في النهاية، يساعد ذلك Google ونظام Android الأساسي في تقليل التجزئة وتحسين الجودة وقابلية التوسّع وتوفير ميزات جديدة ووضع الأساس لواجهة مستخدم موحّدة لجودة الصوت/جودة الصورة وتحسين تجربة المستخدم.
يتيح إطار عمل "جودة الوسائط" حالات استخدام مختلفة لتحسين تجربة مشاهدة التلفزيون. يمكن إدارة الملفات الشخصية والإعدادات لكل اسم حزمة (تطبيق) أو لكل رقم تعريف إدخال. بالإضافة إلى ذلك، يمكن إنشاء الملفات الشخصية من خلال تطبيقات النظام أو التطبيقات المدرَجة في القائمة المسموح بها، ولا يمكن تعديلها أو إزالتها إلا من قِبل مالكها.
وعلى وجه التحديد، يدير الإطار ملفات تعريف الصورة والصوت. تشمل أمثلة مَعلمات الصورة السطوع والتباين والحدة، بينما تشمل أمثلة مَعلمات الصوت الجهير والحاد.
يمكن تطبيق هذه الملفات الشخصية في سياقات مختلفة، بما في ذلك ضبط الملفات الشخصية التلقائية العامة، وملفات البث الشخصية باستخدام MediaCodec، وضبط ملفات التطبيقات الشخصية التلقائية لتطبيقات وسائط معيّنة، وضبط ملفات صور إدخال التلفزيون لإدخالات معيّنة مثل HDMI. يتيح إطار العمل أيضًا تغييرات الحالة (ما يسمح باستخدام مجموعات مختلفة من المَعلمات للحالات مثل النطاق العالي الديناميكية)، ويدير ملفات تعريف الصور النشطة للمعالجة المستمرة، ويتعامل مع ميزات الإضاءة الخلفية المحيطة.
يتعاون فريق Android مع شركائنا في المنظومة المتكاملة لتوفير إطار عمل "جودة الوسائط".
المكونات
يتألف إطار عمل جودة الوسائط من عدة مكوّنات أساسية تعمل معًا على مستوى التطبيق وإطار العمل وطبقات الأجهزة.
- Media Quality Manager (SDK API): هي واجهة برمجة تطبيقات لحزمة تطوير البرامج (SDK) تواجه التطبيق وتسمح للتطبيقات بإدارة ملفات تعريف الصور والصوت.
- خدمة جودة الوسائط: هي خدمة تابعة لنظام التشغيل تحتوي على منطق النشاط التجاري الأساسي، وتدير الملفات الشخصية والأذونات والتواصل مع طبقة تجريد الأجهزة (HAL).
- قاعدة بيانات جودة الوسائط: هي قاعدة بيانات SQLite تخزّن جميع ملفات تعريف الصور والأصوات.
- عقد جودة الوسائط: يحدّد المَعلمات الموحّدة وبُنى البيانات المستخدَمة للتواصل بين التطبيقات والإطار.
- Media Quality HAL: هي طبقة تجريد الأجهزة التي ينفّذها مورّدو نظام SoC للتواصل بشأن تغييرات ملفات تعريف الصور والصوت مع الأجهزة الأساسية.
الميزات
يتوافق "إطار عمل جودة الوسائط" مع مجموعة كبيرة من الميزات لتوفير نظام مرن وفعّال لإدارة جودة الوسائط.
إدارة الملف الشخصي
- الملفات الشخصية التي تديرها التطبيقات: يمكن للتطبيقات إنشاء ملفاتها الشخصية وتعديلها وحذفها لتوفير تجربة مخصّصة.
- الملفات الشخصية التلقائية: يمكن لتطبيقات النظام ضبط ملفات شخصية تلقائية لتطبيقات معيّنة أو مصادر إدخال التلفزيون (مثل HDMI 1).
- الملف التعريفي التلقائي العام: هو ملف تعريفي احتياطي على مستوى النظام يتم تطبيقه عندما لا يتم ضبط أي ملف تعريفي محدّد.
سير العمل العام
توضّح المخططات التالية تسلسلات طلبات البيانات لعمليات جودة الوسائط الشائعة.
إنشاء ملف شخصي للصور وتطبيقه
- يطلب أحد تطبيقات النظام من
setPictureProfileAllowList()منح تطبيق وسائط إذنًا بإنشاء ملفات شخصية. - يسجّل تطبيق موسيقى
PictureProfileCallbackلتلقّي إشعارات بشأن التغييرات في الملف الشخصي. - يستدعي تطبيق موسيقى
createPictureProfile()باستخدام عنصرPictureProfile. - يعالج
MediaQualityServiceالطلب ويحفظ الملف الشخصي في قاعدة البيانات، ثم يرسل إشعارًا إلى التطبيق بشأن نجاح العملية أو فشلها باستخدام دالة الرجوع المسجّلة (onPictureProfileAdded()أوonError()).
ضبط ملف تعريف صورة لكل بث
يوضّح سير العمل هذا كيف يمكن لتطبيق ما تطبيق ملف شخصي معيّن على محتوى الفيديو أثناء تشغيله.
- يطلب تطبيق الوسائط من
MediaQualityManagerالحصول على قائمة بملفات تعريف الصور المتاحة. - يستخدم التطبيق بعد ذلك
MediaCodec.setParametersلاختيار الملف الشخصي المحدّد وضبطه للبث. - يُرسِل إطار العمل هذا الخيار إلى طبقة تجريد الأجهزة (HAL) الخاصة بجودة الوسائط (MQ)، مع إرسال معرّف الملف الشخصي ومَعلماته.
- أخيرًا، يرسل MQ HAL هذه المَعلمات إلى Composer HAL، الذي يعرض بث الفيديو باستخدام ملف تعريف الصورة المحدّد.
ضبط ملف شخصي تلقائي عام
يمكن لتطبيقات النظام فقط ضبط الملف الشخصي التلقائي العام، والذي يعمل كخيار احتياطي لأي محتوى لم يتم تعيين ملف شخصي محدّد له.
- يسترد تطبيق النظام قائمة بملفات تعريف الصور المتاحة من إطار العمل.
- يختار التطبيق بعد ذلك أحد هذه الملفات الشخصية ليكون الملف التلقائي العام الجديد من خلال استدعاء
setDefaultPictureProfile(id). - يرسل إطار العمل مَعلمات الملف الشخصي إلى Media Quality HAL، الذي يطبّق التغييرات بعد ذلك.
Media Quality SDK API
توفّر واجهة برمجة التطبيقات الخاصة بحزمة تطوير البرامج (SDK) لجودة الوسائط الأدوات اللازمة للتطبيقات للتفاعل مع إطار العمل. نقطة الدخول الرئيسية هي حزمة android.media.quality.
android.media.quality
تحتوي هذه الحزمة على الفئات الأساسية لإدارة جودة الوسائط.
| الفئة | الوصف |
|---|---|
MediaQualityManager |
الفئة المركزية للتفاعل مع MQF |
PictureProfile |
فئة بيانات تمثّل مجموعة كاملة من مَعلمات الصور لوضع معيّن. |
SoundProfile |
فئة بيانات لمعلّمات الصوت |
MediaQualityContract |
فئة تحتوي على ثوابت لجميع مفاتيح المَعلمات المحدَّدة مسبقًا. |
MediaQualityManager
تشمل الطرق الرئيسية ما يلي:
| الطريقة | الوصف |
|---|---|
createPictureProfile(PictureProfile profile) |
لإنشاء ملف شخصي جديد للصور يتطلّب أذونات خاصّة أو أن يكون التطبيق في قائمة التطبيقات المسموح بها. |
updatePictureProfile(PictureProfile profile) |
تعديل ملف صور حالي يمكن للمستخدم الذي أنشأ الملف الشخصي فقط الاتصال به. |
removePictureProfile(String profileId) |
لحذف ملف شخصي يمكن للمستخدم الذي أنشأ الملف الشخصي فقط الاتصال به. |
getAvailablePictureProfiles() |
تعرض هذه الطريقة قائمة بجميع ملفات تعريف الصور المتاحة. |
setDefaultPictureProfile(String profileId) |
تضبط هذه السمة ملف تعريف الصورة التلقائي العام. يتطلّب الحصول على إذن MANAGE_GLOBAL_PICTURE_QUALITY_SERVICE. |
registerPictureProfileCallback(PictureProfileCallback cb) |
تسجّل هذه الطريقة عملية ردّ اتصال لرصد التغييرات في الملف الشخصي. |
عنصر PictureProfile
يحتوي العنصر PictureProfile على جميع المعلومات الخاصة بوضع صورة معيّن.
public final class PictureProfile {
private String id;
private int type; // System or Application
private String name; // e.g., "Movie", "Game"
private String inputId; // e.g., "HDMI1"
private String packageName; // e.g., "com.google.android.youtube"
private PersistableBundle parameters; // Bundle containing all PQ parameters
}
طبقة تجريد الأجهزة (HAL) الخاصة بجودة الوسائط
إنّ Media Quality HAL هي واجهة مستندة إلى AIDL تم تعريفها في
hardware/interfaces/tv/mediaquality/aidl/. على مورّدي منظومة على رقاقة (SoC) تنفيذ هذه الواجهة لتفعيل إطار عمل جودة الوسائط على أجهزتهم. تعمل طبقة HAL كجسر للتواصل بين MediaQualityService في إطار عمل Android والأجهزة الأساسية، وهي مسؤولة عن تطبيق تعديلات على الصور والأصوات.
تتولّى طبقة HAL إدارة ملفات تعريف الصور والصوت باستخدام عناصر AIDL القابلة للتسلسل. ويشمل ذلك تلقّي تغييرات الملف الشخصي من إطار العمل وإعلام إطار العمل بأي تعديلات تم إجراؤها على مستوى الجهاز.
الوحدات
تتألف واجهة HAL من عدة ملفات AIDL رئيسية:
| ملف HAL | الوصف |
|---|---|
IMediaQuality.aidl |
الواجهة الرئيسية لخدمة "جودة الوسائط"، وتُستخدم لضبط المستمعين والتعرّف على إمكانات الأجهزة. |
IPictureProfileChangedListener.aidl |
واجهة مستمع يستخدمها إطار العمل لإبلاغ طبقة تجريد الأجهزة (HAL) (وتحديدًا أحد المكوّنات مثل مكوّن العرض HAL) بالتغييرات التي تطرأ على ملف صورة. |
IPictureProfileAdjustmentListener.aidl |
واجهة مستمع تستخدمها طبقة HAL لإبلاغ إطار العمل بالتعديلات التي تم إجراؤها على مستوى الجهاز، مثلاً عندما يغيّر المستخدم أحد الإعدادات مباشرةً باستخدام جهاز تحكّم عن بُعد. |
PictureParameter.aidl |
اتحاد AIDL يحدّد جميع مَعلمات الصورة العادية، مثل التباين والحدة، التي يمكن ضبطها. |
PictureProfile.aidl |
حزمة AIDL قابلة للتسلسل تمثّل كائن PictureProfile في طبقة HAL، وتحتوي على معرّف ملف شخصي والمَعلمات المرتبطة به. |
ISoundProfileChangedListener.aidl |
واجهة مستمع يستخدمها إطار العمل لإعلام طبقة تجريد الأجهزة (HAL) بالتغييرات التي تطرأ على ملف صوتي. |
ISoundProfileAdjustmentListener.aidl |
واجهة مستمع تستخدمها طبقة تجريد الأجهزة (HAL) لإبلاغ إطار العمل بالتعديلات التي تم إجراؤها على مستوى الأجهزة. |