जब भी आपका ऐप्लिकेशन कोई मीडिया फ़ाइल चलाता है, तो उपयोगकर्ताओं को फ़िज़िकल कीबोर्ड पर 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 बटन को दबाने पर, वीडियो या अन्य मीडिया को रोक सकता है और फिर से चला सकता है.