‫Material3 Compose

ספריית media3-ui-compose-material3 מספקת Player Composable שמציג את כפתורי הנגן, סרגל ההתקדמות ותוכן המדיה הנוכחי. הוא מטפל גם בניהול המצב וגם בעיצוב של Material3 באופן פנימי. מידע נוסף על הספרייה שבה כדאי להשתמש זמין בסקירה הכללית של Media3 Compose.

// The library provides styled UI components
Row {
  SeekBackButton(player)
  PlayPauseButton(player)
  SeekForwardButton(player)
}

// You can rearrange the composables into a layout that suits your needs
@Composable
fun PlayerProgressControlsLeftAligned(player: Player) {
  Row {
    PositionAndDurationText(player)
    ProgressSlider(player)
  }
}

@Composable
fun PlayerProgressControlsCenterAligned(player: Player) {
  Row {
    PositionText(player)
    ProgressSlider(player)
    DurationText(player)
  }
}

התאמה אישית של רכיבי Material3

למרות ש-media3-ui-compose-material3 מספק רכיבים שתואמים לעיצוב Material3, עדיין יש לכם שליטה מלאה על העיצוב. אתם יכולים להתאים אישית את הצבעים, הטיפוגרפיה והצורות על ידי הוספת MaterialTheme לממשק המשתמש של הנגן.

לדוגמה, כדי לשנות את הצבע של PlayPauseButton, אפשר לספק colorScheme בהתאמה אישית:

MaterialTheme(
  colorScheme =
    lightColorScheme(
      primary = Color.Red, // Change the primary color for the button
      onPrimary = Color.White,
    )
) {
  // The PlayPauseButton will now use the custom colors
  PlayPauseButton(player)
}

רכיבי Material3 זמינים

הספרייה media3-ui-compose-material3 מספקת קבוצה של רכיבים מוגדרים מראש לכפתורי הנגן הנפוצים. הנה כמה מהרכיבים שאפשר להשתמש בהם ישירות באפליקציה:

רכיב תיאור
Player נגן עם רכיבי UI להפעלה, סרגל התקדמות, כתוביות ומסגרת תוכן לסרטון או לגרפיקה.
PlayPauseButton כפתור שמאפשר לעבור בין הפעלה להשהיה, ומציג את מצבי הטעינה, ההפעלה מחדש והניסיון החוזר.
SeekBackButton כפתור להרצה אחורה במרווח זמן מוגדר.
SeekForwardButton כפתור להרצה קדימה במרווח זמן מוגדר.
NextButton כפתור לדילוג לקובץ המדיה הבא.
PreviousButton כפתור לדילוג לקובץ המדיה הקודם.
RepeatButton כפתור למעבר בין מצבי הפעלה חוזרת.
ShuffleButton כפתור להפעלה או השבתה של מצב הפעלה אקראית.
MuteButton כפתור להשתקה ולביטול ההשתקה של הנגן.
LiveButton כפתור שמציין אם ההפעלה של שידור חי נמצאת בנקודת השידור החי, ומחפש את נקודת השידור החי כשלוחצים עליו.
PositionAndDurationText רכיב קומפוזבילי של טקסט שמציג את המיקום הנוכחי ואת משך הזמן הכולל.
PositionText רכיב קומפוזבילי של טקסט שמציג את המיקום הנוכחי.
DurationText רכיב קומפוזבילי של טקסט שמציג את משך הזמן הכולל.
RemainingDurationText רכיב קומפוזבילי של טקסט שמציג את משך הזמן שנותר.
ProgressSlider פס הזזה שמראה את התקדמות ההפעלה ומאפשר למשתמשים לדלג קדימה או אחורה.
BufferingIndicator אינדיקטור התקדמות שמוצג בזמן שהנגן מבצע אגירת נתונים.

זו רשימה חלקית בלבד. כדי לראות את כל הרכיבים הזמינים, עיינו במאמרי העזרה של ה-API של הספרייה.

שני רכיבי Composable מובנים אחרים שסביר להניח שתצטרכו קשורים לניהול משטחים, והם נמצאים במודול media3-ui-compose כי אין להם התאמת העיצוב של Google Material Design.

רכיב תיאור
ContentFrame משטח לתוכן מדיה שמטפל בניהול יחס הגובה-רוחב, בשינוי הגודל, בתריס, בגרפיקה ובמשבצת לכתוביות.
PlayerSurface משטח גולמי שעוטף את SurfaceView ואת TextureView ב-AndroidView.