หยุดเล่นสื่อชั่วคราวและเล่นต่อด้วยแป้นเว้นวรรคของแป้นพิมพ์ภายนอก

เมื่อใดก็ตามที่แอปเล่นไฟล์สื่อ ผู้ใช้ควรจะหยุดชั่วคราวและเล่นต่อ ได้โดยกด Spacebar บนแป้นพิมพ์จริง

ตอบสนองต่อเหตุการณ์การกดแป้น

แอปที่อิงตาม Jetpack Compose หรือ Views จะตอบสนองต่อการกดแป้นพิมพ์ใน ลักษณะที่คล้ายกัน โดยแอปจะรับฟังเหตุการณ์การกดแป้น กรองเหตุการณ์ และ ตอบสนองต่อการกดแป้น เช่น การกดแป้น 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) {
        ...
    }
    ...
})

Views

ในกิจกรรมในแอป ให้ลบล้างเมธอด onKeyUp() ดังนี้

Kotlin

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

Java

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

ระบบจะเรียกใช้เมธอดนี้ทุกครั้งที่ปล่อยแป้นที่กดไว้ ดังนั้นเมธอดนี้จะทำงาน 1 ครั้งต่อการกดแป้น 1 ครั้ง

2. กรองการกด Spacebar

ภายในเมธอดตัวปรับแต่ง onPreviewKeyEvent และ onKeyEvent ของ Compose หรือ เมธอด onKeyUp() ของ Views ให้กรอง 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) {
        ...
    }
    ...
})

Views

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 ซึ่งเป็นตัวปรับแต่งที่ช่วยให้คอมโพเนนต์สกัดกั้นเหตุการณ์คีย์ฮาร์ดแวร์ได้เมื่อคอมโพเนนต์ (หรือองค์ประกอบย่อยรายการใดรายการหนึ่ง) มีโฟกัส

Views

  • onKeyUp(): ตัวจัดการเหตุการณ์ที่เรียกใช้เมื่อปล่อยแป้นและไม่มีการจัดการ โดย View (เช่น TextView) ภายในกิจกรรม

ผลลัพธ์

ตอนนี้แอปสามารถตอบสนองต่อการกดแป้น Spacebar เพื่อหยุดชั่วคราวและเล่น วิดีโอหรือสื่ออื่นๆ ต่อได้แล้ว