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

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

סמל Android Media HAL

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

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

Stagefright תומך גם בשילוב עם רכיבי Codec חומרה מותאמים אישית המסופקים על ידך. כדי להגדיר נתיב חומרה לקידוד ופענוח מדיה, עליך להטמיע רכיב 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 \
      ...
    

חשיפת codecs למסגרת

השירות 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> מדיה כבר אינו נתמך.