إيقاف تشغيل الوسائط مؤقتًا واستئنافها باستخدام مفتاح المسافة في لوحة المفاتيح الخارجية

عندما يشغّل تطبيقك ملف وسائط، يجب أن يتمكّن المستخدمون من إيقافه مؤقتًا واستئناف التشغيل من خلال الضغط على مفتاح المسافة على لوحة مفاتيح فعلية.

الردّ على أحداث الضغط على المفاتيح

تستجيب التطبيقات المستندة إلى 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) ضمن نشاط.

النتائج

يمكن الآن لتطبيقك الاستجابة للضغط على مفتاح المسافة لإيقاف فيديو أو وسائط أخرى مؤقتًا واستئناف تشغيله.