"البث التلفزيوني المباشر" هو تطبيق مرجعي مصمّم لأجهزة Android TV. ومع ذلك، قد يريد صانعو الأجهزة إضافة المزيد من الوظائف الخاصة بالمنتجات والتي لا يشملها التنفيذ التلقائي لميزة "التلفزيون المباشر"، مثل تعديل الصورة أو وضع "الألعاب" أو وضع "الصورة الثلاثية الأبعاد". لتقديم هذه الوظائف أو options الخاصة بالجهاز، تتيح ميزة "التلفزيون المباشر" عمليات التخصيص التالية:
- تفعيل وضع تغيير السرعة الزمنية، الذي يتيح للمستخدمين الإيقاف المؤقت والتقديم السريع والترجيع ضبط وضع "تغيير السرعة الزمنية" لاستخدام مساحة التخزين الخارجية بدلاً من مساحة التخزين الداخلية
- إضافة خيارات إلى صف خيارات التلفزيون
- إضافة صف مخصّص وإضافة خيارات فيه
ملاحظة: Live
Channels هي خدمة تقدّمها Google لبثّ المحتوى المباشر ويمكن استخدامها كما هي على
الأجهزة التي تتضمّن خدمات Google. لتخصيص قنوات البث المباشر، استبدِل com.android.tv.*
بـ com.google.android.tv.*
في
هذه الخطوات.
تخصيص البث التلفزيوني المباشر
لتخصيص البث التلفزيوني المباشر، يجب تثبيت حزمة تخصيص على جهاز Android TV المستهدف، ويجب أن تكون حزمة نظام مُنشأة مسبقًا ومزوّدة بالإذن
com.android.tv.permission.CUSTOMIZE_TV_APP
.
تبحث ميزة "التلفزيون المباشر" عن حزمة نظام تتضمّن هذا الإذن، وتتحقّق من ملفّات الموارد، وترصد الأنشطة الحزمة التي تم وضع علامة عليها بفئات معيّنة لمعالجة عملية التخصيص.
نقطة رئيسية: يمكن لحزمة واحدة فقط تخصيص ميزة "البث التلفزيوني المباشر".
ضبط وضع تغيير السرعة
تتيح ميزة "تغيير التوقيت" (تشغيل الفيديوهات بشكل عكسي) لأجهزة Android TV إمكانية إيقاف التشغيل مؤقتًا والترجيع والتقديم السريع لمحتوى القناة. في عملية تنفيذ ميزة "التلفزيون المباشر"، يمكن استخدام ميزة "تغيير السرعة الزمنية" من خلال واجهة مستخدم عناصر التحكّم في التشغيل. تكون ميزة "تغيير السرعة الزمنية" مفعّلة تلقائيًا في التلفزيون المباشر، ولكن يمكن إيقافها. يمكن أيضًا ضبط ميزة "تغيير السرعة الزمنية" لاستخدام مساحة التخزين الخارجية فقط.
لضبط ميزة "تغيير السرعة الزمنية"، أضِف مورد السلسلة trickplay_mode
واضبط قيمته على أحد الخيارَين التاليَين:
enabled
: فعِّل ميزة "تغيير السرعة الزمنية". وهذه هي القيمة التلقائية عند عدم تقديم أي خيارات.disabled
: أوقِف ميزة "تغيير السرعة الزمنية".use_external_storage_only
: ضبط ميزة "تغيير السرعة الزمنية" لاستخدام مساحة تخزين خارجية
<string name="trickplay_mode">use_external_storage_only</string>

الشكل 1: يتم تفعيل واجهة مستخدم عناصر التحكّم في التشغيل بعد الضغط على الزر الأوسط في لوحة الاتجاهات.
تخصيص خيارات التلفزيون
يمكن لصنّاع الأجهزة إضافة خيارات مخصّصة لإعدادات "البث التلفزيوني المباشر" إلى قائمة خيارات التلفزيون الحالية، مثل إضافة اختصار إلى إعدادات "الصوت والصورة".
للإشارة إلى خيار مخصّص، يمكنك الإعلان عن فلتر أهداف لفلترة الفئة
com.android.tv.category.OPTIONS_ROW
في نشاط. يتم تنفيذ الميزة المخصّصة
من قِبل الشركة المصنّعة للجهاز في النشاط. يتم بدء النشاط
في حال النقر على الخيار. يتم استخدام عنوان النشاط ورمزه لتحديد
الخيار. يجب أن تتطابق خيارات التلفزيون المخصّصة مع واجهة المستخدم الحالية لتوفير
أفضل تجربة مستخدم.
ملاحظة: لا يمكن للنشاط التعامل إلا مع خيار واحد لأنّ ميزة "البث المباشر" لا يمكنها التمييز بين فلاتر الأهداف في نشاط يندرج ضمن الفئة نفسها بسبب القيود المفروضة على Android. اطّلِع على معالجة خيارات متعدّدة في نشاط لمعرفة حلّ بديل.
يمكن لصنّاع الأجهزة أيضًا وضع خيار مخصّص قبل الخيارات
الحالية أو بعدها من خلال تحديد android:priority
في AndroidManifest.xml
.
يظهر الخيار الذي يتضمن قيمة أولوية محدّدة أقل من 100 قبل العناصر
الحالية، ويظهر الخيار الذي يتضمن قيمة أعلى من 100 بعد العناصر الحالية. يتم ترتيب خيارات مخصّصة متعدّدة (سواءً
قبل الخيارات الحالية أو بعدها) حسب أولويتها بترتيب صعودي. إذا كانت الخيارات لها الأولوية نفسها، يكون ترتيبها غير محدّد.
في هذا المثال، يظهر الخيار أولاً في صف خيارات التلفزيون، ويتم تشغيل Activity PictureSettings في حال النقر على الخيار.
<activity android:name=".PictureSettingsActivity" android:label="@string/activity_label_picture_settings" android:theme="@style/Theme.Panel"> <intent-filter android:icon="@drawable/ic_tvoptions_brightness" android:label="@string/option_label_brightness" android:priority="0"> <action android:name="android.intent.action.MAIN" /> <category android:name="com.android.tv.category.OPTIONS_ROW" /> </intent-filter> </activity>
الشكل 2: نموذج لصف خيارات التلفزيون المخصّصة (السطوع و توفير الطاقة)
الشكل 3 أمثلة على خيارات التلفزيون المخصّصة
التعامل مع خيارات متعدّدة في نشاط
يتم ربط الخيار بفلتر الغرض من النشاط والعكس صحيح. بما أنّ نظام التشغيل Android
لا يُميّز بين فلاتر الأهداف التي تتضمّن الفئات والإجراءات نفسها، لا يعالج
النشاط سوى خيار واحد، حتى إذا تمّ الإعلان عن فلاتر أهداف متعددة
فيه. لمعالجة خيارات متعدّدة في نشاط، استخدِم
<activity-alias>
في AndroidManifest.xml
. في
النشاط، استخدِم getIntent().getComponent()
لتحديد الخيار الذي تم النقر عليه.
<activity-alias android:name=".AnyUniqueName" android:targetActivity=".PictureSettingsActivity"> <intent-filter android:icon="@drawable/ic_tvoptions_energy_saving" android:label="@string/option_label_energy_saving" android:priority="1"> <action android:name="android.intent.action.MAIN" /> <category android:name="com.android.tv.category.OPTIONS_ROW" /> </intent-filter> </activity-alias>
إنشاء صف مخصّص
يمكن لشركات تصنيع الأجهزة إضافة صف وتخصيصه فوق صف خيارات التلفزيون. هذا الصف المخصّص اختياري.
عنوان الصف
حدِّد سلسلة partner_row_title
في
res/values/strings.xml
. يتم استخدام قيمة السلسلة لعنوان الصف المخصّص.
<string name="partner_row_title">Partner Row</string>
خيارات مخصصة
لإضافة خيارات مخصّصة إلى الصف المخصّص، اتّبِع عملية إضافة الخيارات
إلى قائمة خيارات التلفزيون، ولكن غيِّر اسم الفئة إلى
com.android.tv.category.PARTNER_ROW
بدلاً من ذلك.
<activity android:name=".ThreeDimensionalSettingDialogActivity" android:label="@string/activity_label_3d" android:theme="@android:style/Theme.Material.Light.Dialog"> <intent-filter android:icon="@drawable/ic_tvoptions_3d" android:priority="0"> <action android:name="android.intent.action.MAIN" /> <category android:name="com.android.tv.category.PARTNER_ROW" /> </intent-filter> </activity>
الشكل 4 مثال على صف مخصّص اختياري
الشكل 5 مثال على مربّع حوار الخيار المخصّص