बाहरी कीबोर्ड के स्पेसबार का इस्तेमाल करके, मीडिया प्लेबैक को रोकना और फिर से शुरू करना

जब भी आपका ऐप्लिकेशन कोई मीडिया फ़ाइल चलाता है, तो उपयोगकर्ताओं को फ़िज़िकल कीबोर्ड पर Spacebar दबाकर, वीडियो को रोकने और फिर से चलाने की सुविधा मिलनी चाहिए.

बटन दबाने से होने वाले इवेंट का जवाब देना

Jetpack Compose या व्यू पर आधारित ऐप्लिकेशन, कीबोर्ड के बटन दबाने पर एक जैसे तरीके से जवाब देते हैं: ऐप्लिकेशन, बटन दबाने से जुड़े इवेंट सुनता है, इवेंट को फ़िल्टर करता है, और Spacebar बटन दबाने जैसे बटन दबाने पर जवाब देता है.

1. कीबोर्ड इवेंट को सुनना

Compose

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. Spacebar दबाने की फ़्रीक्वेंसी को फ़िल्टर करना

अपने मीडिया कॉम्पोनेंट में सही इवेंट भेजने के लिए, लिखें onPreviewKeyEvent और onKeyEvent में बदलाव करने के तरीकों या व्यू onKeyUp() के तरीके में, KeyEvent.KEYCODE_SPACE के लिए फ़िल्टर करें:

Compose

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: Spacebar के लिए की कोड का कॉन्स्टेंट.

Compose

  • onPreviewKeyEvent: यह एक ऐसा मॉडिफ़ायर है जो किसी कॉम्पोनेंट को, हार्डवेयर के मुख्य इवेंट को इंटरसेप्ट करने की अनुमति देता है. ऐसा तब होता है, जब कॉम्पोनेंट या उसके किसी चाइल्ड पर फ़ोकस किया जाता है.
  • onKeyEvent: onPreviewKeyEvent की तरह ही, यह एक ऐसा मॉडिफ़ायर है जो कॉम्पोनेंट (या उसके किसी चाइल्ड) पर फ़ोकस होने पर, कॉम्पोनेंट को हार्डवेयर के मुख्य इवेंट को इंटरसेप्ट करने की अनुमति देता है.

व्यू

  • onKeyUp(): इवेंट हैंडलर तब कॉल किया जाता है, जब कोई बटन छोड़ा जाता है और किसी गतिविधि में मौजूद किसी व्यू (जैसे, TextView) से उसे मैनेज नहीं किया जाता.

नतीजे

अब आपका ऐप्लिकेशन, Spacebar बटन को दबाने पर, वीडियो या अन्य मीडिया को रोक सकता है और फिर से चला सकता है.