תחילת העבודה עם ממשק משתמש שמבוסס על Compose

הוספת התלות

ספריית Media3 כוללת שני מודולים של ממשק משתמש שמבוססים על Jetpack פיתוח נייטיב. לא צריך להוסיף את שניהם כי Material3 תלוי ב-core.

Kotlin

// Include only one of the following dependencies
implementation("androidx.media3:media3-ui-compose:1.10.1")
implementation("androidx.media3:media3-ui-compose-material3:1.10.1")

מגניב

// Include only one of the following dependencies
implementation "androidx.media3:media3-ui-compose:1.10.1"
implementation "androidx.media3:media3-ui-compose-material3:1.10.1"

מומלץ מאוד לפתח את האפליקציה בגישה של Compose-first או לעבור משימוש ב-Views.

אפליקציית הדגמה מלאה של Compose

למרות שהספרייה media3-ui-compose לא כוללת רכיבים שאפשר להשתמש בהם ישר (כמו לחצנים, אינדיקטורים, תמונות או תיבות דו-שיח), אפשר למצוא אפליקציית הדגמה שנכתבה במלואה ב-Compose, בלי להשתמש בפתרונות שמאפשרים אינטראקציה בין רכיבים, כמו עטיפת PlayerView ב-AndroidView. אפליקציית ההדגמה משתמשת במחזיקי מצב ממשק המשתמש ממודול media3-ui-compose ובספריית Compose Material3.

איזו ספרייה נדרשת?

בהתאם לרמת ההתאמה האישית שאתם צריכים, אתם יכולים לבחור בין שתי ספריות Media3 Compose. כדי להבין את ההבדל, כדאי לחשוב על צינור הייצור של מצב ממשק המשתמש: Business logic → UI logic → UI.

כדי לקבל שליטה מלאה ברכיבי ממשק המשתמש, אפשר להשתמש ב-media3-ui-compose.

הספרייה הזו מספקת את החיבור Business logic → UI logic. הוא מכיל רכיבים בסיסיים כמו PlayerSurface ו-ContentFrame, וגם מחזיקי מצב (state holder) (לדוגמה, PlayPauseButtonState, ‏ CurrentMediaItemState,‏ PlaylistState, ‏ ErrorState) שממירים את המצב של Player למצב של ממשק המשתמש.

הספרייה הזו לא מספקת רכיבי Material Design מוכנים לשימוש. אתם אחראים ליצירה של רכיבי ממשק משתמש משלכם ולעיצוב שלהם. הוא מאפשר לכם שליטה מקסימלית במראה ובתחושה, ולכן הוא אידיאלי אם יש לכם מערכת עיצוב בהתאמה אישית גבוהה.

כדאי להשתמש ב-media3-ui-compose-material3 כדי לשלב מהר יותר עם Material Design.

הספרייה הזו מספקת את החלק האחרון UI בצינור. היא תלויה ב-media3-ui-compose וכוללת פונקציות מובנות שניתנות להגדרה, עם סגנון של רכיבי Material3, כולל רכיבי ה-Player ו-MiniController. רכיב ה-Composable‏ Player מציע חוויית הפעלת מדיה מקיפה עם סרטון, אמצעי בקרה וסרגל התקדמות, שאפשר להתאים אישית באמצעות PlayerDefaults. רכיב ה-Composable‏ MiniController מספק ממשק קומפקטי לשליטה בנגן, תוך הצגת מידע על פריט המדיה הנוכחי. כך לא תצטרכו ליצור כפתורים ורכיבים אחרים בממשק המשתמש מאפס. עדיין אפשר להתאים אישית את העיצוב, הצבעים והסמלים של הרכיבים האלה, אבל ההטמעה הבסיסית מסופקת לכם.

בקצרה

תכונה media3-ui-compose media3-ui-compose-material3
רכיבי ממשק משתמש רכיבים בסיסיים כמו PlayerSurface ו-ContentFrame, אבל לא לחצנים או אמצעי בקרה עם סגנון מוגדר מראש. הספרייה מספקת את הקומפוזיציות Player ו-MiniController וסט מלא של קומפוזיציות מוכנות מראש בסגנון Material3, כמו PlayPauseButton,‏ SeekBackButton,‏ PositionAndDurationText,‏ ErrorText וכו'.
State Management התפקיד הזה מאפשר לבעלי remember...State לנהל את הלוגיקה. הוא מנהל את המצב באופן פנימי, אבל עדיין אפשר לגשת למחזיקי המצב אם צריך.
תלות androidx.compose.foundation media3-ui-compose, androidx.compose.material3, com.google.android.material
תרחיש ראשי לדוגמה יצירת ממשק משתמש של נגן עם מערכת עיצוב בהתאמה אישית. שליטה מלאה במראה ובתחושה. לבנות במהירות ממשק משתמש של נגן בהתאם להנחיות של Material Design 3.