Klavye boşluk çubuğuyla medya oynatmayı duraklatma ve devam ettirme

Dört yıldızlı değerlendirme simgesi

Büyük ekran optimizasyonu, harici klavye girişlerini işleme özelliğini içerir. Örneğin, videoların ve diğer medya içeriklerinin oynatılmasını duraklatmak veya devam ettirmek için boşluk çubuğuna basıldığında tepki verme gibi. Bu özellik, özellikle harici klavyelere bağlanan tabletler ve genellikle harici klavyelerle birlikte gelen ancak tablet modunda da kullanılabilen Chromebook'lar için faydalıdır.

Pencerenin tek öğesi medya olduğunda (ör. tam ekran video oynatma), Jetpack Compose'da tuşa basma etkinliklerine ekran düzeyinde yanıt verin.

En iyi uygulamalar

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

Malzemeler

  • KEYCODE_SPACE: Boşluk çubuğu için tuş kodu sabiti.
  • onPreviewKeyEvent: Bir bileşenin (veya alt öğelerinden birinin) odaklandığında donanım tuşu etkinliklerini yakalamasını sağlayan Modifier.
  • onKeyEvent: onPreviewKeyEvent'e benzer şekilde bu Modifier, bir bileşenin (veya alt öğelerinden birinin) odaklandığında donanım tuşu etkinliklerini engellemesini sağlar.

Adımlar

Jetpack Compose'da klavye tuşlarına basma işlemlerine yanıt vermek için uygulamanız tuşlara basma etkinliklerini dinlemeli, etkinlikleri filtrelemeli ve seçilen tuşlara basma işlemlerine (ör. boşluk çubuğuna basma) yanıt vermelidir.

1. Klavye etkinliklerini dinleme

Jetpack Compose ile tuş vuruşunu yöneten bileşende onPreviewKeyEvent veya onKeyEvent değiştiricisini kullanabilirsiniz.

İki değiştirici arasındaki temel fark, değiştirici tarafından kullanılmayan etkinliklerin nereye gönderildiğidir:

  • onPreviewKeyEvent: Etkinliği ilk alt öğesine gönderir.
  • onKeyEvent: Etkinliği composable'ın üst öğesine gönderir.

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

onPreviewKeyEvent veya onKeyEvent değiştirici lambda'sının içinde, tuş bırakma (KeyEventType.KeyUp) işleminin boşluk çubuğuyla (Key.Spacebar) eşleştiği önemli etkinlikleri filtreleyin.

Kodunuz etkinliği işliyorsa ve etkinliğin daha fazla yayılmasını istemiyorsanız true değerini döndürün. Diğer bileşenlerin etkinliği işlemesine izin vermek için false değerini döndürün.

  • A seçeneği: onPreviewKeyEvent simgesini kullanma

    Column(
        modifier = Modifier.onPreviewKeyEvent { event ->
            if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
                // Handle spacebar keypress to pause/resume playback.
                true
            } else {
                false
            }
        }
    ) {
        // Content
    }

  • B seçeneği: onKeyEvent kullanma

    Column(
        modifier = Modifier.onKeyEvent { event ->
            if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
                // Handle spacebar keypress to pause/resume playback.
                true
            } else {
                false
            }
        }
    ) {
        // Content
    }

Sonuçlar

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

Ek kaynaklar

Klavye etkinlikleri ve bunları yönetme hakkında daha fazla bilgi edinmek için Klavye girişini işleme başlıklı makaleyi inceleyin.