מסגרת הקלט של Android TV (TIF) מפשטת את האספקה של תוכן חי ל-Android TV. ה-Android TIF מספק API סטנדרטי ליצרנים ליצירת מודולי קלט לשליטה ב-Android TV, ומאפשר חיפוש טלוויזיה והמלצות בשידור חי באמצעות מטא נתונים שפורסמו על ידי קלט הטלוויזיה.
המסגרת אינה שואפת ליישם תקני טלוויזיה או דרישות אזוריות, אך כן מקלה על יצרני מכשירים לעמוד בתקני שידור טלוויזיה דיגיטלית אזורית ללא יישום מחדש. התיעוד בסעיף זה עשוי להיות שימושי גם למפתחי אפליקציות של צד שלישי שרוצים ליצור כניסות טלוויזיה מותאמות אישית.
רכיבים
יישום Android TV Input Framework כולל מנהל קלט טלוויזיה. ה-TIF עובד עם אפליקציית הטלוויזיה, אפליקציית מערכת שלא ניתנת להחלפה באפליקציית צד שלישי, כדי לגשת לערוצי טיונר מובנים ו-IP. אפליקציית הטלוויזיה מתקשרת עם מודולי קלט טלוויזיה שסופקו על ידי יצרן המכשיר או גורמים אחרים דרך מנהל קלט הטלוויזיה.
מסגרת קלט הטלוויזיה מורכבת מ:
- ספק טלוויזיה (
com.android.providers.tv.TvProvider
): מסד נתונים של ערוצים, תוכניות והרשאות קשורות - אפליקציית טלוויזיה (
com.android.tv.TvActivity
): האפליקציה שמטפלת באינטראקציה של משתמשים - מנהל קלט טלוויזיה (
android.media.tv.TvInputManager
): מאפשר לכניסות הטלוויזיה לתקשר עם אפליקציית הטלוויזיה - קלט טלוויזיה: אפליקציה המייצגת מקלטים פיזיים או וירטואליים ויציאות קלט
- TV Input HAL (מודול
tv_input
): הגדרת חומרה המאפשרת לכניסות טלוויזיה של המערכת לגשת לחומרה ספציפית לטלוויזיה כאשר היא מיושמת - בקרת הורים: הטכנולוגיה המאפשרת חסימת ערוצים ותוכניות
- HDMI-CEC: הטכנולוגיה המאפשרת שליטה מרחוק במכשירים שונים באמצעות HDMI
- Tuner Framework: מסגרת לכניסת טלוויזיה מובנית
- MediaCas: מסגרת לגישה מותנית
- Tuner Resource Manager: שירות לניהול משאב החומרה עבור קלט טלוויזיה, MediaCas וקלט מובנה
רכיבים אלה מכוסים בפירוט להלן. עיין בתרשים הבא לתצוגה מפורטת של ארכיטקטורת מסגרת הקלט של Android TV.
זְרִימָה
כך מופעלת הארכיטקטורה:
- המשתמש רואה ומקיים אינטראקציה עם אפליקציית הטלוויזיה, אפליקציית מערכת שלא ניתנת להחלפה באפליקציית צד שלישי.
- אפליקציית הטלוויזיה מציגה את תוכן ה-AV מכניסת הטלוויזיה.
- אפליקציית הטלוויזיה אינה יכולה לדבר ישירות עם כניסות הטלוויזיה. מנהל קלט הטלוויזיה מזהה את מצב כניסות הטלוויזיה עבור אפליקציית הטלוויזיה. עיין במנהל קלט הטלוויזיה למטה לקבלת פרטים נוספים על מגבלות אלו.
הרשאות
- רק
signatureOrSystem
TV Inputs ואפליקציית TV הם בעלי גישה מלאה למסד הנתונים של ספק הטלוויזיה והם מסוגלים לקבל KeyEvents. - רק כניסות הטלוויזיה של המערכת יכולות לגשת ל-TV Input HAL דרך שירות TV Input Manager. ניתן לגשת לכניסות טלוויזיה אחד לאחד באמצעות הפעלות של מנהל קלט טלוויזיה.
- לכניסות טלוויזיה של צד שלישי יש גישה נעולה בחבילה למסד הנתונים של ספק הטלוויזיה ויכולות לקרוא/לכתוב רק לשורות חבילות תואמות.
- כניסות טלוויזיה של צד שלישי יכולות להציג תוכן משלהן או תוכן מכניסות טלוויזיה עוברות של יצרן מכשיר, כמו HDMI1. הם לא יכולים להציג תוכן מכניסות טלוויזיה שאינן עוברות, כמו מקלט מובנה או מקלט IPTV.
- הרשאת
TV_INPUT_HARDWARE
לאפליקציית קלט טלוויזיה בחומרה, מסמנת לשירות מנהל קלט הטלוויזיה להודיע לשירות קלט הטלוויזיה בעת האתחול להתקשר לשירות מנהל קלט הטלוויזיה ולהוסיף את כניסות הטלוויזיה שלו. הרשאה זו מאפשרת לאפליקציית חומרת קלט טלוויזיה לתמוך במספר כניסות טלוויזיה לכל שירות קלט טלוויזיה, כמו גם אפשרות להוסיף ולהסיר באופן דינמי את כניסות הטלוויזיה הנתמכות שלה.
ספק טלוויזיה
מסד הנתונים של ספק הטלוויזיה מאחסן את הערוצים והתוכניות מכניסות טלוויזיה. ספק הטלוויזיה גם מפרסם ומנהל את ההרשאות הקשורות כך שכניסות טלוויזיה יוכלו לראות רק את הרשומות שלהם. לדוגמה, קלט טלוויזיה ספציפי יכול לראות רק את הערוצים והתוכניות שהוא סיפק ואסור לו לגשת לערוצים ולתוכניות של כניסות טלוויזיה אחרות.
ספק הטלוויזיה ממפה "ז'אנר שידור" ל"ז'אנר קנוני" באופן פנימי. כניסות טלוויזיה אחראיות לאכלוס "ז'אנר שידור" בערך בתקן השידור הבסיסי, והשדה "ז'אנר קנוני" יאוכלס אוטומטית בז'אנר המשויך הנכון מ- android.provider.TvContract.Genres
. לדוגמה, עם תקן שידור ATSC A/65 ותוכנית עם ז'אנר 0x25 (כלומר "ספורט"), קלט הטלוויזיה יאכלס את "ז'אנר השידור" במחרוזת "ספורט" וספק הטלוויזיה יאכלס את השדה "ז'אנר קנוני" עם הערך המופה android.provider.TvContract.Genres.SPORTS
.
עיין בתרשים שלהלן לתצוגה מפורטת של ספק הטלוויזיה.
רק אפליקציות במחיצת המערכת הפריבילגית יכולות לקרוא את כל מסד הנתונים של ספק הטלוויזיה.
כניסות מעבר לטלוויזיה אינן מאחסנות ערוצים ותוכניות.
בנוסף לשדות הסטנדרטיים עבור ערוצים ותוכניות, מסד הנתונים של ספקי הטלוויזיה מציע גם שדה מסוג BLOB, COLUMN_INTERNAL_PROVIDER_DATA
, בכל טבלה שבה כניסות טלוויזיה עשויות להשתמש כדי לאחסן נתונים שרירותיים. נתוני BLOB אלה יכולים לכלול מידע מותאם אישית, כגון תדירות הטיונר המשויך, ועשויים להיות מסופקים במאגר פרוטוקול או בצורה אחרת. שדה ניתן לחיפוש זמין כדי להפוך ערוצים מסוימים ללא זמינים בחיפוש (כגון לעמוד בדרישות ספציפיות למדינה להגנה על תוכן).
דוגמאות לשדות מסד נתונים
ספק הטלוויזיה תומך בנתונים מובנים בטבלאות ערוצים ( android.provider.TvContract.Channels
) ותוכניות ( android.provider.TvContract.Programs
). טבלאות אלה מאוכלסות וניגשים אליהן על ידי כניסות טלוויזיה ואפליקציות מערכת כמו אפליקציית הטלוויזיה. לטבלאות אלה יש ארבעה סוגי שדות:
- תצוגה: שדות תצוגה מכילים מידע שיישומים עשויים לרצות להפוך לגלויים למשתמש, כמו שם ערוץ (
COLUMN_DISPLAY_NAME
) או מספר (COLUMN_DISPLAY_NUMBER
), או כותרת התוכנית הנצפה. - מטא נתונים: ישנם שלושה שדות לזיהוי תוכן, בהתאם לסטנדרטים הרלוונטיים, כמו מזהה זרם התחבורה של הערוץ (
COLUMN_TRANSPORT_STREAM_ID
), מזהה הרשת המקורי (COLUMN_ORIGINAL_NETWORK_ID
) ומזהה השירות (COLUMN_SERVICE_ID
). - נתונים פנימיים : שדות המיועדים לשימוש מותאם אישית של כניסות טלוויזיה.
שדות מסוימים, כמוCOLUMN_INTERNAL_PROVIDER_DATA
, הם שדות BLOB הניתנים להתאמה אישית שבהם קלט טלוויזיה יכול לאחסן מטא נתונים שרירותיים לגבי הערוץ או התוכנית שלהם. - דגל: שדות דגל מייצגים אם יש להגביל ערוץ מחיפוש, עיון או צפייה. ניתן להגדיר זאת רק ברמת הערוץ. כל התוכניות דוחות להגדרה בערוץ.
-
COLUMN_SEARCHABLE
: הגבלת חיפוש מערוצים מסוימים עשויה להיות דרישה באזורים מסוימים.COLUMN_SEARCHABLE = 0
פירושו שהערוץ לא אמור להיחשף בתוצאות החיפוש. -
COLUMN_BROWSABLE
: גלוי ליישומי מערכת בלבד. הגבלת אפליקציות לגלישה בערוץ.COLUMN_BROWSABLE = 0
פירושו שהערוץ לא אמור להיכלל ברשימת הערוצים. -
COLUMN_LOCKED
: גלוי ליישומי מערכת בלבד. הגבלת הצפייה בערוץ על ידי חשבונות לא חוקיים מבלי להזין קוד PIN.COLUMN_LOCKED = 1
אומר שהערוץ צריך להיות מוגן על ידי בקרת הורים.
לרשימה ממצה יותר של השדות, ראה android/frameworks/base/media/java/android/media/tv/TvContract.java
הרשאות ובקרת גישה
כל השדות גלויים לכל מי שיש לו גישה לשורה המתאימה. אין שדות נגישים ישירות למשתמשים; הם רואים רק את מה שעל פני השטח של אפליקציית הטלוויזיה, אפליקציות המערכת או כניסות הטלוויזיה.
- לכל שורה יש
PACKAGE_NAME
, החבילה (אפליקציה) שבבעלותה שורה זו, מסומנת ב-Query, Insert, Update באמצעות TvProvider.java. קלט טלוויזיה רשאי לגשת רק למידע שכתב והוא מגודר מהמידע המסופק על ידי כניסות טלוויזיה אחרות. - קרא, כתוב הרשאות באמצעות AndroidManifest.xml (דורש הסכמת משתמש) כדי לקבוע ערוצים זמינים.
- רק אפליקציות
signatureOrSystem
יכולות לקבל הרשאתACCESS_ALL_EPG_DATA
לגשת למסד הנתונים כולו.
מנהל קלט טלוויזיה
מנהל קלט הטלוויזיה מספק ממשק API מערכת מרכזי למסגרת הקלט הכוללת של Android TV. זה בורר אינטראקציה בין אפליקציות וכניסות טלוויזיה ומספק פונקציונליות של בקרת הורים. יש ליצור הפעלות של מנהל קלט טלוויזיה אחד על אחד עם כניסות טלוויזיה. מנהל קלט הטלוויזיה מאפשר גישה לכניסות טלוויזיה מותקנות כך שאפליקציות עשויות:
- רשום את כניסות הטלוויזיה ובדוק את מצבן
- צור הפעלות וניהול מאזינים
עבור הפעלות, קלט טלוויזיה עשוי להיות מכוון על ידי אפליקציית הטלוויזיה רק ל-URI שהיא הוסיפה למסד הנתונים של ספק הטלוויזיה, למעט כניסות טלוויזיה מעבר שניתן לכוונן באמצעות TvContract.buildChannelUriForPassthroughInput()
. ייתכן שגם עוצמת הקול של כניסת טלוויזיה מוגדרת. כניסות טלוויזיה שסופקו ונחתמו על ידי יצרן המכשיר (אפליקציות חתימה) או אפליקציות אחרות המותקנות במחיצת המערכת יקבלו גישה לכל מסד הנתונים של ספק הטלוויזיה. ניתן להשתמש בגישה זו לבניית אפליקציות לגלישה ולחיפוש בכל ערוצי הטלוויזיה והתוכניות הזמינים.
אפליקציה עשויה ליצור ולרשום TvInputCallback
עם android.media.tv.TvInputManager
כדי להיקרא בחזרה בשינוי המצב של קלט טלוויזיה או בהוספה או הסרה של קלט טלוויזיה. לדוגמה, אפליקציית טלוויזיה יכולה להגיב כאשר קלט טלוויזיה מנותק על ידי הצגתו כמנותק ומניעת בחירתו.
מנהל קלט הטלוויזיה מפשט תקשורת בין אפליקציית הטלוויזיה לכניסות הטלוויזיה. הממשק הסטנדרטי של TV Input Manager ו-TV Input מאפשר ליצרני מכשירים מרובים ליצור אפליקציות טלוויזיה משלהם תוך סיוע לכל כניסות הטלוויזיה של צד שלישי לעבוד בכל אפליקציות הטלוויזיה.
כניסות טלוויזיה
כניסות טלוויזיה הן אפליקציות אנדרואיד במובן זה שיש להן AndroidManifest.xml והן מותקנות (באמצעות Play, מותקנות מראש או נטענות בצד). Android TV תומך באפליקציות מערכת מותקנות מראש, אפליקציות חתומות על ידי יצרן המכשיר וכניסות טלוויזיה של צד שלישי.
כניסות מסוימות, כמו כניסת HDMI או כניסת טיונר מובנית, יכולות להיות מסופקות רק על ידי היצרן מכיוון שהן מדברות ישירות עם החומרה הבסיסית. אחרים, כגון IPTV, העברת מקום ו-STB חיצוני, יכולים להיות מסופקים על ידי צדדים שלישיים כ-APKs בחנות Google Play. לאחר ההורדה וההתקנה, ניתן לבחור את הקלט החדש באפליקציית הטלוויזיה.
דוגמה לקלט מעבר
בדוגמה זו, קלט הטלוויזיה שסופק על ידי יצרן המכשיר הוא מהימן ויש לו גישה מלאה לספק הטלוויזיה. ככניסת טלוויזיה עוברת, הוא אינו רושם אף ערוצים או תוכניות אצל ספק הטלוויזיה. כדי להשיג את ה-URI המשמש להפניה לקלט המעבר, השתמש בשיטת השירות android.media.tv.TvContract
buildChannelUriForPassthroughInput(String inputId)
. אפליקציית הטלוויזיה מתקשרת עם מנהל קלט הטלוויזיה כדי להגיע לכניסת הטלוויזיה HDMI.
דוגמה של טיונר מובנה
בדוגמה זו, כניסת הטלוויזיה המובנית של הטיונר המסופק על ידי יצרן המכשיר הוא מהימן ויש לו גישה מלאה לספק הטלוויזיה.
דוגמה לקלט של צד שלישי
בדוגמה זו, כניסת הטלוויזיה STB החיצונית מסופקת על ידי צד שלישי. מכיוון שכניסת הטלוויזיה הזו לא יכולה לגשת ישירות להזנת הווידאו של ה-HDMI שנכנסת, היא חייבת לעבור דרך מנהל קלט הטלוויזיה ולהשתמש בכניסת הטלוויזיה HDMI שסופקה על ידי יצרן המכשיר.
דרך מנהל קלט הטלוויזיה, כניסת הטלוויזיה STB החיצונית יכולה לדבר עם כניסת הטלוויזיה HDMI ולבקש ממנה להציג את הסרטון ב-HDMI1. כך שכניסת הטלוויזיה STB יכולה לשלוט בטלוויזיה בזמן שכניסת הטלוויזיה HDMI שסופקה על ידי היצרן מעבדת את הווידאו.
תמונה בתמונה (PIP) לדוגמה
התרשים שלמעלה מראה כיצד לחצנים בשלט רחוק מועברים לכניסת טלוויזיה ספציפית לתצוגת תמונה בתמונה (PIP). לחיצות על הכפתורים הללו מתפרשות על ידי מנהל התקן החומרה שסופק על ידי יצרן המכשיר, הממיר קודי חומרה לקודי מפתחות של אנדרואיד ומעביר אותם לצינור הקלט הסטנדרטי של Android InputReader
ו- InputDispatcher
מתפקד כ- KeyEvents . אלה בתורם מפעילים אירועים באפליקציית הטלוויזיה אם היא בפוקוס.
רק כניסות טלוויזיה של המערכת זכאיות לקבל InputEvents
, ורק אם יש להם הרשאת מערכת RECEIVE_INPUT_EVENT
. קלט הטלוויזיה אחראי לקבוע אילו InputEvents לצרוך ואמור לאפשר לאפליקציית הטלוויזיה לטפל במפתחות שהיא לא צריכה לצרוך.
אפליקציית הטלוויזיה אחראית לדעת איזו מערכת קלט הטלוויזיה פעילה, כלומר נבחרה על ידי המשתמש, ועל מנת לבלבל את KeyEvents
הנכנסים ולנתב אותם להפעלה הנכונה של מנהל קלט הטלוויזיה, תוך קריאה ל- dispatchInputEvent()
כדי להעביר את האירוע לקלט הטלוויזיה המשויך. .
דוגמה לקלט MHEG-5
הדיאגרמה הבאה מציגה תצוגה מפורטת יותר של אופן הניתוב של KeyEvents
דרך ה-Android TIF.
הוא מתאר את הזרימה של אפליקציית כפתור אדום, הנפוצה באירופה המאפשרת למשתמשים לגשת לאפליקציות אינטראקטיביות בטלוויזיות שלהם. ניתן להעביר אפליקציה דרך זרם התחבורה הזה. כאשר הלחצן נלחץ, הוא מאפשר למשתמשים לקיים אינטראקציה עם אפליקציות השידור הללו. לדוגמה, תוכל להשתמש באפליקציות השידור הללו כדי לגשת לדפי אינטרנט קשורים או לתוצאות ספורט.
עיין בסעיף אפליקציית שידור כדי ללמוד כיצד יישומי שידור מקיימים אינטראקציה עם אפליקציית הטלוויזיה.
בדוגמה זו:
- אפליקציית הטלוויזיה נמצאת בפוקוס ומקבלת את כל המפתחות.
-
KeyEvents
(למשל הכפתור האדום) מועברים לכניסת הטלוויזיה הפעילה בתורInputEvents.
- כניסת הטלוויזיה של המערכת משתלבת עם ערימת MHEG-5 ויש לה הרשאת מערכת
RECEIVE_INPUT_EVENT
. - עם קבלת קוד מפתח הפעלה (למשל כפתור אדום), כניסת הטלוויזיה מפעילה את אפליקציית השידור.
- קלט הטלוויזיה צורך
KeyEvents
כ-InputEvents
ואפליקציית השידור היא המוקד ומטפלתInputEvents
עד להדחה.
הערה : כניסות טלוויזיה של צד שלישי לעולם אינן מקבלות מפתחות.
כניסת טלוויזיה HAL
ה-TV Input HAL מסייע בפיתוח כניסות טלוויזיה לגישה לחומרה ספציפית לטלוויזיה. כמו עם HALs אחרים של אנדרואיד, ה-TV Input HAL ( tv_input
) זמין בעץ המקור של AOSP והספק מפתח את היישום שלו.
הערה : החל מאנדרואיד 14, ממשק כניסת הטלוויזיה HAL מוגדר באמצעות AIDL .
אפליקציית טלוויזיה
אפליקציית מערכת הטלוויזיה מציגה למשתמש תוכן טלוויזיה חי. אפליקציית עזר לטלוויזיה (Live TV) מסופקת לצד פלטפורמת אנדרואיד, שניתן להשתמש בה כפי שהיא, מותאמת אישית, מורחבת או מוחלפת על ידי יצרני המכשירים. קוד המקור זמין ב-Android Open Source Project, ותוכלו להתחיל איתו במאמר אפליקציית Reference TV .
יצרני מכשירים עשויים להרחיב את יישומי הטלוויזיה שלהם כדי ליישם מאפיינים ספציפיים ליצרן מכשיר או למדינה, אולם זה אינו בהיקף של TIF או אפליקציית הטלוויזיה הייחוס.
לכל הפחות, אפליקציית הטלוויזיה של המערכת צריכה להתמודד עם המשימות הבאות:
הגדרה ותצורה
- זיהוי אוטומטי של כניסות טלוויזיה
- אפשר לכניסות טלוויזיה להתחיל את הגדרת הערוצים
- שליטה בהגדרות ההורים
- ערוך ערוצים
צפייה
- גישה וניווט בכל ערוצי הטלוויזיה
- גישה לסרגל המידע של תוכניות טלוויזיה
- הצגת נתוני מדריך תכנות אלקטרוני (EPG).
- תמיכה במספר רצועות אודיו וכתוביות
- ספק אתגר PIN של בקרת הורים
- אפשר שכבת-על של ממשק משתמש לכניסת טלוויזיה עבור תקן טלוויזיה (HbbTV וכו')
- אכלס תוצאות חיפוש עבור ערוצי טלוויזיה ותוכניות
- הצג כרטיסי קישור לאפליקציה
- תמיכה בממשקי API לשינוי זמן
- לטפל בפונקציונליות DVR ולתמוך בממשקי API להקלטת טלוויזיה
מערך תכונות זה יגדל בהתאם לגרסאות אנדרואיד חדשות שבהן הפלטפורמה TIF APIs מורחבת. CTS Verifier מספק את כיסוי בדיקת התאימות.
תמיכה בכניסות טלוויזיה של צד שלישי
Android TV מספקת ממשקי API למפתחים עבור כניסות טלוויזיה של צד שלישי, ומאפשרת לאפליקציות מותקנות להעביר ערוצי תוכנה לחוויית הטלוויזיה החיה. כדי להבטיח הטמעה תואמת של מכשיר אנדרואיד, לאפליקציית מערכת הטלוויזיה ישנה אחריות מסוימת בנוגע להצגת כניסות וערוצים של צד שלישי למשתמש. אפליקציית ה-Reference Live TV מספקת יישום תואם; אם מחליפים את אפליקציית מערכת הטלוויזיה, יצרני המכשירים חייבים להבטיח שהאפליקציות שלהם מספקות תאימות דומה, כדי לעמוד בציפיות המפתחים בכל מכשירי Android TV.
אפליקציית הטלוויזיה של המערכת חייבת להציג כניסות של צד שלישי לצד שירות ברירת המחדל של הטלוויזיה בשידור חי של המכשיר. ההבטחה של ממשקי ה-API למפתחים היא שמשתמשים יוכלו למצוא ערוצים (לאחר ההתקנה) בחוויית הטלוויזיה הסטנדרטית שלהם.
מותר הבדל חזותי בין ערוצים מובנים לערוצים של צד שלישי, כפי שמוגדר בסעיף אפליקציית הטלוויזיה של ה-CDD של Android.
הסעיפים הבאים מראים כיצד יישום Live TV ממלא את דרישות ה-CDD.
הגדרת ערוץ חדשה
הוספת כניסות/ערוצים חדשים של צד שלישי מתחילה בכך שהמשתמש מוצא ומתקין קלט טלוויזיה מחנות אפליקציות, כגון Google Play.
חלק מכניסות הטלוויזיה של צד שלישי מוסיפות אוטומטית ערוצים למסד הנתונים של TvProvider. עם זאת, רובם יספקו פעילות הגדרה כדי לאפשר למשתמש להגדיר את הערוצים שלו, לספק פרטי התחברות ופעולות אחרות. אפליקציית הטלוויזיה של המערכת צריכה להבטיח שהמשתמש יכול להפעיל את פעילות ההגדרה הזו, וזו הסיבה שה-CDD דורש כניסות של צד שלישי להיות מינימליות של פעולות ניווט הרחק מאפליקציית הטלוויזיה הראשית.
אפליקציית ה-Reference Live TV מספקת את תפריט מקורות הערוצים לגישה לכניסות.
בנוסף, כרטיס התראה מוצג בחלק העליון של תפריט אפליקציית הטלוויזיה לאחר התקנת TvInput חדש, כדי להעביר את המשתמש ישירות להגדרות:
אם המשתמש נוקט פעולה באמצעות ההתראה, הוא יכול לבחור להגדיר את המקורות שלו כפי שניתן לראות באיור 10.
ראה הגדרת שירות קלט הטלוויזיה שלך לציפיות המפתחים בתחום זה.
התאם אישית את רשימת הערוצים
יצרני מכשירים עשויים לספק ממשק משתמש כדי להסתיר ערוצים מסוימים ולאפשר למשתמשים לנהל את ה-EPG שלהם. טלוויזיה בשידור חי כולל מתקן זה.
EPG
מפתחי קלט של צד שלישי צריכים להיות בטוחים שמשתמשים יכולים לנווט בקלות לערוצים שלהם במהלך שימוש כללי, בכל מכשירי Android TV התואמים.
ערוצים מכניסות של צד שלישי חייבים להיות מוצגים כחלק מה-EPG הסטנדרטי של חוויית טלוויזיה חיה של המכשיר. ניתן להשתמש בהפרדה חזותית או בקטגוריות נפרדות עבור ערוצים של צד שלישי (ראה סעיף אפליקציית הטלוויזיה ב-CDD של Android) — מה שחשוב הוא שהמשתמשים יוכלו למצוא את הערוצים שהם התקינו.
לחפש
היצרנים חייבים ליישם את אפליקציית הטלוויזיה כדי לכלול תוצאות חיפוש עבור בקשות חיפוש גלובליות על מנת להבטיח את חוויית המשתמש הטובה ביותר. טלוויזיה בשידור חי מספקת יישום (ראה מה מספק תוצאות מתשומות של צד שלישי (נדרש עבור תאימות פלטפורמה) כמו גם תשומות מובנות.
שינוי זמן
עבור מכשירים עם אנדרואיד 6.0 ומעלה, אפליקציית הטלוויזיה חייבת לתמוך בממשקי API לשינוי זמן של מסגרת Android . בנוסף, היצרנים חייבים ליישם בקרות השמעה באפליקציית הטלוויזיה, המאפשרים למשתמשים להשהות, להמשיך, להריץ אחורה ולהריץ קדימה את ההשמעה.
עבור כניסות טלוויזיה התומכות בהזזת זמן, אפליקציית הטלוויזיה צריכה להציג בקרות השמעה.
DVR
עבור מכשירים עם אנדרואיד 7.0 ומעלה, אפליקציית הטלוויזיה חייבת לתמוך בממשקי ה-API להקלטת טלוויזיה במסגרת Android, כדי לתמוך, לרשום ולהפעיל תוכניות מוקלטות.
זה מאפשר ליצרני מכשירים לחבר את תת-מערכות ה-DVR שלהם ל-TIF ולהפחית באופן דרמטי את מאמץ האינטגרציה שנדרש כדי להפעיל או לשלב פונקציונליות DVR במכשיר טלוויזיה. זה גם מאפשר לצדדים שלישיים לספק מערכות DVR לאחר השוק שניתן לחבר למכשיר Android TV.
בנוסף להקלטת תוכן חי, אפליקציית הטלוויזיה מטפלת גם בהתנגשות במשאבים. לדוגמה, אם למכשיר יש שני מקלטים, הוא יכול להקליט שתי תוכניות בו-זמנית. אם המשתמש מבקש להקליט שלוש, אפליקציית הטלוויזיה חייבת לטפל בהתנגשות ועליה להציג הודעה או לבקש שהמשתמש יקבע עדיפות לבקשות אלו.
אפליקציות טלוויזיה יכולות גם ליישם היגיון מתוחכם יותר כמו לשאול משתמש אם הוא רוצה להקליט את כל הפרקים העתידיים בסדרה כאשר הוא מבקש להקליט פרק אחד.
ראה את הדיאגרמה הבאה לתצוגה של יישום DVR אפשרי ב-Android TV.
- שירות קלט הטלוויזיה אומר לאפליקציית הטלוויזיה כמה מקלטים זמינים כך שאפליקציית הטלוויזיה תוכל להתמודד עם התנגשות משאבים אפשרית.
- אפליקציית הטלוויזיה מקבלת בקשה ביוזמת המשתמש להקלטת תוכנית טלוויזיה.
- אפליקציית הטלוויזיה מאחסנת את לוח הזמנים של ההקלטות במסד הנתונים הפנימי שלה.
- כשמגיע הזמן להקליט, אפליקציית הטלוויזיה מעבירה בקשה לכוונון לערוץ המשויך להקלטה.
- שירות קלט הטלוויזיה מקבל בקשה זו, מגיב אם יש משאבים מתאימים או אין, ומכוון לערוץ.
- לאחר מכן, אפליקציית הטלוויזיה מעבירה בקשה להתחיל להקליט למנהל קלט הטלוויזיה.
- שירות קלט הטלוויזיה מקבל בקשה זו ומתחיל להקליט.
- שירות קלט הטלוויזיה מאחסן את נתוני הווידאו בפועל באחסון שלו, שיכולים להיות אחסון חיצוני או אחסון ענן.
- כשמגיע הזמן לסיים את ההקלטה, אפליקציית הטלוויזיה מעבירה את בקשת הפסקת ההקלטה למנהל קלט הטלוויזיה.
- ברגע ששירות קלט הטלוויזיה מקבל את הבקשה, הוא עוצר את ההקלטה ומוסיף את המטא-נתונים המשויכים שלו לספק הטלוויזיה, כך שאפליקציית הטלוויזיה תוכל להציג את ההקלטה למשתמשים כאשר תתבקש.
למידע נוסף על הטמעת תכונות ההקלטה בשירות קלט הטלוויזיה שלך, עיין במאמר הקלטת טלוויזיה זה.
משאבים שימושיים
- ה- CDD של אנדרואיד וממשקי API למפתחים מתועדים הם ההפניות הסופיות.
- CTS Verifier מפעיל את ממשקי ה-API כחלק מתוכנית בדיקת התאימות. הפעלת זה מול Live TV עשויה להיות דרך שימושית לראות את ה-EPG, החיפוש, בקרת הורים ודרישות אחרות בהקשר של קלט של צד שלישי.
- ראה הגדרת שירות קלט הטלוויזיה שלך לציפיות המפתחים בתחום זה.
בקרת הורים
בקרת הורים מאפשרת למשתמש לחסום ערוצים ותוכניות לא רצויים, אך לעקוף את החסימה על ידי הזנת קוד PIN.
האחריות לפונקציונליות בקרת הורים מתחלקת בין אפליקציית הטלוויזיה, שירות מנהל קלט הטלוויזיה, ספק הטלוויזיה וכניסת הטלוויזיה.
בקרת הורים היא חובה, והיא מכוסה על ידי CTS Verifier.
מספר מדינות הגדירו מערכות דירוג שבהן כניסות טלוויזיה יכולות להשתמש באמצעות ה- API של TVContentRating . בנוסף, כניסות טלוויזיה יכולות לרשום מערכות דירוג מותאמות אישית משלהן כפי שהוכח על ידי מבחן CTS Verifier, שמציג דירוג 'מזויף'. עבור מדינות שבהן קיימת מערכת דירוג סטנדרטית, מומלץ ליצרני המכשירים לשלב את בקרת ההורים של מסגרת קלט הטלוויזיה עם כל מנגנון אחר שהם עשויים לכלול.
ספק טלוויזיה
לכל שורת ערוצים יש שדה COLUMN_LOCKED
המשמש לנעילת ערוצים ספציפיים לצפייה מבלי להזין קוד PIN. שדה התוכנית COLUMN_CONTENT_RATING
מיועד לתצוגה ואינו משמש לאכיפת בקרת הורים.
מנהל קלט טלוויזיה
מנהל קלט הטלוויזיה מאחסן כל TvContentRating
חסום ומגיב ל- isRatingBlocked()
כדי לייעץ אם יש לחסום תוכן עם הדירוג הנתון.
כניסת טלוויזיה
קלט הטלוויזיה בודק אם יש לחסום את התוכן הנוכחי על ידי קריאה isRatingBlocked()
במנהל קלט הטלוויזיה כאשר הדירוג של התוכן המוצג השתנה (בשינוי תוכנית או ערוץ), או הגדרות בקרת הורים השתנו (ב- ACTION_BLOCKED_RATINGS_CHANGED
וב- ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED
) . אם יש לחסום את התוכן, קלט הטלוויזיה משבית את האודיו והווידאו ומודיע לאפליקציית הטלוויזיה שהתוכן הנוכחי נחסם על ידי קריאה ל- notifyContentBlocked(TvContentRating)
. אם אין לחסום את התוכן, קלט הטלוויזיה מאפשר אודיו ווידאו ומודיע לאפליקציית הטלוויזיה שהתוכן הנוכחי מותר על ידי קריאה ל- notifyContentAllowed()
.
אפליקציית טלוויזיה
כדי לכבד את ממשקי ה-API של בקרת הורים, ולפיכך ליצור פלטפורמה תואמת, אפליקציית הטלוויזיה של המערכת צריכה לספק דרך למשתמשים לנהל בקרת הורים, כולל עבור כל דירוגים מותאמים אישית שנרשמו על ידי אפליקציות ספציפיות.
אפליקציית הטלוויזיה מציגה ממשק משתמש של קוד PIN כאשר היא מקבלת הודעה על ידי קלט טלוויזיה שהתוכן הנוכחי חסום או כאשר המשתמש מנסה לצפות בערוץ חסום.
אפליקציית הטלוויזיה אינה מאחסנת ישירות את הגדרות בקרת ההורים. כאשר המשתמש משנה את הגדרות בקרת ההורים, כל TvContentRating
חסום מאוחסן על ידי מנהל קלט הטלוויזיה, וערוצים חסומים מאוחסנים על ידי ספק הטלוויזיה.
אפליקציית הטלוויזיה צריכה להצהיר על ההרשאה android.permission.MODIFY_PARENTAL_CONTROLS
כדי לשנות את הגדרות בקרת ההורים.
יצרני מכשירים מוזמנים:
- הפעל את מבחן בקרת הורים של CTS Verifier מול אפליקציית ה-Reference Live TV לצורך הדגמה של דרישות התאימות.
- השתמשו באפליקציית ה-Live TV כעזר לאפליקציית הטלוויזיה שלהם: בפרט ראו את המקור ContentRatingsManager ו- RatingSystemsFragment , וכיצד הם מטפלים בדירוגים מותאמים אישית.
HDMI-CEC
HDMI-CEC מאפשר למכשיר אחד לשלוט באחר, ובכך מאפשר לשלט בודד לשלוט במספר מכשירים בקולנוע ביתי. הוא משמש את Android TV כדי להאיץ את ההגדרה ולאפשר שליטה מרחוק על כניסות טלוויזיה שונות באמצעות אפליקציית הטלוויזיה המרכזית. לדוגמה, הוא עשוי להחליף כניסות, להפעיל או לכבות מכשירים ועוד.
ה-Android TIF מיישם את HDMI-CEC כשירות הבקרה של HDMI כך שיצרני מכשירים רק צריכים לפתח דרייברים ברמה נמוכה המתקשרים עם ה-Android TV HAL קל המשקל, ומדלגים על היגיון עסקי מורכב יותר. במתן יישום סטנדרטי, אנדרואיד שואפת לצמצם בעיות תאימות על ידי הפחתת יישומים מפוצלים ותמיכה בתכונות סלקטיביות. שירות בקרת HDMI משתמש בשירותי אנדרואיד הקיימים, כולל קלט ומתח.
המשמעות היא שיישומי HDMI-CEC קיימים יצטרכו להיות מעוצבים מחדש כדי לפעול יחד עם ה-Android TIF. אנו ממליצים שפלטפורמת החומרה תכיל מיקרו-מעבד כדי לקבל הפעלת CEC ופקודות אחרות.
- האפיק CEC מקבל פקודה מהמקור הפעיל כעת לעבור למקור אחר.
- הנהג מעביר את הפקודה ל-HDMI-CEC HAL.
- ה-HAL מודיע לכל
ActiveSourceChangeListeners
. - שירות בקרת HDMI מקבל הודעה על שינוי מקור באמצעות
ActiveSourceChangeListener
. - שירות TV Input Manager מייצר כוונה עבור אפליקציית הטלוויזיה להחליף את המקור.
- לאחר מכן, אפליקציית הטלוויזיה יוצרת הפעלה של מנהל קלט טלוויזיה עבור כניסת הטלוויזיה שאליו עוברת וקוראת ל-
setMain
באותו הפעלה. - הפעלת מנהל קלט הטלוויזיה מעבירה מידע זה לכניסת הטלוויזיה HDMI.
- כניסת טלוויזיה HDMI מבקשת להגדיר את משטח פס הצד.
- שירות ה-TV Input Manager יוצר פקודת בקרת ניתוב מתאימה בחזרה ל-HDMI Control Service כאשר המשטח מוגדר.
הנחיות לשילוב טלוויזיה
אפליקציית שידור
מכיוון שלכל מדינה יש דרישות ספציפיות לשידור (MHEG, טלטקסט, HbbTV ועוד), היצרנים צפויים לספק פתרונות משלהם עבור אפליקציית השידור, למשל:
- MHEG: מחסנית מקורית
- טלטקסט: מחסנית מקורית
- HbbTV: פתרון HbbTV מבית Vewd Software
במהדורת Android L, Android TV מצפה מיצרני המכשירים להשתמש במשלבי מערכות או בפתרונות אנדרואיד עבור ערימות טלוויזיה אזוריות, להעביר את פני השטח לערימות תוכנת טלוויזיה או להעביר את קוד המפתח הדרוש כדי ליצור אינטראקציה עם ערימות מדור קודם.
הנה האופן שבו אפליקציית השידור ואפליקציית הטלוויזיה פועלות באינטראקציה:
- אפליקציית הטלוויזיה נמצאת בפוקוס, ומקבלת את כל המפתחות.
- אפליקציית הטלוויזיה מעבירה מפתחות (כגון כפתור אדום) להתקן קלט הטלוויזיה.
- התקן קלט הטלוויזיה משתלב באופן פנימי עם ערימת טלוויזיה מדור קודם.
- עם קבלת קוד מפתח הפעלה (למשל כפתור אדום), התקן קלט הטלוויזיה מפעיל אפליקציות שידור.
- אפליקציית שידור מתמקדת באפליקציית הטלוויזיה ומטפלת בפעולות המשתמש.
לחיפוש/המלצה קולית, אפליקציית השידור עשויה לתמוך בחיפוש בתוך האפליקציה לחיפוש קולי.