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

הוספת התלות

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

Kotlin

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

מגניב

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

אנחנו ממליצים מאוד לפתח את האפליקציה קודם כל ב-Compose או לעבור משימוש בתצוגות.

אפליקציית הדגמה שפותחה לגמרי ב-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, יחד עם מחלקות של מאחסני מצב (למשל, PlayPauseButtonState, ‏ CurrentMediaItemState,‏ PlaylistState, ‏ ErrorState) שממירות את המצב של Player למצב של ממשק המשתמש.

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

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

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

בקצרה

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