השהיה והמשך של הפעלת מדיה באמצעות מקש הרווח במקלדת חיצונית

בכל פעם שהאפליקציה מפעילה קובץ מדיה, המשתמשים צריכים להיות מסוגלים להשהות ולהמשיך את ההפעלה בלחיצה על מקש הרווח במקלדת פיזית.

תגובה לאירועי הקשה על מקש

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

1. הקשבה לאירועים במקלדת

פיתוח נייטיב

ב-Jetpack Compose, משתמשים במקש הצירוף onPreviewKeyEvent או ב-onKeyEvent בפריסה שמנהלת את הקשה:

Column(modifier = Modifier.onPreviewKeyEvent { event ->
    if (event.type == KeyEventType.KeyUp) {
        ...
    }
    ...
})

או

Column(modifier = Modifier.onKeyEvent { event ->
    if (event.type == KeyEventType.KeyUp) {
        ...
    }
    ...
})

תצוגות מפורטות

בפעילות באפליקציה, משנים את השיטה onKeyUp():

Kotlin

override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
    ...
}

Java

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    ...
}

השיטה מופעלת בכל פעם שמשתחררת לחיצה על מקש, כך שהיא מופעלת בדיוק פעם אחת לכל הקשה.

2. סינון הקשות על מקש הרווח

בתוך שיטות המשתנה onPreviewKeyEvent ו-onKeyEvent או שיטת התצוגה onKeyUp(), מסננים לפי KeyEvent.KEYCODE_SPACE כדי לשלוח את האירוע הנכון לרכיב המדיה:

פיתוח נייטיב

Column(modifier = Modifier.onPreviewKeyEvent { event ->
    if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
        ...
    }
    ...
})

או

Column(modifier = Modifier.onKeyEvent { event ->
    if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
        ...
    }
    ...
})

תצוגות מפורטות

Kotlin

if (keyCode == KeyEvent.KEYCODE_SPACE) {
    togglePlayback()
    return true
}
return false

Java

if (keyCode == KeyEvent.KEYCODE_SPACE) {
    togglePlayback();
    return true;
}
return false;

נקודות עיקריות

  • KEYCODE_SPACE: קבוע של קוד מקש עבור מקש הרווח.

פיתוח נייטיב

  • onPreviewKeyEvent: משתנה משתנה שמאפשר לרכיב ליירט אירועי מפתח של חומרה כשהוא (או אחד הצאצאים שלו) נמצא בחזית.
  • onKeyEvent: בדומה ל-onPreviewKeyEvent, שינוי שמאפשר לרכיב ליירט אירועי מפתחות של חומרה כשהרכיב (או אחד מהצאצאים שלו) נמצא בחזית.

תצוגות מפורטות

  • onKeyUp(): גורם מטפל באירועים שנקרא כשמקש משוחרר ולא מטופל על ידי תצוגה (כמו TextView) בתוך פעילות.

תוצאות

מעכשיו האפליקציה יכולה להגיב ללחיצות על מקש הרווח כדי להשהות ולהמשיך סרטון או מדיה אחרת.