Google is committed to advancing racial equity for Black communities. See how.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

כְּלֵי תִקְשׁוֹרֶת

סמל HAL של Android Media

אנדרואיד כוללת את Stagefright, מנוע השמעת מדיה ברמה המקומית, המכיל רכיבי codec מבוססי תוכנה מובנים לפורמטי מדיה פופולריים.

תכונות השמעת שמע ווידאו מבית Stagefright כוללות שילוב עם רכיבי Codec של OpenMAX, ניהול הפעלות, עיבוד מסונכרן בזמן, בקרת תחבורה ו- DRM.

Stagefright תומך גם בשילוב עם רכיבי Codec מותאמים אישית של החומרה המסופקים על ידך. כדי להגדיר נתיב חומרה לקידוד ופענוח מדיה, עליך להטמיע קודק מבוסס חומרה כרכיב OpenMax IL (Integration Layer).

הערה: עדכוני Stagefright יכולים להתרחש באמצעות תהליך עדכון האבטחה החודשי של Android וכחלק ממהדורה של מערכת ההפעלה של Android.

ארכיטקטורה

יישומי מדיה מתקשרים עם מסגרת המולטימדיה המקורית של Android בהתאם לארכיטקטורה הבאה.

ארכיטקטורת מדיה של Android

איור 1. ארכיטקטורת מדיה

מסגרת יישומים
ברמת מסגרת היישום נמצא קוד יישום המשתמש בממשקי API של android.media כדי לקיים אינטראקציה עם חומרת המולטימדיה.
קלסר IPC
פרוקסי ה- IPC של קלסר מקלים על תקשורת על גבולות התהליך. הם ממוקמים בספריית frameworks/av/media/libmedia ומתחילים באות "אני".
מסגרת מולטימדיה מקורית
ברמה המקורית, אנדרואיד מספקת מסגרת מולטימדיה המשתמשת במנוע Stagefright להקלטה והשמעת שמע ווידאו. Stagefright מגיעה עם רשימת ברירת מחדל של רכיבי Codec תוכנה נתמכים ותוכלו ליישם את רכיבי Codec החומרה שלך באמצעות תקן שכבת האינטגרציה של OpenMax. לפרטי יישום נוספים, עיין ברכיבי MediaPlayer ו- Stagefright הממוקמים frameworks/av/media .
שכבת שילוב של OpenMAX (IL)
OpenMAX IL מספק דרך סטנדרטית ל- Stagefright לזהות ולהשתמש בקודקי מולטימדיה מבוססי חומרה מותאמים אישית הנקראים רכיבים. עליך לספק תוסף OpenMAX בצורה של ספרייה משותפת בשם libstagefrighthw.so . תוסף זה מקשר את Stagefright עם רכיבי ה- codec המותאמים אישית שלך, אותם יש ליישם על פי תקן רכיבי OpenMAX IL.

יישום רכיבי Codec מותאמים אישית

Stagefright מגיע עם קודקי תוכנה מובנים לפורמטים נפוצים של מדיה, אך ניתן גם להוסיף קודקי חומרה מותאמים אישית משלך כרכיבי OpenMAX. לשם כך, עליך ליצור את רכיבי OMX ותוסף OMX המחבר בין רכיבי ה- codec המותאמים אישית שלך למסגרת Stagefright. לדוגמא רכיבים, עיין hardware/ti/omap4xxx/domx/ ; לקבלת דוגמה לתוסף ל- Galaxy Nexus, ראה hardware/ti/omap4xx/libstagefrighthw .

כדי להוסיף קודקים משלך:

  1. צור את הרכיבים שלך על פי תקן רכיבי OpenMAX IL. ממשק הרכיבים נמצא בקובץ frameworks/native/include/media/OpenMAX/OMX_Component.h . למידע נוסף על מפרט OpenMAX IL, עיין באתר OpenMAX .
  2. צור תוסף OpenMAX המקשר את הרכיבים שלך לשירות Stagefright. לקבלת ממשקים ליצירת התוסף, ראה frameworks/native/include/media/hardware/OMXPluginBase.h ו- HardwareAPI.h קבצי כותרת.
  3. בנה את התוסף שלך כספרייה משותפת עם השם libstagefrighthw.so ב- Makefile של המוצר שלך. לדוגמה:
    LOCAL_MODULE := libstagefrighthw
    

    ב- Makefile של המכשיר שלך, הקפד להכריז על המודול כחבילת מוצר:

    PRODUCT_PACKAGES += \
      libstagefrighthw \
      ...
    

חשיפת קודקים למסגרת

השירות stagefright מנתח את system/etc/media_codecs.xml ואת system/etc/media_profiles.xml לחשוף את רכיבי codec הנתמכים ופרופילים על המכשיר מפתחי האפליקציה דרך android.media.MediaCodecList ו android.media.CamcorderProfile כיתות. עליכם ליצור את שני הקבצים במדריך device/<company>/<device>/ ולהעתיק זאת לספריית system/etc של תמונת system/etc בתיקית Makefile של המכשיר. לדוגמה:

PRODUCT_COPY_FILES += \
  device/samsung/tuna/media_profiles.xml:system/etc/media_profiles.xml \
  device/samsung/tuna/media_codecs.xml:system/etc/media_codecs.xml \

לקבלת דוגמאות מלאות, ראה device/samsung/tuna/media_codecs.xml device/samsung/tuna/media_profiles.xml .

הערה: החל מאנדרואיד 4.1, האלמנט <Quirk> מדיה כבר אינו נתמך.