Media3 1.10 כולל תכונות חדשות, תיקוני באגים ושיפורים בתכונות, כולל ווידג'טים להפעלה שמבוססים על Material3, תמיכה מורחבת בפורמטים ב-ExoPlayer ושיפור בהתאמת המהירות כשמייצאים מדיה באמצעות Transformer. בהמשך המאמר מפורט מידע נוסף, ובהערות המוצר המלאות מופיעה רשימה מקיפה של השינויים.
ממשק המשתמש של ההפעלה והכתיבה
אנחנו ממשיכים להרחיב את המודול media3-ui-compose-material3 כדי לעזור לכם ליצור ממשקי משתמש של Compose להפעלה.
הוספנו Player Composable חדש שמשלב ContentFrame עם אמצעי בקרה להפעלה שניתנים להתאמה אישית, וכך מספק לכם ווידג'ט של נגן מוכן לשימוש עם ממשק משתמש מודרני.
בנוסף, בגרסה הזו נוסף רכיב ProgressSlider Composable להצגת התקדמות ההפעלה ולביצוע פעולות חיפוש באמצעות גרירה והקשה. לניהול מהירות ההפעלה, יש רכיב חדש PlaybackSpeedControl במודול הבסיסי media3-ui-compose, לצד רכיב PlaybackSpeedToggleButton עם סגנון במודול Material 3.
אנחנו נמשיך לעבוד על תוספות חדשות כמו כלי בחירת רצועות, תמיכה בכתוביות ועוד אפשרויות להתאמה אישית בגרסאות הקרובות של Media3. נשמח לקבל משוב, לכן כדאי לשתף את דעתכם בכלי למעקב אחר בעיות בפרויקט.
שיפורים בתכונות ההפעלה
Media3 1.10 כולל מגוון תוספות ושיפורים במודולים של הפעלת התוכן:
- תמיכה בפורמטים: ExoPlayer תומך עכשיו בחילוץ של טראקים בפורמט Dolby Vision Profile 10 ו-Versatile Video Coding (VVC) במאגרי MP4, והוספנו תמיכה במנהל ממשק המשתמש של MPEG-H במפענח decoder_mpeghextension. התוסף IAMF תומך עכשיו בצורה חלקה בפלט בינאורלי, דרך המפענח באמצעות iamf_tools או דרך Spatializer של מערכת ההפעלה Android, עם לוגיקה חדשה שתואמת לפריסת הפלט של הרמקולים.
- הפעלת מודעות: שיפורים באמינות, שיפור התמיכה במודעות מעברון ב-HLS עבור X-PLAYOUT-LIMIT ו-X-SNAP, ועם התלות האחרונה ב-IMA SDK אפשר לשלוט אם כתובות URL של קליקים על מודעות נפתחות בכרטיסיות בהתאמה אישית באמצעות setEnableCustomTabs.
HLS: ExoPlayer מאפשר עכשיו מעבר למיקום חלופי במקרה של שגיאות טעינה, אם יש זרמים מיותרים ממיקומים שונים.
- סשן: MediaSessionService מורחב עכשיו ל-LifecycleService, ומאפשר לאפליקציות לגשת להיקף מחזור החיים של השירות.
אחד מתחומי ההתמקדות העיקריים שלנו השנה הוא יעילות ההפעלה והביצועים. Media3 1.10 כולל תמיכה ניסיונית בתזמון של לולאת ההפעלה המרכזית בצורה יעילה יותר. כדי לנסות את התכונה הזו, מפעילים את experimentalSetDynamicSchedulingEnabled() דרך ExoPlayer.Builder. אנחנו מתכננים לבצע שיפורים נוספים בגרסאות עתידיות, אז כדאי לעקוב!
עריכת מדיה וטרנספורמר
למפתחים שיוצרים חוויות עריכה של מדיה, שיפרנו את האמינות של התאמות המהירות. הפונקציה EditedMediaItem.Builder.setFrameRate() יכולה עכשיו להגדיר קצב פריימים מקסימלי של פלט לווידאו. האפשרות הזו שימושית במיוחד לשליטה בגודל הפלט ולשמירה על הביצועים כשמגדילים את מהירות המדיה באמצעות setSpeed().
מודולים חדשים לחילוץ פריימים ולהחלת אפקטים של Lottie
בגרסה הזו פיצלנו חלק מהפונקציונליות למודולים חדשים כדי לצמצם את היקף התלות בחלק מהרכיבים:
- הסרנו את FrameExtractor מהמודול הראשי media3-inspector, לכן צריך להעביר את הקוד לשימוש במודול החדש media3-inspector-framemodule ולעדכן את ההצהרות על הייבוא ל-androidx.media3.inspector.frame.FrameExtractor.
- העברנו גם את האפקט LottieOverlay למודול נפרד media3-effect-lottie. תזכורת: האפשרות הזו מאפשרת לכם להחיל בקלות אנימציות Lottie מבוססות-ווקטור ישירות על פריימים של סרטונים.
אם נתקלתם בבאגים, יש לכם שאלות או שאתם רוצים להציע תכונות חדשות, אתם יכולים לפנות אלינו דרך כלי המעקב אחר בעיות. נשמח לשמוע ממך!
-
חדשות על מוצריםלמפתחי Android יש הרבה אפשרויות בכל הנוגע לסוכנים, למודלים גדולים של שפה (LLM), לכלים ולממשקי שורת פקודה (CLI) שבהם הם משתמשים לפיתוח אפליקציות. המטרה שלנו היא לעזור לכם לפתח אפליקציות יפות ואיכותיות ל-Android, לא משנה איך תבחרו לפתח אותן.
Simona Milanovic • משך הקריאה: 4 דקות -
חדשות על מוצריםב-Google Play, אנחנו מרחיבים כל הזמן את פלטפורמת המינויים שלנו כדי לעזור לכם להגדיל את הצמיחה, להתאים את עצמכם למודלים עסקיים חדשים ולהגיע למשתמשים שלכם בדיוק במקום שבו הם נמצאים.
Sheenam Mittal • משך הקריאה: 4 דקות -
חדשות על מוצריםבשנה שעברה, פתחנו את Android Studio לכל מודל AI. היום אנחנו עושים את הצעד הבא ומשיקים תמיכה בסוכני קידוד לפי בחירתכם.
Matthew Warner • משך הקריאה: 3 דקות
רוצים לקבל טיפים עדכניים לפיתוח Android ישירות לאימייל כל שבוע?