Harici klavye boşluk tuşuyla medya oynatmayı duraklatma ve devam ettirme

Uygulamanız bir medya dosyası oynattığında kullanıcılar, fiziksel klavyede boşluk çubuğuna basarak oynatmayı duraklatıp devam ettirebilmelidir.

Tuş basma etkinliklerine yanıt verme

Jetpack Compose veya görünümlere dayalı uygulamalar, klavye tuşlarına benzer şekilde yanıt verir: Uygulama, tuşa basma etkinliklerini dinler, etkinlikleri filtreler ve boşluk çubuğu tuşuna basma gibi tuşa basma işlemlerine yanıt verir.

1. Klavye etkinliklerini dinleme

Oluşturma

Jetpack Compose ile tuş vuruşunu yöneten düzende onPreviewKeyEvent veya onKeyEvent değiştiricisini kullanın:

Column(modifier = Modifier.onPreviewKeyEvent { event ->
    if (event.type == KeyEventType.KeyUp) {
        ...
    }
    ...
})

veya

Column(modifier = Modifier.onKeyEvent { event ->
    if (event.type == KeyEventType.KeyUp) {
        ...
    }
    ...
})

Görüntüleme sayısı

Uygulamanızdaki bir etkinlikte onKeyUp() yöntemini geçersiz kılın:

Kotlin

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

Java

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

Bu yöntem, basılan bir tuş her bırakıldığında çağrılır. Bu nedenle, her tuş vuruşu için tam olarak bir kez tetiklenir.

2. Boşluk çubuğu tuşuna basma işlemlerini filtreleme

Oluşturma onPreviewKeyEvent ve onKeyEvent değiştirici yöntemleri veya onKeyUp() görünümü yönteminde, medya bileşenine doğru etkinliği göndermek için KeyEvent.KEYCODE_SPACE ile filtreleyin:

Oluşturma

Column(modifier = Modifier.onPreviewKeyEvent { event ->
    if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
        ...
    }
    ...
})

veya

Column(modifier = Modifier.onKeyEvent { event ->
    if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
        ...
    }
    ...
})

Görüntüleme sayısı

Kotlin

if (keyCode == KeyEvent.KEYCODE_SPACE) {
    togglePlayback()
    return true
}
return false

Java

if (keyCode == KeyEvent.KEYCODE_SPACE) {
    togglePlayback();
    return true;
}
return false;

Önemli noktalar

Oluşturma

  • onPreviewKeyEvent: Bir bileşenin, odaklandığında (veya alt öğelerinden biri odaklandığında) donanım tuşu etkinliklerini yakalamasını sağlayan değiştirici.
  • onKeyEvent: onPreviewKeyEvent'e benzer. Bileşenin (veya alt öğelerinden birinin) odaklandığı durumlarda bileşenin donanım tuşu etkinliklerini yakalamasını sağlayan değiştiricidir.

Görüntüleme sayısı

  • onKeyUp(): Bir etkinlikteki bir görünüm (ör. TextView) tarafından işlenmeyen ve serbest bırakılan bir tuş için çağrılan etkinlik işleyici.

Sonuçlar

Uygulamanız artık boşluk çubuğuna basıldığında videoyu veya diğer medyaları duraklatıp devam ettirebilir.