जब भी आपका ऐप्लिकेशन कोई मीडिया फ़ाइल चलाता है, तो उपयोगकर्ताओं के पास फ़िज़िकल कीबोर्ड पर Spacebar दबाकर, मीडिया चलाने की सुविधा को रोकने और फिर से शुरू करने का विकल्प होना चाहिए.
कीबोर्ड बटन दबाने से जुड़े इवेंट का जवाब देना
Jetpack Compose या व्यू पर आधारित ऐप्लिकेशन, कीबोर्ड की कुंजियों को दबाने पर एक जैसे तरीके से जवाब देते हैं: ऐप्लिकेशन, कुंजी दबाने के इवेंट को सुनता है, इवेंट को फ़िल्टर करता है, और Spacebar कुंजी दबाने जैसे इवेंट का जवाब देता है.
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. Spacebar दबाने की गतिविधि को फ़िल्टर करना
Compose onPreviewKeyEvent और onKeyEvent मॉडिफ़ायर के तरीकों या views 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: यह Spacebar के लिए, की-कोड कॉन्स्टेंट है.
लिखें
onPreviewKeyEvent: यह एक ऐसा मॉडिफ़ायर है जो किसी कॉम्पोनेंट को हार्डवेयर बटन के इवेंट को इंटरसेप्ट करने की सुविधा देता है. ऐसा तब होता है, जब उस कॉम्पोनेंट या उसके किसी चाइल्ड कॉम्पोनेंट पर फ़ोकस किया जाता है.onKeyEvent: यहonPreviewKeyEventकी तरह ही होता है. यह एक ऐसा मॉडिफ़ायर है जो किसी कॉम्पोनेंट को हार्डवेयर की इवेंट को इंटरसेप्ट करने की अनुमति देता है. ऐसा तब होता है, जब कॉम्पोनेंट या उसके किसी चाइल्ड पर फ़ोकस किया जाता है.
व्यू
onKeyUp(): यह इवेंट हैंडलर तब कॉल किया जाता है, जब किसी कुंजी को छोड़ दिया जाता है और उसे गतिविधि में मौजूद किसी व्यू (जैसे किTextView) से हैंडल नहीं किया जाता है.
नतीजे
अब आपका ऐप्लिकेशन, वीडियो या अन्य मीडिया को रोकने और फिर से शुरू करने के लिए, स्पेसबार दबाने पर प्रतिक्रिया दे सकता है.